Chris Lattner
3cd393b5ab
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
ff49dc59ff
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
a6e9de35ae
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
9f51583a6a
Fix build issue on certain compilers.
...
llvm-svn: 45629
2008-01-05 20:15:42 +00:00
Gordon Henriksen
f4e137838b
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
ecf0f85985
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
0d444b96ac
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
9428a7d97f
allow sinking to be enabled for the jit
...
llvm-svn: 45624
2008-01-05 06:14:16 +00:00
Chris Lattner
f1493e7b58
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
aad6c09a14
simplify some code by using shorter accessors.
...
llvm-svn: 45622
2008-01-05 05:28:30 +00:00
Chris Lattner
6e948ea2e6
revert my previous patch.
...
llvm-svn: 45621
2008-01-05 05:26:26 +00:00
Chris Lattner
86ca5928b5
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
6ad8e32f6b
getting the pic base has no side effects.
...
llvm-svn: 45618
2008-01-05 03:54:32 +00:00
Chris Lattner
9e7943159e
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
759f389846
X86 JIT PIC jumptable support.
...
llvm-svn: 45616
2008-01-05 02:26:58 +00:00
Chris Lattner
377c720459
fix a common crash.
...
llvm-svn: 45614
2008-01-05 01:39:17 +00:00
Chris Lattner
7e1c3aa702
remove a couple more unsafe xforms in the face of overflow.
...
llvm-svn: 45613
2008-01-05 01:22:42 +00:00
Chris Lattner
983697dfac
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
Owen Anderson
8c8c5906f8
I should not be allowed to commit when sleepy.
...
llvm-svn: 45608
2008-01-05 00:48:55 +00:00
Owen Anderson
6c7beb1748
Didn't mean to commit this.
...
llvm-svn: 45607
2008-01-05 00:43:37 +00:00
Owen Anderson
4cce45354c
Didn't mean to commit this.
...
llvm-svn: 45606
2008-01-05 00:42:45 +00:00
Evan Cheng
5b9282f3b5
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
Owen Anderson
2adf8c5533
Move some more functionality from MRegisterInfo to TargetInstrInfo.
...
llvm-svn: 45603
2008-01-04 23:57:37 +00:00
Bill Wendling
93556af6c4
Don't recalculate the loop info and loop dominators analyses if they're
...
preserved.
llvm-svn: 45596
2008-01-04 20:54:55 +00:00
Wojciech Matyjewicz
2502769cf3
fix typo
...
llvm-svn: 45595
2008-01-04 20:04:08 +00:00
Wojciech Matyjewicz
9ec15f974f
fix typo
...
llvm-svn: 45594
2008-01-04 20:02:18 +00:00
Duncan Sands
8a7547d26f
Testcase with non-integer "bitfields" (in quotes,
...
since they didn't actually need to be bitfields,
though they are marked as such).
llvm-svn: 45588
2008-01-04 17:31:56 +00:00
Gordon Henriksen
bc89f424b7
Fix a typo in llvm.mli noticed by Alain Frisch.
...
llvm-svn: 45585
2008-01-04 13:21:02 +00:00
Duncan Sands
93c581f2a8
Testcase for PR1386.
...
llvm-svn: 45583
2008-01-04 13:15:39 +00:00
Bill Wendling
9763bb186b
doc_code-ify some code in this doc.
...
llvm-svn: 45581
2008-01-04 12:04:32 +00:00
Gordon Henriksen
35d9fcb448
Quote a path in the Ocaml makefile which is likely to include spaces on Windows.
...
llvm-svn: 45580
2008-01-04 11:55:57 +00:00
Evan Cheng
6dbcca7903
Unbreak tailcall opt in JIT.
...
llvm-svn: 45576
2008-01-04 10:50:28 +00:00
Evan Cheng
7322e4dec4
X86 PIC JIT support fixes: encoding bugs, add lazy pointer stubs support.
...
llvm-svn: 45575
2008-01-04 10:46:51 +00:00
Bill Wendling
4f3a9df125
80-column violations.
...
llvm-svn: 45574
2008-01-04 08:59:18 +00:00
Bill Wendling
2017097bb8
Add that this preserves some analyses.
...
llvm-svn: 45573
2008-01-04 08:48:49 +00:00
Bill Wendling
13eb1bfc08
Move option to enable machine LICM into LLVMTargetMachine.cpp.
...
llvm-svn: 45572
2008-01-04 08:11:03 +00:00
Bill Wendling
da5d32e248
Call the parent's getAnalysisUsage.
...
llvm-svn: 45571
2008-01-04 07:50:05 +00:00
Chris Lattner
f4972fa569
Add a really quick hack at a machine code sinking pass, enabled with --enable-sinking.
...
It is missing validity checks, so it is known broken. However, it is powerful enough
to compile this contrived code:
void test1(int C, double A, double B, double *P) {
double Tmp = A*A+B*B;
*P = C ? Tmp : A;
}
into:
_test1:
movsd 8(%esp), %xmm0
cmpl $0, 4(%esp)
je LBB1_2 # entry
LBB1_1: # entry
movsd 16(%esp), %xmm1
mulsd %xmm1, %xmm1
mulsd %xmm0, %xmm0
addsd %xmm1, %xmm0
LBB1_2: # entry
movl 24(%esp), %eax
movsd %xmm0, (%eax)
ret
instead of:
_test1:
movsd 16(%esp), %xmm0
mulsd %xmm0, %xmm0
movsd 8(%esp), %xmm1
movapd %xmm1, %xmm2
mulsd %xmm2, %xmm2
addsd %xmm0, %xmm2
cmpl $0, 4(%esp)
je LBB1_2 # entry
LBB1_1: # entry
movapd %xmm2, %xmm1
LBB1_2: # entry
movl 24(%esp), %eax
movsd %xmm1, (%eax)
ret
woo.
llvm-svn: 45570
2008-01-04 07:36:53 +00:00
Chris Lattner
b02b90a8f6
remove dead #includes and reorder the rest.
...
llvm-svn: 45569
2008-01-04 06:41:45 +00:00
Chris Lattner
d4c66656a1
Fix PR1896
...
llvm-svn: 45568
2008-01-04 05:04:53 +00:00
Chris Lattner
e71d6a90f1
Change the builtin matcher to emit a decision tree, which should help out
...
the VC++ 'nesting depth' issue.
llvm-svn: 45567
2008-01-04 04:38:35 +00:00
Chris Lattner
6142c837b5
fix nesting issues.
...
llvm-svn: 45566
2008-01-04 04:34:14 +00:00
Chris Lattner
056ca9d8e2
fix validation issues.
...
llvm-svn: 45565
2008-01-04 04:33:49 +00:00
Chris Lattner
3618504cc2
improve the description of types, patch by Alain Frisch
...
llvm-svn: 45564
2008-01-04 04:32:38 +00:00
Chris Lattner
17760c87aa
Don't let IntrinsicID be uninitialized if it doesn't match.
...
llvm-svn: 45563
2008-01-04 03:32:52 +00:00
Evan Cheng
627a9455a6
Correct order of parameters.
...
llvm-svn: 45562
2008-01-04 02:22:21 +00:00
Bill Wendling
26e9579653
Remove the default else. This was ending in code that looked like this:
...
if (!strcmp(Target, "x86")) {
// ...
}
else
IntrinsicID = Intrinsic::not_intrinsic;
llvm-svn: 45557
2008-01-03 23:02:16 +00:00
Chris Lattner
40f17611cc
Remove symbols that don't exist, remove tabs, fix comment typo
...
llvm-svn: 45553
2008-01-03 22:15:32 +00:00
Chuck Rose III
b3986cc208
Adding new files to win32 build
...
llvm-svn: 45545
2008-01-03 19:53:03 +00:00
Chris Lattner
5d4e5f277a
add info on walking preds/succs of a block.
...
llvm-svn: 45537
2008-01-03 16:56:04 +00:00