- Nov 19, 2005
-
-
Chris Lattner authored
from last night. llvm-svn: 24427
-
Nate Begeman authored
packed types with an element count of 1, although more generic support is coming. This allows LLVM to turn the following code: void %foo(<1 x float> * %a) { entry: %tmp1 = load <1 x float> * %a; %tmp2 = add <1 x float> %tmp1, %tmp1 store <1 x float> %tmp2, <1 x float> *%a ret void } Into: _foo: lfs f0, 0(r3) fadds f0, f0, f0 stfs f0, 0(r3) blr llvm-svn: 24416
-
- Nov 18, 2005
-
-
Nate Begeman authored
llvm-svn: 24412
-
- Nov 16, 2005
-
-
Chris Lattner authored
llvm-svn: 24377
-
- Nov 11, 2005
-
-
Andrew Lenharth authored
llvm-svn: 24306
-
Andrew Lenharth authored
llvm-svn: 24300
-
- Nov 09, 2005
-
-
Chris Lattner authored
llvm-svn: 24261
-
Chris Lattner authored
llvm-svn: 24256
-
Chris Lattner authored
eliminates almost one node per block in common cases. llvm-svn: 24254
-
Chris Lattner authored
turn power-of-two multiplies into shifts early to improve compile time. llvm-svn: 24253
-
- Nov 06, 2005
-
-
Nate Begeman authored
alignment information appropriately. Includes code for PowerPC to support fixed-size allocas with alignment larger than the stack. Support for arbitrarily aligned dynamic allocas coming soon. llvm-svn: 24224
-
- Oct 30, 2005
-
-
Chris Lattner authored
a special case hack for X86, make the hack more general: if an incoming argument register is not used in any block other than the entry block, don't copy it to a vreg. This helps us compile code like this: %struct.foo = type { int, int, [0 x ubyte] } int %test(%struct.foo* %X) { %tmp1 = getelementptr %struct.foo* %X, int 0, uint 2, int 100 %tmp = load ubyte* %tmp1 ; <ubyte> [#uses=1] %tmp2 = cast ubyte %tmp to int ; <int> [#uses=1] ret int %tmp2 } to: _test: lbz r3, 108(r3) blr instead of: _test: lbz r2, 108(r3) or r3, r2, r2 blr The (dead) copy emitted to copy r3 into a vreg for extra-block uses was increasing the live range of r3 past the load, preventing the coallescing. This implements CodeGen/PowerPC/reg-coallesce-simple.ll llvm-svn: 24115
-
- Oct 19, 2005
-
-
Nate Begeman authored
allows us to lower legal return types to something else, to meet ABI requirements (such as that i64 be returned in two i32 regs on Darwin/ppc). llvm-svn: 23802
-
Chris Lattner authored
sized stack object if either the array size or the type size is zero. llvm-svn: 23801
-
Chris Lattner authored
llvm-svn: 23797
-
- Oct 10, 2005
-
-
Chris Lattner authored
removal of a bunch of ad-hoc and crufty code from SelectionDAG.cpp. llvm-svn: 23682
-
- Oct 05, 2005
-
-
Chris Lattner authored
the second phase of dag combining llvm-svn: 23631
-
- Oct 01, 2005
-
-
Jeff Cohen authored
llvm-svn: 23579
-
- Sep 29, 2005
-
-
Chris Lattner authored
Though I have done extensive testing, it is possible that this will break things in configs I can't test. Please let me know if this causes a problem and I'll fix it ASAP. llvm-svn: 23504
-
- Sep 28, 2005
-
-
Chris Lattner authored
If the target prefers it, use _setjmp/_longjmp should be used instead of setjmp/longjmp for llvm.setjmp/llvm.longjmp. llvm-svn: 23481
-
- Sep 13, 2005
-
-
Chris Lattner authored
into particular vregs, emit copies into the entry MBB. llvm-svn: 23331
-
- Sep 07, 2005
-
-
Nate Begeman authored
that option for PowerPC's beta. llvm-svn: 23253
-
- Sep 02, 2005
-
-
Chris Lattner authored
number of elements. llvm-svn: 23219
-
Chris Lattner authored
llvm-svn: 23215
-
Chris Lattner authored
instead of ZERO_EXTEND to eliminate extraneous extensions. This eliminates dead zero extensions on formal arguments and other cases on PPC, implementing the newly tightened up test/Regression/CodeGen/PowerPC/small-arguments.ll test. llvm-svn: 23205
-
- Sep 01, 2005
-
-
Chris Lattner authored
llvm-svn: 23186
-
- Aug 27, 2005
-
-
Chris Lattner authored
llvm-svn: 23114
-
Chris Lattner authored
changes the code generated for: short %test(short %A) { %B = xor short %A, -32768 ret short %B } to: _test: xori r2, r3, 32768 xoris r2, r2, 65535 extsh r3, r2 blr instead of: _test: rlwinm r2, r3, 0, 16, 31 xori r2, r3, 32768 xoris r2, r2, 65535 extsh r3, r2 blr llvm-svn: 23109
-
- Aug 26, 2005
-
-
Chris Lattner authored
flag is set on an instruction. llvm-svn: 23098
-
- Aug 24, 2005
-
-
Chris Lattner authored
the target isel crashes due to unimplemented features like calls :) llvm-svn: 22997
-
- Aug 22, 2005
-
-
Chris Lattner authored
promoted to the right type. This fixes: IA64/2005-08-22-LegalizerCrash.ll llvm-svn: 22969
-
- Aug 18, 2005
-
-
Chris Lattner authored
llvm-svn: 22863
-
- Aug 17, 2005
-
-
Chris Lattner authored
Nate noticed in yacr2 (and I know occurs in other places as well). This is still rough, as the critical edge blocks are not intelligently placed but is added to get some idea to see if this improves performance. llvm-svn: 22825
-
Chris Lattner authored
llvm-svn: 22822
-
- Aug 16, 2005
-
-
Chris Lattner authored
used to tack a register number onto the node. Instead of doing this, make a new node, RegisterSDNode, which is a leaf containing a register number. These three operations just become normal DAG nodes now, instead of requiring special handling. Note that with this change, it is no longer correct to make illegal CopyFromReg/CopyToReg nodes. The legalizer will not touch them, and this is bad, so don't do it. :) llvm-svn: 22806
-
- Aug 09, 2005
-
-
Chris Lattner authored
CC out of the SetCC operation, making SETCC a standard ternary operation and CC's a standard DAG leaf. This will make it possible for other node to use CC's as operands in the future... llvm-svn: 22728
-
- Jul 27, 2005
-
-
Jeff Cohen authored
llvm-svn: 22523
-
- Jul 19, 2005
-
-
Nate Begeman authored
llvm-svn: 22469
-
- Jul 05, 2005
-
-
Chris Lattner authored
1. Pass Value*'s into lowering methods so that the proper pointers can be added to load/stores from the valist 2. Intrinsics that return void should only return a token chain, not a token chain/retval pair. 3. Rename LowerVAArgNext -> LowerVAArg, because VANext is long gone. llvm-svn: 22338
-
- Jun 29, 2005
-
-
Andrew Lenharth authored
llvm-svn: 22315
-