Devang Patel [Thu, 7 Sep 2006 21:36:55 +0000 (21:36 +0000)]
Add linker into list of LINK_COMPONENTS.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30159
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 7 Sep 2006 21:30:15 +0000 (21:30 +0000)]
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
Chris Lattner [Thu, 7 Sep 2006 21:29:32 +0000 (21:29 +0000)]
new testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30157
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 7 Sep 2006 20:33:45 +0000 (20:33 +0000)]
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
Chris Lattner [Thu, 7 Sep 2006 20:32:01 +0000 (20:32 +0000)]
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
Devang Patel [Thu, 7 Sep 2006 20:21:58 +0000 (20:21 +0000)]
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
Devang Patel [Thu, 7 Sep 2006 20:20:56 +0000 (20:20 +0000)]
Use addPassesToEmitWholeFile() instead of addPassesToEmitFile()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30153
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 7 Sep 2006 19:03:48 +0000 (19:03 +0000)]
Consistency.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30152
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 7 Sep 2006 18:50:20 +0000 (18:50 +0000)]
Fix pasto that was breaking x86 tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30151
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 7 Sep 2006 18:21:07 +0000 (18:21 +0000)]
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
Chris Lattner [Thu, 7 Sep 2006 18:20:41 +0000 (18:20 +0000)]
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
Chris Lattner [Thu, 7 Sep 2006 17:43:59 +0000 (17:43 +0000)]
This fails
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30148
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 7 Sep 2006 17:34:27 +0000 (17:34 +0000)]
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
Jim Laskey [Thu, 7 Sep 2006 12:23:47 +0000 (12:23 +0000)]
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
Bill Wendling [Thu, 7 Sep 2006 08:39:35 +0000 (08:39 +0000)]
*** empty log message ***
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30145
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 7 Sep 2006 08:36:28 +0000 (08:36 +0000)]
Fixed my rotten Engrish grammar.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30144
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 7 Sep 2006 04:19:09 +0000 (04:19 +0000)]
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
Chris Lattner [Thu, 7 Sep 2006 01:59:34 +0000 (01:59 +0000)]
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
Chris Lattner [Thu, 7 Sep 2006 01:59:05 +0000 (01:59 +0000)]
New testcase for a switch lowering bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30141
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 7 Sep 2006 01:17:57 +0000 (01:17 +0000)]
Clean up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30140
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 6 Sep 2006 21:54:59 +0000 (21:54 +0000)]
testcase, ensure this never breaks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30137
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 6 Sep 2006 20:32:45 +0000 (20:32 +0000)]
Watch out for variable_ops instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30135
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 6 Sep 2006 20:24:14 +0000 (20:24 +0000)]
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
Devang Patel [Wed, 6 Sep 2006 20:22:55 +0000 (20:22 +0000)]
Document getTargetTriple().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30133
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 6 Sep 2006 20:16:28 +0000 (20:16 +0000)]
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
Jim Laskey [Wed, 6 Sep 2006 19:21:41 +0000 (19:21 +0000)]
Oops - forgot to update banner.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30131
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 6 Sep 2006 18:50:26 +0000 (18:50 +0000)]
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
Bill Wendling [Wed, 6 Sep 2006 18:42:41 +0000 (18:42 +0000)]
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
Jim Laskey [Wed, 6 Sep 2006 18:38:54 +0000 (18:38 +0000)]
Update project with new files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30128
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Laskey [Wed, 6 Sep 2006 18:35:33 +0000 (18:35 +0000)]
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
Jim Laskey [Wed, 6 Sep 2006 18:34:40 +0000 (18:34 +0000)]
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
Rafael Espindola [Wed, 6 Sep 2006 18:03:12 +0000 (18:03 +0000)]
add the orr instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30125
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 6 Sep 2006 00:45:52 +0000 (00:45 +0000)]
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
Devang Patel [Wed, 6 Sep 2006 00:28:22 +0000 (00:28 +0000)]
Extract target triplet from optimized module.
Untabify.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30123
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 5 Sep 2006 20:32:06 +0000 (20:32 +0000)]
Only call isUse/isDef on register operands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30122
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 5 Sep 2006 20:27:32 +0000 (20:27 +0000)]
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
Chris Lattner [Tue, 5 Sep 2006 20:27:06 +0000 (20:27 +0000)]
make this harder
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30120
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 5 Sep 2006 20:20:04 +0000 (20:20 +0000)]
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
Chris Lattner [Tue, 5 Sep 2006 20:19:27 +0000 (20:19 +0000)]
Only call isUse/isDef on register operands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30118
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 5 Sep 2006 20:02:51 +0000 (20:02 +0000)]
Don't call isDef on non-registers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30117
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 5 Sep 2006 18:56:02 +0000 (18:56 +0000)]
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
Chris Lattner [Tue, 5 Sep 2006 17:48:07 +0000 (17:48 +0000)]
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
Chris Lattner [Tue, 5 Sep 2006 17:39:15 +0000 (17:39 +0000)]
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
Evan Cheng [Tue, 5 Sep 2006 08:32:49 +0000 (08:32 +0000)]
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
Evan Cheng [Tue, 5 Sep 2006 05:59:25 +0000 (05:59 +0000)]
JIT encoding bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30112
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 5 Sep 2006 03:01:52 +0000 (03:01 +0000)]
Fix JIT encoding of two-addr instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30111
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 5 Sep 2006 02:52:35 +0000 (02:52 +0000)]
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
Chris Lattner [Tue, 5 Sep 2006 02:31:13 +0000 (02:31 +0000)]
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
Chris Lattner [Tue, 5 Sep 2006 02:12:02 +0000 (02:12 +0000)]
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
Andrew Lenharth [Tue, 5 Sep 2006 00:22:25 +0000 (00:22 +0000)]
jmp_bufs are this big on alpha.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30107
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 4 Sep 2006 23:35:52 +0000 (23:35 +0000)]
First draft of the "Live Interval Analysis" section. This is the "Live
Variable Analysis" pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30106
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 23:35:22 +0000 (23:35 +0000)]
ADd getImm/setImm methods
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30105
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 23:05:29 +0000 (23:05 +0000)]
Add some short-hand accessors
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30104
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 4 Sep 2006 19:05:01 +0000 (19:05 +0000)]
add support for returning 64bit values
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30103
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 18:48:41 +0000 (18:48 +0000)]
Fix some X86 JIT failures. This should really come from TargetJITInfo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30102
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 18:34:16 +0000 (18:34 +0000)]
lli uses LinkAllCodegenComponents, so it needs this. Thanks to
Rafael Esp?ndola for pointing this out
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30100
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 18:27:40 +0000 (18:27 +0000)]
Correct fix for a crasher on functions with live in values
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30099
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 18:20:15 +0000 (18:20 +0000)]
Hack around a regression I introduced yesterday
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30098
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Mon, 4 Sep 2006 07:44:11 +0000 (07:44 +0000)]
forgot this
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30097
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 06:39:52 +0000 (06:39 +0000)]
Fix a build problem
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30096
91177308-0d34-0410-b5e6-
96231b3b80d8
Duraid Madina [Mon, 4 Sep 2006 06:21:35 +0000 (06:21 +0000)]
add setJumpBufSize() and setJumpBufAlignment() to target-lowering.
Call these from your backend to enjoy setjmp/longjmp goodness, see
lib/Target/IA64/IA64ISelLowering.cpp for an example
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30095
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 06:12:14 +0000 (06:12 +0000)]
Update this to reflect llvm-config usage
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30094
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 06:07:12 +0000 (06:07 +0000)]
Remove some dead makefilery
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30093
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 06:04:03 +0000 (06:04 +0000)]
Use llvm-config to determine what to link in
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30092
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 06:01:43 +0000 (06:01 +0000)]
Use llvm-config instead of magic JIT thing to link in libs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30091
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 05:59:09 +0000 (05:59 +0000)]
Use LINK_COMPONENTS to specify *components* to link against instead of
using USED_LIBS to specify *libraries* to link against.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30090
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 05:35:23 +0000 (05:35 +0000)]
Allow things like --libs CBackend
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30089
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 05:24:16 +0000 (05:24 +0000)]
Switch to using llvm-config to build
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30088
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 05:23:20 +0000 (05:23 +0000)]
Bugfix for llvm-config support
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30087
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 04:50:10 +0000 (04:50 +0000)]
Make LINK_COMPONENTS interact well with make clean
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30086
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 04:47:49 +0000 (04:47 +0000)]
Switch to using llvm-config to select components to link in.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30085
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 04:47:21 +0000 (04:47 +0000)]
Add a new make option (LINK_COMPONENTS) which tools can use to specify what
libraries they need. This uses llvm-config to link the tools.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30084
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 04:27:07 +0000 (04:27 +0000)]
Document build order dependencies. Make sure that llvm-config is built before
tools.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30083
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 04:16:09 +0000 (04:16 +0000)]
new file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30082
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 04:14:57 +0000 (04:14 +0000)]
Completely rearchitect the interface between targets and the pass manager.
This pass:
1. Splits TargetMachine into TargetMachine (generic targets, can be implemented
any way, like the CBE) and LLVMTargetMachine (subclass of TM that is used by
things using libcodegen and other support).
2. Instead of having each target fully populate the passmgr for file or JIT
output, move all this to common code, and give targets hooks they can
implement.
3. Commonalize the target population stuff between file emission and JIT
emission.
4. All (native code) codegen stuff now happens in a FunctionPassManager, which
paves the way for "fast -O0" stuff in the CFE later, and now LLC could
lazily stream .bc files from disk to use less memory.
5. There are now many fewer #includes and the targets don't depend on the
scalar xforms or libanalysis anymore (but codegen does).
6. Changing common code generator pass ordering stuff no longer requires
touching all targets.
7. The JIT now has the option of "-fast" codegen or normal optimized codegen,
which is now orthogonal to the fact that JIT'ing is being done.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30081
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 04:08:58 +0000 (04:08 +0000)]
Add accessor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30080
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 04:07:39 +0000 (04:07 +0000)]
Add explicit doInitialization/doFinalization methods instead of making
the FunctionPassManager redo this for each function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30079
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 04:06:01 +0000 (04:06 +0000)]
remove #include
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30078
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 04:04:41 +0000 (04:04 +0000)]
rearrange targets to satisfy dependencies. Too bad we aren't using llvm-config.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30077
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 01:49:10 +0000 (01:49 +0000)]
If a cycle exists, don't succeed building the second time around.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30076
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 01:48:32 +0000 (01:48 +0000)]
remove message
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30075
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 4 Sep 2006 01:02:25 +0000 (01:02 +0000)]
Rearrange library linkage order.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30074
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 3 Sep 2006 18:44:26 +0000 (18:44 +0000)]
Eliminate target name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30071
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 3 Sep 2006 18:44:02 +0000 (18:44 +0000)]
Simplify target construction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30070
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 3 Sep 2006 18:38:30 +0000 (18:38 +0000)]
Remove use of target::getName()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30069
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 3 Sep 2006 18:37:12 +0000 (18:37 +0000)]
eliminate use of TM.getName()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30068
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sun, 3 Sep 2006 13:19:16 +0000 (13:19 +0000)]
add the SETULT condition code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30067
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 3 Sep 2006 08:07:11 +0000 (08:07 +0000)]
Avoid beating on the mi2i map when we know the answer already.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30066
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 3 Sep 2006 07:53:50 +0000 (07:53 +0000)]
minor speedup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30065
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 3 Sep 2006 07:15:37 +0000 (07:15 +0000)]
Fix Regression/CodeGen/Generic/2006-09-02-LocalAllocCrash.ll on X86.
Just because an alias of a register is available, it doesn't mean that we
can arbitrarily evict the register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30064
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 3 Sep 2006 07:14:47 +0000 (07:14 +0000)]
Testcase (distilled from crafty) that crashed the local RA on X86.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30063
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 3 Sep 2006 00:06:08 +0000 (00:06 +0000)]
When deleting a machine instruction, make sure to remove it from the
livevariables information. This fixes several regalloc=local failures on x86
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30062
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 3 Sep 2006 00:05:09 +0000 (00:05 +0000)]
Move two methods out of line, make them work when the record for a machine
instruction includes physregs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30061
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Sep 2006 23:09:24 +0000 (23:09 +0000)]
Count the time for a pass to ReleaseMemory against that pass. Not doing this
was under accounting for the time that livevariables cost
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30060
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Sat, 2 Sep 2006 22:46:58 +0000 (22:46 +0000)]
Make this testcase actually recursive. I accidentally committed the wrong copy last time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30059
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Sep 2006 22:27:29 +0000 (22:27 +0000)]
Fix a typo pointed out by Gabor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30058
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Sat, 2 Sep 2006 21:19:44 +0000 (21:19 +0000)]
Make ArgumentPromotion handle recursive functions that pass pointers in their recursive calls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30057
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sat, 2 Sep 2006 20:24:25 +0000 (20:24 +0000)]
add more condition codes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30056
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sat, 2 Sep 2006 19:40:38 +0000 (19:40 +0000)]
Improve handling of SelectInst.
Reorder operations to remove duplicated work.
Fix to leave floating-point types out of the optimization.
Add tests to predsimplify.ll for SwitchInst and SelectInst handling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30055
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 2 Sep 2006 17:37:30 +0000 (17:37 +0000)]
improve compat with certain versions of GCC (on cygwin?)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30054
91177308-0d34-0410-b5e6-
96231b3b80d8