Chris Lattner
e9dba0920b
describe isStore and simplify the implementation of hasUnmodelledSideEffects.
...
No functionality change.
llvm-svn: 45651
2008-01-06 05:43:21 +00:00
Chris Lattner
89c6566577
set the 'isstore' flag for instructions whose pattern is an
...
intrinsic that writes to memory.
llvm-svn: 45650
2008-01-06 05:36:50 +00:00
Nick Lewycky
0e519bb555
Accept both %y, %x and %x, %y as valid answers.
...
llvm-svn: 45649
2008-01-06 03:12:44 +00:00
Chris Lattner
e457fd1e9b
remove some old hacky code that tried to infer whether a store
...
occured in a pattern, but failed miserably. The new code works for
any instruction that has a store in its pattern, including all the
x86 mem op mem instructions.
The only target-independent code that uses this is branch folding,
so this won't change anything in practice.
llvm-svn: 45648
2008-01-06 02:16:26 +00:00
Chris Lattner
27a4c1515a
rearrange some code to allow inferring instr info from the pattern of the instr, but don't do so yet.
...
llvm-svn: 45647
2008-01-06 01:53:37 +00:00
Chris Lattner
d5326def4a
improve const correctness.
...
llvm-svn: 45646
2008-01-06 01:52:22 +00:00
Chris Lattner
ea2d52d867
Split the impl of CodeGenInstruction out to its own .cpp file, add a getName() accessor.
...
llvm-svn: 45645
2008-01-06 01:35:39 +00:00
Chris Lattner
85467a17ae
final cleanups.
...
llvm-svn: 45644
2008-01-06 01:21:51 +00:00
Chris Lattner
626b89daa4
further simplifications and cleanup
...
llvm-svn: 45643
2008-01-06 01:20:13 +00:00
Chris Lattner
827efa451f
simplify some code
...
llvm-svn: 45642
2008-01-06 01:12:44 +00:00
Chris Lattner
ab3242fd46
rename CodegenDAGPatterns -> CodeGenDAGPatterns
...
llvm-svn: 45641
2008-01-06 01:10:31 +00:00
Chris Lattner
e59a3c79e5
split enum emission out from InstrInfoEmitter into it's own tblgen backend.
...
llvm-svn: 45640
2008-01-06 00:49:05 +00:00
Chris Lattner
78ac0747e7
fix build on case sensitive file systems.
...
llvm-svn: 45639
2008-01-05 23:37:52 +00:00
Bill Wendling
5fa2c64b78
Fix comment.
...
llvm-svn: 45638
2008-01-05 23:30:51 +00:00
Chris Lattner
7eac714b41
make this build with newer gcc's
...
llvm-svn: 45637
2008-01-05 23:29:51 +00:00
Chris Lattner
7980bba549
now that computing CodegenDAGPatterns doesn't implicitly print stuff
...
out, DAGISelEmitter can compute it in its ctor, which simplifies some code.
Now we can use CodegenDAGPatterns in other parts of tblgen that want access
to dag pattern info, woo!
llvm-svn: 45636
2008-01-05 22:58:54 +00:00
Chris Lattner
cc43e79bcd
move Node Transformation printing from CodeGenDAGPatterns -> DAGISelEmitter.
...
The only difference in output is that we now print them in alphabetical
order instead of reverse alphabetical order.
llvm-svn: 45635
2008-01-05 22:54:53 +00:00
Chris Lattner
e7170df043
move predicate printing code from CodeGenDAGPatterns -> DAGISelEmitter.
...
llvm-svn: 45634
2008-01-05 22:43:57 +00:00
Chris Lattner
9abe77b2d0
fix a fixme by improving const correctness.
...
llvm-svn: 45633
2008-01-05 22:30:17 +00:00
Chris Lattner
8cab021ca2
change getQualifiedName to be a global function.
...
Split the pattern parsing code out from the dag isel emitter into it's own file.
No functionality change.
llvm-svn: 45632
2008-01-05 22:25:12 +00:00
Nate Begeman
22950d26f5
Remove an incorrect optimization that is performed correctly by
...
the target independent legalizer.
llvm-svn: 45631
2008-01-05 20:51:30 +00:00
Nate Begeman
5743da502e
If custom lowering of insert element fails, the result Val will be 0.
...
Don't overwrite a variable used by the fallthrough code path in this
case.
llvm-svn: 45630
2008-01-05 20:47:37 +00:00
Chris Lattner
647e61a42b
Fix build issue on certain compilers.
...
llvm-svn: 45629
2008-01-05 20:15:42 +00:00
Gordon Henriksen
9231958391
Refactoring the x86 and x86-64 calling convention implementations,
...
unifying the copied algorithms and saving over 500 LOC. There should
be no functionality change, but please test on your favorite x86
target.
llvm-svn: 45627
2008-01-05 16:56:59 +00:00
Bill Wendling
be984cf10b
Chris and Evan noticed that this check was compleatly fubared. I was
...
checking that there was a from a global instead of a load from the stub
for a global, which is the one that's safe to hoist.
Consider this program:
volatile char G[100];
int B(char *F, int N) {
for (; N > 0; --N)
F[N] = G[N];
}
In static mode, we shouldn't be hoisting the load from G:
$ llc -relocation-model=static -o - a.bc -march=x86 -machine-licm
LBB1_1: # bb.preheader
leal -1(%eax), %edx
testl %edx, %edx
movl $1, %edx
cmovns %eax, %edx
xorl %esi, %esi
LBB1_2: # bb
movb _G(%eax), %bl
movb %bl, (%ecx,%eax)
llvm-svn: 45626
2008-01-05 09:18:04 +00:00
Chris Lattner
ee61d14bf6
The current impl is really trivial, add some comments about how it can be made better.
...
llvm-svn: 45625
2008-01-05 06:47:58 +00:00
Chris Lattner
276178e49f
allow sinking to be enabled for the jit
...
llvm-svn: 45624
2008-01-05 06:14:16 +00:00
Chris Lattner
e0f0c4aa02
enable sinking and licm of loads from the argument area. I'd like to enable this
...
for remat, but can't due to an RA bug.
llvm-svn: 45623
2008-01-05 06:10:42 +00:00
Chris Lattner
d4738ee8e1
simplify some code by using shorter accessors.
...
llvm-svn: 45622
2008-01-05 05:28:30 +00:00
Chris Lattner
86f4a2e4f2
revert my previous patch.
...
llvm-svn: 45621
2008-01-05 05:26:26 +00:00
Chris Lattner
69d7902cf1
factor some code better to avoid redundancy between
...
isReallySideEffectFree and isReallyTriviallyReMaterializable. Why is a load from
a global considered side-effect-free but not rematable?
llvm-svn: 45620
2008-01-05 05:19:56 +00:00
Chris Lattner
9fa8ae6c6b
getting the pic base has no side effects.
...
llvm-svn: 45618
2008-01-05 03:54:32 +00:00
Chris Lattner
d11ca169e7
don't sink anything with side effects, this makes lots of stuff work, but sinks almost nothing.
...
llvm-svn: 45617
2008-01-05 02:33:22 +00:00
Evan Cheng
880b080887
X86 JIT PIC jumptable support.
...
llvm-svn: 45616
2008-01-05 02:26:58 +00:00
Fariborz Jahanian
7b1b947ca1
twiks based on Chris's comment. No need to iterate thru a list of declarations
...
in a foreach-statement which is illegal (but not yet caught) .
llvm-svn: 45615
2008-01-05 01:40:08 +00:00
Chris Lattner
6ec78274df
fix a common crash.
...
llvm-svn: 45614
2008-01-05 01:39:17 +00:00
Chris Lattner
e666bc272d
remove a couple more unsafe xforms in the face of overflow.
...
llvm-svn: 45613
2008-01-05 01:22:42 +00:00
Chris Lattner
db026d703b
remove the (x-y) < 0 comparison xform, it miscompiles
...
things that are not equality comparisons, for example:
(2147479553+4096)-2147479553 < 0 != (2147479553+4096) < 2147479553
llvm-svn: 45612
2008-01-05 01:18:20 +00:00
Ted Kremenek
e84b32e506
Moved serialization code for ObjcForCollectionStmt to be in alphabetical order
...
with the rest of the Objective-C serialization code.
llvm-svn: 45609
2008-01-05 00:57:49 +00:00
Owen Anderson
3592b2352d
I should not be allowed to commit when sleepy.
...
llvm-svn: 45608
2008-01-05 00:48:55 +00:00
Owen Anderson
1984732f22
Didn't mean to commit this.
...
llvm-svn: 45607
2008-01-05 00:43:37 +00:00
Owen Anderson
cc35708bac
Didn't mean to commit this.
...
llvm-svn: 45606
2008-01-05 00:42:45 +00:00
Evan Cheng
f55b7381af
Combine MovePCtoStack + POP32r into one instruction MOVPC32r so it can be moved if needed.
...
llvm-svn: 45605
2008-01-05 00:41:47 +00:00
Fariborz Jahanian
bad3218954
Minor refactoring of foreach's semantics code per Chris's suggetion.
...
llvm-svn: 45604
2008-01-04 23:59:09 +00:00
Owen Anderson
6bb0c52628
Move some more functionality from MRegisterInfo to TargetInstrInfo.
...
llvm-svn: 45603
2008-01-04 23:57:37 +00:00
Chris Lattner
881a212a70
unnest vector handling again.
...
llvm-svn: 45602
2008-01-04 23:32:24 +00:00
Fariborz Jahanian
e908cab389
Added a comment, minor refactoring of foreach parsing code per Chris's suggestion.
...
llvm-svn: 45601
2008-01-04 23:23:46 +00:00
Chris Lattner
f735409e11
we already test for exact type matches early, so we don't have to do
...
it explicitly for vectors. This allows us to unnest some code.
llvm-svn: 45600
2008-01-04 23:20:56 +00:00
Chris Lattner
a52c2f2e3e
simplify some of this code by removing the else/if chain and by
...
stripping down to canonical types early.
llvm-svn: 45599
2008-01-04 23:18:45 +00:00
Fariborz Jahanian
3622e5954b
Minor changes as suggested by Chris L.
...
llvm-svn: 45598
2008-01-04 23:04:08 +00:00