Chris Lattner
7b11712ef2
split enum emission out from InstrInfoEmitter into it's own tblgen backend.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45640 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-06 00:49:05 +00:00
Chris Lattner
93c7e41825
fix build on case sensitive file systems.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45639 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-05 23:37:52 +00:00
Bill Wendling
f995830daf
Fix comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45638 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-05 23:30:51 +00:00
Chris Lattner
19033bf7f8
make this build with newer gcc's
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45637 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-05 23:29:51 +00:00
Chris Lattner
200c57e8ea
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!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45636 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-05 22:58:54 +00:00
Chris Lattner
443e3f9dd6
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45635 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-05 22:54:53 +00:00
Chris Lattner
dc32f9802a
move predicate printing code from CodeGenDAGPatterns -> DAGISelEmitter.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45634 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-05 22:43:57 +00:00
Chris Lattner
60d8139d1b
fix a fixme by improving const correctness.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45633 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-05 22:30:17 +00:00
Chris Lattner
6cefb77a70
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45632 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-05 22:25:12 +00:00
Nate Begeman
219f67f0a5
Remove an incorrect optimization that is performed correctly by
...
the target independent legalizer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45631 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-05 20:51:30 +00:00
Nate Begeman
2281a99141
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45630 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-05 20:47:37 +00:00
Chris Lattner
54b62f3af5
Fix build issue on certain compilers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45629 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-05 20:15:42 +00:00
Gordon Henriksen
86737665b8
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45627 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-05 16:56:59 +00:00
Bill Wendling
df303bd7f2
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)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45626 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-05 09:18:04 +00:00
Chris Lattner
e430e1c072
The current impl is really trivial, add some comments about how it can be made better.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45625 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-05 06:47:58 +00:00
Chris Lattner
3c42f12118
allow sinking to be enabled for the jit
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45624 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-05 06:14:16 +00:00
Chris Lattner
f29495a22f
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45623 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-05 06:10:42 +00:00
Chris Lattner
3b5a221f81
simplify some code by using shorter accessors.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45622 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-05 05:28:30 +00:00
Chris Lattner
a83b34bbeb
revert my previous patch.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45621 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-05 05:26:26 +00:00
Chris Lattner
505d4abd05
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?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45620 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-05 05:19:56 +00:00
Chris Lattner
e9648f8981
getting the pic base has no side effects.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45618 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-05 03:54:32 +00:00
Chris Lattner
ba84ed7e92
don't sink anything with side effects, this makes lots of stuff work, but sinks almost nothing.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45617 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-05 02:33:22 +00:00
Evan Cheng
2a3e08b596
X86 JIT PIC jumptable support.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45616 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-05 02:26:58 +00:00
Chris Lattner
9bb459b554
fix a common crash.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45614 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-05 01:39:17 +00:00
Chris Lattner
5a62d0a038
remove a couple more unsafe xforms in the face of overflow.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45613 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-05 01:22:42 +00:00
Chris Lattner
b656601943
remove the (x-y) < 0 comparison xform, it miscompiles
...
things that are not equality comparisons, for example:
(2147479553+4096)-2147479553 < 0 != (2147479553+4096) < 2147479553
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45612 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-05 01:18:20 +00:00
Owen Anderson
a393cd3306
I should not be allowed to commit when sleepy.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45608 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-05 00:48:55 +00:00
Owen Anderson
a997c498e0
Didn't mean to commit this.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45607 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-05 00:43:37 +00:00
Owen Anderson
699f5faed5
Didn't mean to commit this.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45606 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-05 00:42:45 +00:00
Evan Cheng
0475ab58b8
Combine MovePCtoStack + POP32r into one instruction MOVPC32r so it can be moved if needed.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45605 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-05 00:41:47 +00:00
Owen Anderson
d94b6a16fe
Move some more functionality from MRegisterInfo to TargetInstrInfo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45603 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-04 23:57:37 +00:00
Bill Wendling
67d65bb69d
Don't recalculate the loop info and loop dominators analyses if they're
...
preserved.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45596 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-04 20:54:55 +00:00
Wojciech Matyjewicz
b670a1737b
fix typo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45595 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-04 20:04:08 +00:00
Wojciech Matyjewicz
21a715a124
fix typo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45594 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-04 20:02:18 +00:00
Duncan Sands
ad04cb28c5
Testcase with non-integer "bitfields" (in quotes,
...
since they didn't actually need to be bitfields,
though they are marked as such).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45588 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-04 17:31:56 +00:00
Gordon Henriksen
6321460440
Fix a typo in llvm.mli noticed by Alain Frisch.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45585 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-04 13:21:02 +00:00
Duncan Sands
e2940c3b70
Testcase for PR1386.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45583 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-04 13:15:39 +00:00
Bill Wendling
3275908821
doc_code-ify some code in this doc.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45581 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-04 12:04:32 +00:00
Gordon Henriksen
96a6931c0c
Quote a path in the Ocaml makefile which is likely to include spaces on Windows.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45580 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-04 11:55:57 +00:00
Evan Cheng
991500e329
Unbreak tailcall opt in JIT.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45576 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-04 10:50:28 +00:00
Evan Cheng
be8c03fc66
X86 PIC JIT support fixes: encoding bugs, add lazy pointer stubs support.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45575 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-04 10:46:51 +00:00
Bill Wendling
2674d71df0
80-column violations.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45574 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-04 08:59:18 +00:00
Bill Wendling
d5da7048c2
Add that this preserves some analyses.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45573 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-04 08:48:49 +00:00
Bill Wendling
cc8f603f53
Move option to enable machine LICM into LLVMTargetMachine.cpp.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45572 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-04 08:11:03 +00:00
Bill Wendling
b082c6f5d9
Call the parent's getAnalysisUsage.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45571 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-04 07:50:05 +00:00
Chris Lattner
c4ce73f666
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45570 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-04 07:36:53 +00:00
Chris Lattner
ac69582664
remove dead #includes and reorder the rest.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45569 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-04 06:41:45 +00:00
Chris Lattner
9027b3cc7f
Fix PR1896
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45568 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-04 05:04:53 +00:00
Chris Lattner
331bf92fb5
Change the builtin matcher to emit a decision tree, which should help out
...
the VC++ 'nesting depth' issue.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45567 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-04 04:38:35 +00:00
Chris Lattner
8f8c7b7c26
fix nesting issues.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45566 91177308-0d34-0410-b5e6-96231b3b80d8
2008-01-04 04:34:14 +00:00