- Sep 01, 2005
-
-
Jim Laskey authored
is to manage processor specific attributes from the command line. See examples of use in llc/lli and PowerPCTargetSubtarget. llvm-svn: 23191
-
Chris Lattner authored
directly out of R1 (without using a CopyFromReg, which uses a chain), multiple allocas were getting CSE'd together, producing bogus code. For this: int %foo(bool %X, int %A, int %B) { br bool %X, label %T, label %F F: %G = alloca int %H = alloca int store int %A, int* %G store int %B, int* %H %R = load int* %G ret int %R T: ret int 0 } We were generating: _foo: stwu r1, -16(r1) stw r31, 4(r1) or r31, r1, r1 stw r1, 12(r31) cmpwi cr0, r3, 0 bne cr0, .LBB_foo_2 ; T .LBB_foo_1: ; F li r2, 16 subf r2, r2, r1 ;; One alloca or r1, r2, r2 or r3, r1, r1 or r1, r2, r2 or r2, r1, r1 stw r4, 0(r3) stw r5, 0(r2) lwz r3, 0(r3) lwz r1, 12(r31) lwz r31, 4(r31) lwz r1, 0(r1) blr .LBB_foo_2: ; T li r3, 0 lwz r1, 12(r31) lwz r31, 4(r31) lwz r1, 0(r1) blr Now we generate: _foo: stwu r1, -16(r1) stw r31, 4(r1) or r31, r1, r1 stw r1, 12(r31) cmpwi cr0, r3, 0 bne cr0, .LBB_foo_2 ; T .LBB_foo_1: ; F or r2, r1, r1 li r3, 16 subf r2, r3, r2 ;; Alloca 1 or r1, r2, r2 or r2, r1, r1 or r6, r1, r1 subf r3, r3, r6 ;; Alloca 2 or r1, r3, r3 or r3, r1, r1 stw r4, 0(r2) stw r5, 0(r3) lwz r3, 0(r2) lwz r1, 12(r31) lwz r31, 4(r31) lwz r1, 0(r1) blr .LBB_foo_2: ; T li r3, 0 lwz r1, 12(r31) lwz r31, 4(r31) lwz r1, 0(r1) blr This fixes Povray and SPASS with the dag isel, the last two failing cases. Tommorow we will hopefully turn it on by default! :) llvm-svn: 23190
-
Chris Lattner authored
could cause a miscompile. Fixing this didn't fix the two programs that fail though. :( This also changes the implementation to follow the pattern selector more closely, causing us to select 0 to li instead of lis. llvm-svn: 23189
-
Chris Lattner authored
and selecting early prevents folding immediates into the cmpw* instructions llvm-svn: 23188
-
Chris Lattner authored
llvm-svn: 23186
-
Nate Begeman authored
statement in visit(). llvm-svn: 23185
-
Nate Begeman authored
be mostly functional. It currently has all folds from SelectionDAG.cpp that do not involve a condition code. llvm-svn: 23184
-
Nate Begeman authored
mulhs. llvm-svn: 23183
-
Chris Lattner authored
llvm-svn: 23182
-
Chris Lattner authored
llvm-svn: 23181
-
- Aug 31, 2005
-
-
Chris Lattner authored
getting them out of the business of making stack slots. llvm-svn: 23180
-
Chris Lattner authored
llvm-svn: 23179
-
Chris Lattner authored
llvm-svn: 23178
-
Chris Lattner authored
llvm-svn: 23177
-
Chris Lattner authored
the ops to dag optimization. llvm-svn: 23176
-
Chris Lattner authored
llvm-svn: 23173
-
Chris Lattner authored
llvm-svn: 23172
-
Chris Lattner authored
llvm-svn: 23171
-
Chris Lattner authored
llvm-svn: 23170
-
Jeff Cohen authored
llvm-svn: 23169
-
Nate Begeman authored
llvm-svn: 23168
-
Chris Lattner authored
fixes crafty and probably others. llvm-svn: 23167
-
Nate Begeman authored
llvm-svn: 23166
-
Nate Begeman authored
case in MaskedValueIsZero was wrong. llvm-svn: 23165
-
Nate Begeman authored
MaskedValueIsZero. llvm-svn: 23164
-
Nate Begeman authored
needed for folding constants in the upcoming dag combiner. llvm-svn: 23163
-
Chris Lattner authored
ugly hacks llvm-svn: 23162
-
Chris Lattner authored
Allow physregs to occur in the dag with multiple types. Though I don't likethis, it is a requirement on PPC, which can have an f32 value in r3 at onepoint in a function and a f64 value in r3 at another point. :( This fixes compilation of mesa llvm-svn: 23161
-
Chris Lattner authored
this, it is a requirement on PPC, which can have an f32 value in r3 at one point in a function and a f64 value in r3 at another point. :( llvm-svn: 23160
-
- Aug 30, 2005
-
-
Chris Lattner authored
llvm-svn: 23159
-
Chris Lattner authored
This fixes PR621 and Regression/CodeGen/X86/2005-08-30-RegAllocAliasProblem.ll llvm-svn: 23158
-
Chris Lattner authored
llvm-svn: 23157
-
Chris Lattner authored
one. TODO :) llvm-svn: 23156
-
Chris Lattner authored
Remove code (last hunk) that miscompiled immediate and's, such as and uint %tmp.30, 4294958079 into andi. r8, r8, 56319 andis. r8, r8, 65535 instead of: li r9, -9217 and r8, r8, r9 The first always generates zero. This fixes espresso. llvm-svn: 23155
-
Chris Lattner authored
fixes fourinarow llvm-svn: 23153
-
Chris Lattner authored
fixes fhourstones llvm-svn: 23152
-
Chris Lattner authored
to SHIFT_PARTS nodes llvm-svn: 23151
-
Chris Lattner authored
llvm-svn: 23150
-
Chris Lattner authored
at least tends to expose problems elsewhere. llvm-svn: 23149
-
Nate Begeman authored
llvm-svn: 23148
-