Devang Patel
998051a221
Using addPassesToEmitWholeFile is not a good idea here.
...
Use FunctionPassManager to do the job.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30160 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-07 21:41:11 +00:00
Devang Patel
76ed7b1cf5
Add linker into list of LINK_COMPONENTS.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30159 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-07 21:36:55 +00:00
Chris Lattner
e99c623e75
Throttle back tail duplication to avoid creating really ugly sequences of code.
...
For Transforms/TailDup/if-tail-dup.ll, f.e., it produces:
_foo:
movl 8(%esp), %eax
movl 4(%esp), %ecx
testl $1, %ecx
je LBB1_2 #cond_next
LBB1_1: #cond_true
movl $1, (%eax)
LBB1_2: #cond_next
testl $2, %ecx
je LBB1_4 #cond_next10
LBB1_3: #cond_true6
movl $1, 4(%eax)
LBB1_4: #cond_next10
testl $4, %ecx
je LBB1_6 #cond_next18
LBB1_5: #cond_true14
movl $1, 8(%eax)
LBB1_6: #cond_next18
testl $8, %ecx
je LBB1_8 #return
LBB1_7: #cond_true22
movl $1, 12(%eax)
ret
LBB1_8: #return
ret
instead of:
_foo:
movl 4(%esp), %eax
testl $2, %eax
sete %cl
movl 8(%esp), %edx
testl $1, %eax
je LBB1_2 #cond_next
LBB1_1: #cond_true
movl $1, (%edx)
testb %cl, %cl
jne LBB1_4 #cond_next10
jmp LBB1_3 #cond_true6
LBB1_2: #cond_next
testb %cl, %cl
jne LBB1_4 #cond_next10
LBB1_3: #cond_true6
movl $1, 4(%edx)
testl $4, %eax
je LBB1_6 #cond_next18
jmp LBB1_5 #cond_true14
LBB1_4: #cond_next10
testl $4, %eax
je LBB1_6 #cond_next18
LBB1_5: #cond_true14
movl $1, 8(%edx)
testl $8, %eax
je LBB1_8 #return
jmp LBB1_7 #cond_true22
LBB1_6: #cond_next18
testl $8, %eax
je LBB1_8 #return
LBB1_7: #cond_true22
movl $1, 12(%edx)
ret
LBB1_8: #return
ret
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30158 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-07 21:30:15 +00:00
Chris Lattner
3d222b9ace
new testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30157 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-07 21:29:32 +00:00
Chris Lattner
ffc0b2663e
Eliminate X86ISD::TEST, using X86ISD::CMP instead. Match X86ISD::CMP patterns
...
using test, which provides nice simplifications like:
- movl %edi, %ecx
- andl $2, %ecx
- cmpl $0, %ecx
+ testl $2, %edi
je LBB1_11 #cond_next90
There are a couple of dagiselemitter deficiencies that this exposes, they will
be handled later.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30156 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-07 20:33:45 +00:00
Chris Lattner
b14ca605d7
Some notes on better load folding we could do
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30155 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-07 20:32:01 +00:00
Devang Patel
0300352103
Add lto into the list of PARALLEL_DIRS
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30154 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-07 20:21:58 +00:00
Devang Patel
bdaf3dc8c3
Use addPassesToEmitWholeFile() instead of addPassesToEmitFile()
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30153 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-07 20:20:56 +00:00
Evan Cheng
ec3bc39413
Consistency.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30152 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-07 19:03:48 +00:00
Evan Cheng
61c958e691
Fix pasto that was breaking x86 tests.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30151 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-07 18:50:20 +00:00
Chris Lattner
afd39f0cc4
Change DisambiguateGlobalSymbols to not rename asm globals, which breaks
...
bugpoint on leopard.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30150 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-07 18:21:07 +00:00
Chris Lattner
833eb68a1f
Add new option to leave asm names alone
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30149 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-07 18:20:41 +00:00
Chris Lattner
81fe06a112
This fails
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30148 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-07 17:43:59 +00:00
Chris Lattner
c40eb5e0d2
Warn people not to use GCC 4.1.1.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30147 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-07 17:34:27 +00:00
Jim Laskey
05a059d5d8
Make the x86 asm flavor part of the subtarget info.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30146 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-07 12:23:47 +00:00
Bill Wendling
41b3252e79
*** empty log message ***
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30145 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-07 08:39:35 +00:00
Bill Wendling
bd0d7b53a2
Fixed my rotten Engrish grammar.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30144 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-07 08:36:28 +00:00
Chris Lattner
9abd8af71e
cleanups and updates to the GSG, patch by B Scott Michel, thanks!
...
This is PR899
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30143 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-07 04:19:09 +00:00
Chris Lattner
d5e93c0795
Fix CodeGen/Generic/2006-09-06-SwitchLowering.ll, a bug where SDIsel inserted
...
too many phi operands when lowering a switch to branches in some cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30142 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-07 01:59:34 +00:00
Chris Lattner
5aa0307315
New testcase for a switch lowering bug.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30141 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-07 01:59:05 +00:00
Evan Cheng
95971c51b0
Clean up.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30140 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-07 01:17:57 +00:00
Chris Lattner
07240e04ab
testcase, ensure this never breaks.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30137 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-06 21:54:59 +00:00
Evan Cheng
48ff2fb129
Watch out for variable_ops instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30135 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-06 20:32:45 +00:00
Evan Cheng
3530bafe00
Variable ops instructions may ignore the last few operands for code emission.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30134 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-06 20:24:14 +00:00
Devang Patel
c1e6e138e3
Document getTargetTriple().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30133 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-06 20:22:55 +00:00
Devang Patel
a291a68161
Add getTargetTriple() that linker can use to query target architecture.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30132 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-06 20:16:28 +00:00
Jim Laskey
7c95ad4fb0
Oops - forgot to update banner.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30131 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-06 19:21:41 +00:00
Devang Patel
0701a2f70d
Keep track of all modules crated using a name to module map.
...
Add private member function getMoudle().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30130 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-06 18:50:26 +00:00
Bill Wendling
3fc488d0ce
Cleaned up some of the grammar in the Live Intervals section. Removed the
...
huge honking FIXME comment. I'll address the "Live Intervals Analysis"
section soon.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30129 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-06 18:42:41 +00:00
Jim Laskey
10aaba8eb0
Update project with new files.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30128 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-06 18:38:54 +00:00
Jim Laskey
ec0d9fe2b2
Separate target specifc asm properties from asm printers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30127 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-06 18:35:33 +00:00
Jim Laskey
563321a258
Separate target specific asm properties from the asm printers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30126 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-06 18:34:40 +00:00
Rafael Espindola
b52b54d4af
add the orr instruction
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30125 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-06 18:03:12 +00:00
Devang Patel
ed872865d0
Instead of demangling symbol name by hand, use original name, which was
...
used to mangle symbol name, directly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30124 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-06 00:45:52 +00:00
Devang Patel
2681023488
Extract target triplet from optimized module.
...
Untabify.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30123 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-06 00:28:22 +00:00
Evan Cheng
5d8062bcee
Only call isUse/isDef on register operands
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30122 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-05 20:32:06 +00:00
Chris Lattner
6cdb1ea610
Bugfix to work with the two-addr changes that have been made in the tree recently
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30121 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-05 20:27:32 +00:00
Chris Lattner
c39d194499
make this harder
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30120 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-05 20:27:06 +00:00
Evan Cheng
f89e2a9416
IsDef can only be accessed / set if operand is a register.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30119 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-05 20:20:04 +00:00
Chris Lattner
d8f44e07b8
Only call isUse/isDef on register operands
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30118 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-05 20:19:27 +00:00
Chris Lattner
67942f5dc3
Don't call isDef on non-registers
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30117 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-05 20:02:51 +00:00
Evan Cheng
04957ac67c
Initialize IsDef of all non-register MachineOperand to false.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30116 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-05 18:56:02 +00:00
Chris Lattner
97d2dbd100
Fix Duraid's changes to work when TLI is null. This fixes the failing
...
lowerinvoke regtests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30115 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-05 17:48:07 +00:00
Chris Lattner
7acf5f39fe
Change the default to 0, which means 'default'.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30114 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-05 17:39:15 +00:00
Evan Cheng
2f5993bcf1
Fix a few dejagnu failures. e.g. fast-cc-merge-stack-adj.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30113 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-05 08:32:49 +00:00
Evan Cheng
23b3122c44
JIT encoding bug.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30112 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-05 05:59:25 +00:00
Chris Lattner
8aa01f4b43
Fix JIT encoding of two-addr instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30111 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-05 03:01:52 +00:00
Chris Lattner
0e42d81a83
Update the X86 JIT to make it work with the new two-addr changes. This also
...
adds assertions that check to make sure every operand gets emitted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30110 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-05 02:52:35 +00:00
Chris Lattner
09e460662a
Completely eliminate def&use operands. Now a register operand is EITHER a
...
def operand or a use operand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30109 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-05 02:31:13 +00:00
Chris Lattner
2926869b4a
Fix a long-standing wart in the code generator: two-address instruction lowering
...
actually *removes* one of the operands, instead of just assigning both operands
the same register. This make reasoning about instructions unnecessarily complex,
because you need to know if you are before or after register allocation to match
up operand #'s with the target description file.
Changing this also gets rid of a bunch of hacky code in various places.
This patch also includes changes to fold loads into cmp/test instructions in
the X86 backend, along with a significant simplification to the X86 spill
folding code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30108 91177308-0d34-0410-b5e6-96231b3b80d8
2006-09-05 02:12:02 +00:00