- Jan 12, 2006
-
-
Chris Lattner authored
functionality change, just code cleanup. llvm-svn: 25230
-
Chris Lattner authored
pointer in the epilog, not a load. llvm-svn: 25229
-
- Jan 11, 2006
-
-
Nate Begeman authored
Add dag combiner code to recognize rotl, rotr Add ppc code to match rotl Targets should add rotl/rotr patterns if they have them llvm-svn: 25222
-
Chris Lattner authored
pointer. This allows us to emit stuff like this: li r10, 0 stw r10, 56(r1) or r3, r10, r10 or r4, r10, r10 or r5, r10, r10 or r6, r10, r10 or r7, r10, r10 or r8, r10, r10 or r9, r10, r10 bl L_bar$stub instead of this: or r2, r1, r1 ;; Extraneous copy. li r10, 0 stw r10, 56(r2) or r3, r10, r10 or r4, r10, r10 or r5, r10, r10 or r6, r10, r10 or r7, r10, r10 or r8, r10, r10 or r9, r10, r10 bl L_bar$stub wowness. llvm-svn: 25221
-
Chris Lattner authored
Regression/CodeGen/PowerPC/2006-01-11-darwin-fp-argument.ll, which was distilled from a miscompilation in 252.eon. llvm-svn: 25217
-
- Jan 10, 2006
-
-
Nate Begeman authored
llvm-svn: 25167
-
Chris Lattner authored
llvm-svn: 25166
-
Chris Lattner authored
llvm-svn: 25164
-
- Jan 09, 2006
-
-
Evan Cheng authored
hasInFlag, hasOutFlag. llvm-svn: 25155
-
- Jan 07, 2006
-
-
Chris Lattner authored
llvm-svn: 25141
-
- Jan 06, 2006
-
-
Chris Lattner authored
Prolangs-C++/family and Prolangs-C++/primes. llvm-svn: 25119
-
- Jan 05, 2006
-
-
Chris Lattner authored
The PPC backend was generating random shift counts in this case, due to an uninitialized variable. llvm-svn: 25114
-
Jim Laskey authored
llvm-svn: 25105
-
Jim Laskey authored
inserted in the code. llvm-svn: 25104
-
- Jan 04, 2006
-
-
Jim Laskey authored
pass manager do it's thing." Fixes crash when compiling -g files and suppresses dwarf statements if no debug info is present. llvm-svn: 25100
-
Jim Laskey authored
llvm-svn: 25096
-
Jim Laskey authored
llvm-svn: 25093
-
- Dec 30, 2005
-
-
Nate Begeman authored
llvm-svn: 25046
-
Nate Begeman authored
llvm-svn: 25045
-
- Dec 26, 2005
-
-
Evan Cheng authored
Currently tblgen cannot tell which operands in the operand list are results so it assumes the first one is a result. This is bad. Ideally we would fix this by separating results from inputs, e.g. (res R32:$dst), (ops R32:$src1, R32:$src2). But that's a more distruptive change. Adding 'let noResults = 1' is the workaround to tell tblgen that the instruction does not produces a result. It works for now since tblgen does not support instructions which produce multiple results. llvm-svn: 25017
-
- Dec 24, 2005
-
-
Nate Begeman authored
constant offsets from statics into the address arithmetic. llvm-svn: 24999
-
- Dec 23, 2005
-
-
Evan Cheng authored
* Added a pseudo instruction (for each target) that represent "return void". This is a workaround for lack of optional flag operand (return void is not lowered so it does not have a flag operand.) llvm-svn: 24997
-
Chris Lattner authored
llvm-svn: 24978
-
Chris Lattner authored
llvm-svn: 24974
-
- Dec 22, 2005
-
-
Chris Lattner authored
llvm-svn: 24965
-
Chris Lattner authored
llvm-svn: 24964
-
Chris Lattner authored
llvm-svn: 24956
-
Evan Cheng authored
llvm-svn: 24935
-
- Dec 20, 2005
-
-
Evan Cheng authored
llvm-svn: 24884
-
Nate Begeman authored
llvm-svn: 24874
-
Nate Begeman authored
us to load and store vectors directly at a pointer (offset of zero) by using r0 as the base register. This also requires some asm printer work to satisfy the darwin assembler. For void %foo(<4 x float> * %a) { entry: %tmp1 = load <4 x float> * %a; %tmp2 = add <4 x float> %tmp1, %tmp1 store <4 x float> %tmp2, <4 x float> *%a ret void } We now produce: _foo: lvx v0, 0, r3 vaddfp v0, v0, v0 stvx v0, 0, r3 blr Instead of: _foo: li r2, 0 lvx v0, r2, r3 vaddfp v0, v0, v0 stvx v0, r2, r3 blr llvm-svn: 24872
-
Nate Begeman authored
llvm-svn: 24871
-
- Dec 18, 2005
-
-
Chris Lattner authored
llvm-svn: 24834
-
- Dec 16, 2005
-
-
Jim Laskey authored
llvm-svn: 24748
-
Chris Lattner authored
llvm-svn: 24747
-
Nate Begeman authored
so that tablegen can infer all types. llvm-svn: 24746
-
Chris Lattner authored
should work in all permutations. llvm-svn: 24728
-
- Dec 14, 2005
-
-
Nate Begeman authored
llvm-svn: 24720
-
Nate Begeman authored
from the DAGToDAG cpp file. This adds pattern support for vector and scalar fma, which passes test/Regression/CodeGen/PowerPC/fma.ll, and does the right thing in the presence of -disable-excess-fp-precision. Allows us to match: void %foo(<4 x float> * %a) { entry: %tmp1 = load <4 x float> * %a; %tmp2 = mul <4 x float> %tmp1, %tmp1 %tmp3 = add <4 x float> %tmp2, %tmp1 store <4 x float> %tmp3, <4 x float> *%a ret void } As: _foo: li r2, 0 lvx v0, r2, r3 vmaddfp v0, v0, v0, v0 stvx v0, r2, r3 blr Or, with llc -disable-excess-fp-precision, _foo: li r2, 0 lvx v0, r2, r3 vxor v1, v1, v1 vmaddfp v1, v0, v0, v1 vaddfp v0, v1, v0 stvx v0, r2, r3 blr llvm-svn: 24719
-
Evan Cheng authored
llvm-svn: 24716
-