oota-llvm.git
18 years agoOnly call isUse/isDef on register operands
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

18 years agoDon't call isDef on non-registers
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

18 years agoInitialize IsDef of all non-register MachineOperand to false.
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

18 years agoFix Duraid's changes to work when TLI is null. This fixes the failing
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

18 years agoChange the default to 0, which means 'default'.
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

18 years agoFix a few dejagnu failures. e.g. fast-cc-merge-stack-adj.ll
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

18 years agoJIT encoding bug.
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

18 years agoFix JIT encoding of two-addr instructions.
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

18 years agoUpdate the X86 JIT to make it work with the new two-addr changes. This also
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

18 years agoCompletely eliminate def&use operands. Now a register operand is EITHER a
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

18 years agoFix a long-standing wart in the code generator: two-address instruction lowering
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

18 years agojmp_bufs are this big on alpha.
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

18 years agoFirst draft of the "Live Interval Analysis" section. This is the "Live
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

18 years agoADd getImm/setImm methods
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

18 years agoAdd some short-hand accessors
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

18 years agoadd support for returning 64bit values
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

18 years agoFix some X86 JIT failures. This should really come from TargetJITInfo.
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

18 years agolli uses LinkAllCodegenComponents, so it needs this. Thanks to
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

18 years agoCorrect fix for a crasher on functions with live in values
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

18 years agoHack around a regression I introduced yesterday
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

18 years agoforgot this
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

18 years agoFix a build problem
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

18 years agoadd setJumpBufSize() and setJumpBufAlignment() to target-lowering.
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

18 years agoUpdate this to reflect llvm-config usage
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

18 years agoRemove some dead makefilery
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

18 years agoUse llvm-config to determine what to link in
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

18 years agoUse llvm-config instead of magic JIT thing to link in libs
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

18 years agoUse LINK_COMPONENTS to specify *components* to link against instead of
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

18 years agoAllow things like --libs CBackend
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

18 years agoSwitch to using llvm-config to build
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

18 years agoBugfix for llvm-config support
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

18 years agoMake LINK_COMPONENTS interact well with make clean
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

18 years agoSwitch to using llvm-config to select components to link in.
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

18 years agoAdd a new make option (LINK_COMPONENTS) which tools can use to specify what
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

18 years agoDocument build order dependencies. Make sure that llvm-config is built before
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

18 years agonew file
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

18 years agoCompletely rearchitect the interface between targets and the pass manager.
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

18 years agoAdd accessor
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

18 years agoAdd explicit doInitialization/doFinalization methods instead of making
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

18 years agoremove #include
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

18 years agorearrange targets to satisfy dependencies. Too bad we aren't using llvm-config.
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

18 years agoIf a cycle exists, don't succeed building the second time around.
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

18 years agoremove message
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

18 years agoRearrange library linkage order.
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

18 years agoEliminate target name.
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

18 years agoSimplify target construction.
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

18 years agoRemove use of target::getName()
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

18 years agoeliminate use of TM.getName()
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

18 years agoadd the SETULT condition code
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

18 years agoAvoid beating on the mi2i map when we know the answer already.
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

18 years agominor speedup
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

18 years agoFix Regression/CodeGen/Generic/2006-09-02-LocalAllocCrash.ll on X86.
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

18 years agoTestcase (distilled from crafty) that crashed the local RA on X86.
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

18 years agoWhen deleting a machine instruction, make sure to remove it from the
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

18 years agoMove two methods out of line, make them work when the record for a machine
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

18 years agoCount the time for a pass to ReleaseMemory against that pass. Not doing this
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

18 years agoMake this testcase actually recursive. I accidentally committed the wrong copy last...
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

18 years agoFix a typo pointed out by Gabor
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

18 years agoMake ArgumentPromotion handle recursive functions that pass pointers in their recursi...
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

18 years agoadd more condition codes
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

18 years agoImprove handling of SelectInst.
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

18 years agoimprove compat with certain versions of GCC (on cygwin?)
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

