- Sep 06, 2009
-
-
Duncan Sands authored
llvm-svn: 81128
-
Duncan Sands authored
about by icc (#593, partial). Patch by Erick Tryzelaar. llvm-svn: 81115
-
- Sep 03, 2009
-
-
Dan Gohman authored
swapping the operands if necessary. llvm-svn: 80940
-
Mon P Wang authored
- when transforming a vector shift of a non-immediate scalar shift amount, zero extend the i32 shift amount to i64 since the vector shift reads 64 bits - when transforming i16 vectors to use a vector shift, zero extend i16 shift amount - improve the code quality in some cases when transforming vectors to use a vector shift llvm-svn: 80935
-
Dan Gohman authored
disabling the use of 16-bit operations on x86. This doesn't yet work for inline asms with 16-bit constraints, vectors with 16-bit elements, trampoline code, and perhaps other obscurities, but it's enough to try some experiments. llvm-svn: 80930
-
- Sep 02, 2009
-
-
Sandeep Patel authored
llvm-svn: 80773
-
Chris Lattner authored
llvm-svn: 80764
-
- Aug 31, 2009
-
-
Duncan Sands authored
handling on x86-32 linux. llvm-svn: 80592
-
- Aug 29, 2009
-
-
Bill Wendling authored
encodings. - Make some of the values emitted by the FDEs dependent upon the pointer size. This is in line with how GCC does things. And it has the benefit of working for Darwin in 64-bit mode now. llvm-svn: 80428
-
- Aug 27, 2009
-
-
Eric Christopher authored
llvm-svn: 80269
-
Eric Christopher authored
llvm-svn: 80268
-
Dan Gohman authored
moves. This avoids the need to promote the operands (or implicitly extend them, a partial register update condition), and can reduce i8 register pressure. This substantially speeds up code such as write_hex in lib/Support/raw_ostream.cpp. subclass-coalesce.ll is too trivial and no longer tests what it was originally intended to test. llvm-svn: 80184
-
- Aug 22, 2009
-
-
Devang Patel authored
llvm-svn: 79742
-
- Aug 19, 2009
-
-
Eric Christopher authored
Add patterns and instruction encoding information. Add custom lowering to deal with hardwired return register of uncertain type (xmm0). llvm-svn: 79377
-
- Aug 18, 2009
-
-
Dan Gohman authored
returns a log2 value. llvm-svn: 79293
-
- Aug 16, 2009
-
-
Dan Gohman authored
or some other situation where no xmm registers need to be saved. llvm-svn: 79207
-
- Aug 15, 2009
-
-
Bill Wendling authored
llvm-svn: 79136
-
Bill Wendling authored
llvm-svn: 79135
-
Evan Cheng authored
support unaligned mem access only for certain types. (Should it be size instead?) ARM v7 supports unaligned access for i16 and i32, some v6 variants support it as well. llvm-svn: 79127
-
Dan Gohman authored
the register save area if %al is 0. This avoids touching xmm regsiters when they aren't actually used. llvm-svn: 79061
-
- Aug 14, 2009
-
-
Anton Korobeynikov authored
llvm-svn: 79009
-
- Aug 13, 2009
-
-
Owen Anderson authored
llvm-svn: 78948
-
- Aug 11, 2009
-
-
Owen Anderson authored
llvm-svn: 78725
-
Owen Anderson authored
the latter is capable of representing either a primitive or an extended type. llvm-svn: 78713
-
Owen Anderson authored
llvm-svn: 78610
-
- Aug 10, 2009
-
-
Owen Anderson authored
llvm-svn: 78595
-
Owen Anderson authored
llvm-svn: 78593
-
Owen Anderson authored
Start moving TargetLowering away from using full MVTs and towards SimpleValueType, which will simplify the privatization of IntegerType in the future. llvm-svn: 78584
-
- Aug 06, 2009
-
-
Anton Korobeynikov authored
subtle bug with small code model. llvm-svn: 78255
-
- Aug 05, 2009
-
-
Dan Gohman authored
Instead of awkwardly encoding calling-convention information with ISD::CALL, ISD::FORMAL_ARGUMENTS, ISD::RET, and ISD::ARG_FLAGS nodes, TargetLowering provides three virtual functions for targets to override: LowerFormalArguments, LowerCall, and LowerRet, which replace the custom lowering done on the special nodes. They provide the same information, but in a more immediately usable format. This also reworks much of the target-independent tail call logic. The decision of whether or not to perform a tail call is now cleanly split between target-independent portions, and the target dependent portion in IsEligibleForTailCallOptimization. This also synchronizes all in-tree targets, to help enable future refactoring and feature work. llvm-svn: 78142
-
- Aug 03, 2009
-
-
Anton Korobeynikov authored
llvm-svn: 77965
-
Anton Korobeynikov authored
Add 'Indirect' LocInfo class and use to pass __m128 on win64. Also minore fixes here and there (mostly __m64). llvm-svn: 77964
-
Anton Korobeynikov authored
Cleanup Darwin MMX calling conv stuff - make the stuff more generic. This also fixes a subtle bug, when 6th v1i64 argument passed wrongly. llvm-svn: 77963
-
Anton Korobeynikov authored
Unbreak Win64 CC. Step one: honour register save area, fix some alignment and provide a different set of call-clobberred registers. llvm-svn: 77962
-
Rafael Espindola authored
Thanks to Eli Friedman for noticing it. llvm-svn: 77942
-
Rafael Espindola authored
Fixes PR4669 llvm-svn: 77940
-
- Aug 01, 2009
-
-
Dan Gohman authored
llvm-svn: 77795
-
- Jul 31, 2009
-
-
Chris Lattner authored
initialize method, which can be called when an MCContext is available. llvm-svn: 77687
-
- Jul 30, 2009
-
-
Dan Gohman authored
classes. And define its SubRegClassList. llvm-svn: 77601
-
Evan Cheng authored
Optimize some common usage patterns of atomic built-ins __sync_add_and_fetch() and __sync_sub_and_fetch. When the return value is not used (i.e. only care about the value in the memory), x86 does not have to use add to implement these. Instead, it can use add, sub, inc, dec instructions with the "lock" prefix. This is currently implemented using a bit of instruction selection trick. The issue is the target independent pattern produces one output and a chain and we want to map it into one that just output a chain. The current trick is to select it into a merge_values with the first definition being an implicit_def. The proper solution is to add new ISD opcodes for the no-output variant. DAG combiner can then transform the node before it gets to target node selection. Problem #2 is we are adding a whole bunch of x86 atomic instructions when in fact these instructions are identical to the non-lock versions. We need a way to add target specific information to target nodes and have this information carried over to machine instructions. Asm printer (or JIT) can use this information to add the "lock" prefix. llvm-svn: 77582
-