Chris Lattner
9a4a92e829
Make LINK_COMPONENTS interact well with make clean
...
llvm-svn: 30086
2006-09-04 04:50:10 +00:00
Chris Lattner
36bf108d71
Switch to using llvm-config to select components to link in.
...
llvm-svn: 30085
2006-09-04 04:47:49 +00:00
Chris Lattner
f9ac33d8ed
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.
llvm-svn: 30084
2006-09-04 04:47:21 +00:00
Chris Lattner
31b4aa5b8d
Document build order dependencies. Make sure that llvm-config is built before
...
tools.
llvm-svn: 30083
2006-09-04 04:27:07 +00:00
Chris Lattner
a916db12e4
new file
...
llvm-svn: 30082
2006-09-04 04:16:09 +00:00
Chris Lattner
12e97307a1
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.
llvm-svn: 30081
2006-09-04 04:14:57 +00:00
Chris Lattner
e8ce162969
Add accessor
...
llvm-svn: 30080
2006-09-04 04:08:58 +00:00
Chris Lattner
2f77922d30
Add explicit doInitialization/doFinalization methods instead of making
...
the FunctionPassManager redo this for each function.
llvm-svn: 30079
2006-09-04 04:07:39 +00:00
Chris Lattner
2f93c0fd33
remove #include
...
llvm-svn: 30078
2006-09-04 04:06:01 +00:00
Chris Lattner
d140393a49
rearrange targets to satisfy dependencies. Too bad we aren't using llvm-config.
...
llvm-svn: 30077
2006-09-04 04:04:41 +00:00
Chris Lattner
c754b0a37f
If a cycle exists, don't succeed building the second time around.
...
llvm-svn: 30076
2006-09-04 01:49:10 +00:00
Chris Lattner
dcd72422fd
remove message
...
llvm-svn: 30075
2006-09-04 01:48:32 +00:00
Chris Lattner
de54ffc225
Rearrange library linkage order.
...
llvm-svn: 30074
2006-09-04 01:02:25 +00:00
Chris Lattner
9183d57c37
Eliminate target name.
...
llvm-svn: 30071
2006-09-03 18:44:26 +00:00
Chris Lattner
0fc4541c67
Simplify target construction.
...
llvm-svn: 30070
2006-09-03 18:44:02 +00:00
Chris Lattner
2ecd34e869
Remove use of target::getName()
...
llvm-svn: 30069
2006-09-03 18:38:30 +00:00
Chris Lattner
ad36544457
eliminate use of TM.getName()
...
llvm-svn: 30068
2006-09-03 18:37:12 +00:00
Rafael Espindola
5328ba96e1
add the SETULT condition code
...
llvm-svn: 30067
2006-09-03 13:19:16 +00:00
Chris Lattner
8584e940b8
Avoid beating on the mi2i map when we know the answer already.
...
llvm-svn: 30066
2006-09-03 08:07:11 +00:00
Chris Lattner
774785a79d
minor speedup
...
llvm-svn: 30065
2006-09-03 07:53:50 +00:00
Chris Lattner
7cc20d418b
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.
llvm-svn: 30064
2006-09-03 07:15:37 +00:00
Chris Lattner
798e9658d7
Testcase (distilled from crafty) that crashed the local RA on X86.
...
llvm-svn: 30063
2006-09-03 07:14:47 +00:00
Chris Lattner
bd79458b0e
When deleting a machine instruction, make sure to remove it from the
...
livevariables information. This fixes several regalloc=local failures on x86
llvm-svn: 30062
2006-09-03 00:06:08 +00:00
Chris Lattner
f8f724a2b1
Move two methods out of line, make them work when the record for a machine
...
instruction includes physregs.
llvm-svn: 30061
2006-09-03 00:05:09 +00:00
Chris Lattner
5e02f4e141
Count the time for a pass to ReleaseMemory against that pass. Not doing this
...
was under accounting for the time that livevariables cost
llvm-svn: 30060
2006-09-02 23:09:24 +00:00
Owen Anderson
bcb301c4a2
Make this testcase actually recursive. I accidentally committed the wrong copy last time.
...
llvm-svn: 30059
2006-09-02 22:46:58 +00:00
Chris Lattner
5aca72aecc
Fix a typo pointed out by Gabor
...
llvm-svn: 30058
2006-09-02 22:27:29 +00:00
Owen Anderson
19b80e76df
Make ArgumentPromotion handle recursive functions that pass pointers in their recursive calls.
...
llvm-svn: 30057
2006-09-02 21:19:44 +00:00
Rafael Espindola
c585b6919b
add more condition codes
...
llvm-svn: 30056
2006-09-02 20:24:25 +00:00
Nick Lewycky
8e5599354a
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.
llvm-svn: 30055
2006-09-02 19:40:38 +00:00
Chris Lattner
f2ce949ae9
improve compat with certain versions of GCC (on cygwin?)
...
llvm-svn: 30054
2006-09-02 17:37:30 +00:00
Chris Lattner
bc1a280eae
add a prototype
...
llvm-svn: 30051
2006-09-02 05:37:53 +00:00
Chris Lattner
75742e532a
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
llvm-svn: 30050
2006-09-02 05:32:53 +00:00
Chris Lattner
5a56d30906
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.
llvm-svn: 30049
2006-09-02 05:26:59 +00:00
Chris Lattner
7907ad8472
new method
...
llvm-svn: 30048
2006-09-02 05:26:01 +00:00
Evan Cheng
1f15185cbc
Another "cyclic DAG" test case.
...
llvm-svn: 30043
2006-09-01 23:50:17 +00:00
Evan Cheng
2c4e0f120f
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.
llvm-svn: 30040
2006-09-01 22:52:28 +00:00
Chris Lattner
bad9d2ee49
Use a couple of multiclass patterns to factor some integer ops.
...
llvm-svn: 30039
2006-09-01 22:28:02 +00:00
Chris Lattner
38e6d1d5af
remove a bunch of comments
...
llvm-svn: 30038
2006-09-01 22:16:22 +00:00
Chris Lattner
70fd01a1b8
Make sure to clear CurDefmPrefix = 0, otherwise stuff after a defm won't
...
parse right. This fixes TableGen/MultiClass.td
llvm-svn: 30037
2006-09-01 22:07:27 +00:00
Chris Lattner
315f02a6e5
Make this harder
...
llvm-svn: 30036
2006-09-01 22:07:00 +00:00
Chris Lattner
28368120a5
Fix a typo Jim pointed out, thanks!
...
llvm-svn: 30035
2006-09-01 22:01:36 +00:00
Chris Lattner
c05fac8b83
fix an assertion with multidefs. Def inside of multiclasses don't need to
...
be complete.
llvm-svn: 30034
2006-09-01 21:59:03 +00:00
Bill Wendling
d81797beca
Fixed formatting problem.
...
llvm-svn: 30033
2006-09-01 21:47:10 +00:00
Chris Lattner
b5b0c1ae65
document !strconcat
...
llvm-svn: 30032
2006-09-01 21:46:01 +00:00
Bill Wendling
00c5aecb74
Added documentation Fernando Magno Quintao Pereira wrote for the register
...
allocator. (First draft)
llvm-svn: 30031
2006-09-01 21:46:00 +00:00
Chris Lattner
f01a85bdf2
Document multiclasses and defm's
...
llvm-svn: 30030
2006-09-01 21:44:18 +00:00
Chris Lattner
aec1af2239
regenerate
...
llvm-svn: 30029
2006-09-01 21:14:42 +00:00
Chris Lattner
4b975e8eea
simple multiclass example
...
llvm-svn: 30028
2006-09-01 21:14:37 +00:00
Chris Lattner
66b7235877
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.
llvm-svn: 30027
2006-09-01 21:13:49 +00:00