18 years agoadd a prototype
Chris Lattner [Sat, 2 Sep 2006 05:37:53 +0000 (05:37 +0000)]
add a prototype

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30051 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoIteration is required for some cases, even if they don't occur in crafty.
Chris Lattner [Sat, 2 Sep 2006 05:32:53 +0000 (05:32 +0000)]
Iteration is required for some cases, even if they don't occur in crafty.
Restore it, which re-fixes X86/2006-08-21-ExtraMovInst.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30050 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoWhen joining two intervals where the RHS is really simple, use a light-weight
Chris Lattner [Sat, 2 Sep 2006 05:26:59 +0000 (05:26 +0000)]
When joining two intervals where the RHS is really simple, use a light-weight
method for joining the live ranges instead of the fully-general one.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30049 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agonew method
Chris Lattner [Sat, 2 Sep 2006 05:26:01 +0000 (05:26 +0000)]
new method

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30048 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAnother "cyclic DAG" test case.
Evan Cheng [Fri, 1 Sep 2006 23:50:17 +0000 (23:50 +0000)]
Another "cyclic DAG" test case.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30043 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoOops. Bad typo. Without the check of N1.hasOneUse() bad things can happen.
Evan Cheng [Fri, 1 Sep 2006 22:52:28 +0000 (22:52 +0000)]
Oops. Bad typo. Without the check of N1.hasOneUse() bad things can happen.
Suppose the TokenFactor can reach the Op:

       [Load chain]
           ^
           |
         [Load]
         ^    ^
         |    |
        /      \-
       /         |
      /          [Op]
     /          ^ ^
     |        ..  |
     |       /    |
   [TokenFactor]  |
       ^          |
       |          |
        \        /
         \      /
         [Store]

If we move the Load below the TokenFactor, we would have created a cycle in
the DAG.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30040 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoUse a couple of multiclass patterns to factor some integer ops.
Chris Lattner [Fri, 1 Sep 2006 22:28:02 +0000 (22:28 +0000)]
Use a couple of multiclass patterns to factor some integer ops.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30039 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoremove a bunch of comments
Chris Lattner [Fri, 1 Sep 2006 22:16:22 +0000 (22:16 +0000)]
remove a bunch of comments

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30038 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoMake sure to clear CurDefmPrefix = 0, otherwise stuff after a defm won't
Chris Lattner [Fri, 1 Sep 2006 22:07:27 +0000 (22:07 +0000)]
Make sure to clear CurDefmPrefix = 0, otherwise stuff after a defm won't
parse right.  This fixes TableGen/MultiClass.td

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30037 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoMake this harder
Chris Lattner [Fri, 1 Sep 2006 22:07:00 +0000 (22:07 +0000)]
Make this harder

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30036 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFix a typo Jim pointed out, thanks!
Chris Lattner [Fri, 1 Sep 2006 22:01:36 +0000 (22:01 +0000)]
Fix a typo Jim pointed out, thanks!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30035 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agofix an assertion with multidefs. Def inside of multiclasses don't need to
Chris Lattner [Fri, 1 Sep 2006 21:59:03 +0000 (21:59 +0000)]
fix an assertion with multidefs.  Def inside of multiclasses don't need to
be complete.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30034 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFixed formatting problem.
Bill Wendling [Fri, 1 Sep 2006 21:47:10 +0000 (21:47 +0000)]
Fixed formatting problem.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30033 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agodocument !strconcat
Chris Lattner [Fri, 1 Sep 2006 21:46:01 +0000 (21:46 +0000)]
document !strconcat

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30032 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdded documentation Fernando Magno Quintao Pereira wrote for the register
Bill Wendling [Fri, 1 Sep 2006 21:46:00 +0000 (21:46 +0000)]
Added documentation Fernando Magno Quintao Pereira wrote for the register
allocator. (First draft)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30031 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoDocument multiclasses and defm's
Chris Lattner [Fri, 1 Sep 2006 21:44:18 +0000 (21:44 +0000)]
Document multiclasses and defm's

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30030 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoregenerate
Chris Lattner [Fri, 1 Sep 2006 21:14:42 +0000 (21:14 +0000)]
regenerate

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30029 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agosimple multiclass example
Chris Lattner [Fri, 1 Sep 2006 21:14:37 +0000 (21:14 +0000)]
simple multiclass example

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30028 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd often-requested support for defining "multiclasses" which can be instantiated.
Chris Lattner [Fri, 1 Sep 2006 21:13:49 +0000 (21:13 +0000)]
Add often-requested support for defining "multiclasses" which can be instantiated.

This allows you to define multiple definitions with one line, encouraging
more .td file factoring.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30027 91177308-0d34-0410-b5e6-96231b3b80d8

18 years ago- Fixed broken Win32 build
Anton Korobeynikov [Fri, 1 Sep 2006 20:35:17 +0000 (20:35 +0000)]
- Fixed broken Win32 build
- Removed warning about clobbered parameter in Bytecode/Reader

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30026 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoRemove extra spaces.
Evan Cheng [Fri, 1 Sep 2006 18:45:22 +0000 (18:45 +0000)]
Remove extra spaces.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30025 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoLast check-in was a mistake...
Evan Cheng [Fri, 1 Sep 2006 18:42:59 +0000 (18:42 +0000)]
Last check-in was a mistake...

I've been told apple gcc version number is not guaranteed to increase
monotonically. Change the preprocess condition to make it less risky.

The configuration change is done during the middle 10.4 life cycle so we have
to check __APPLE_CC. For future OS X release, we should be able to assume
-fenable-cxa-atexit is the default.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30024 91177308-0d34-0410-b5e6-96231b3b80d8

18 years ago*** empty log message ***
Evan Cheng [Fri, 1 Sep 2006 18:40:46 +0000 (18:40 +0000)]
*** empty log message ***

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30023 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAllow legalizer to expand ISD::MUL using only MULHS in the rare case that is
Evan Cheng [Fri, 1 Sep 2006 18:17:58 +0000 (18:17 +0000)]
Allow legalizer to expand ISD::MUL using only MULHS in the rare case that is
possible and the target only supports MULHS.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30022 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoCorrections.
Jim Laskey [Fri, 1 Sep 2006 12:55:05 +0000 (12:55 +0000)]
Corrections.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30021 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoBetter comments.
Evan Cheng [Fri, 1 Sep 2006 07:09:56 +0000 (07:09 +0000)]
Better comments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30017 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoYikes. This requires checking apple gcc version.
Evan Cheng [Fri, 1 Sep 2006 07:00:46 +0000 (07:00 +0000)]
Yikes. This requires checking apple gcc version.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30016 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoPull some code out of a hot recursive function because the common case doesn't
Chris Lattner [Fri, 1 Sep 2006 07:00:23 +0000 (07:00 +0000)]
Pull some code out of a hot recursive function because the common case doesn't
need recursion.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30015 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoremove some particularly expensive assertions
Chris Lattner [Fri, 1 Sep 2006 06:57:35 +0000 (06:57 +0000)]
remove some particularly expensive assertions

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30014 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoReserve space in the ValueNumberInfo vector. This speeds up live interval
Chris Lattner [Fri, 1 Sep 2006 06:10:18 +0000 (06:10 +0000)]
Reserve space in the ValueNumberInfo vector.  This speeds up live interval
analysis 16% on crafty.

Wrap long lines.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30012 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoadd a simple reserve method.
Chris Lattner [Fri, 1 Sep 2006 06:08:16 +0000 (06:08 +0000)]
add a simple reserve method.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30011 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoIterative coallescing doesn't buy us anything (we get identical results on
Chris Lattner [Fri, 1 Sep 2006 04:02:42 +0000 (04:02 +0000)]
Iterative coallescing doesn't buy us anything (we get identical results on
crafty with and without it).  Removing it speeds up live intervals 6%.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30010 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoDon't confuse canonicalize and lookup. Fixes predsimplify.reg4.ll. Also
Nick Lewycky [Fri, 1 Sep 2006 03:26:35 +0000 (03:26 +0000)]
Don't confuse canonicalize and lookup. Fixes predsimplify.reg4.ll. Also
corrects missing optimization opportunity removing cases from a switch.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30009 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoDAG combiner fix for rotates. Previously the outer-most condition checks
Evan Cheng [Thu, 31 Aug 2006 07:41:12 +0000 (07:41 +0000)]
DAG combiner fix for rotates. Previously the outer-most condition checks
for ROTL availability. This prevents it from forming ROTR for targets that
has ROTR only.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29997 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd a special case that speeds up coallescing a bit, but not enough.
Chris Lattner [Thu, 31 Aug 2006 06:48:26 +0000 (06:48 +0000)]
Add a special case that speeds up coallescing a bit, but not enough.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29996 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoDelete copies as they are coallesced instead of waiting until the end.
Chris Lattner [Thu, 31 Aug 2006 05:58:59 +0000 (05:58 +0000)]
Delete copies as they are coallesced instead of waiting until the end.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29995 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoavoid calling the virtual isMoveInstr method endlessly by caching its results.
Chris Lattner [Thu, 31 Aug 2006 05:54:43 +0000 (05:54 +0000)]
avoid calling the virtual isMoveInstr method endlessly by caching its results.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29994 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd a note about C++ -> C with libstdc++
Chris Lattner [Thu, 31 Aug 2006 04:26:31 +0000 (04:26 +0000)]
Add a note about C++ -> C with libstdc++

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29993 91177308-0d34-0410-b5e6-96231b3b80d8