Alkis Evlogimenos
fc01aac4d8
Add coalescing to register allocator. A hint is added to each interval
...
which denotes the register we would like to be assigned to (virtual or
physical). In register allocation, if this hint exists and we can map
it to a physical register (it is either a physical register or it is a
virtual register that already got assigned to a physical one) we use
that register if it is available instead of a random one in the free
pool.
llvm-svn: 10634
2003-12-28 17:58:18 +00:00
Alkis Evlogimenos
24b3159dfc
Add TargetInstrInfo::isMoveInstr() to support coalescing in register
...
allocation.
llvm-svn: 10633
2003-12-28 17:35:08 +00:00
Chris Lattner
c487970d6b
Whoops, don't try to lower non intrinsic calls
...
llvm-svn: 10632
2003-12-28 09:53:23 +00:00
Chris Lattner
2a1a75c9aa
Pass extra arguments around n stuph
...
llvm-svn: 10631
2003-12-28 09:51:04 +00:00
Chris Lattner
869549f54b
We may now pass IntrinsicLowering implementations into these methods
...
llvm-svn: 10630
2003-12-28 09:48:17 +00:00
Chris Lattner
1791047661
implement support for the intrinsic lowering functionality
...
llvm-svn: 10629
2003-12-28 09:47:19 +00:00
Chris Lattner
58cbeaed27
Eliminate some code that is not needed now that we have the intrinsic lowering pass
...
llvm-svn: 10628
2003-12-28 09:46:33 +00:00
Chris Lattner
44f1ab7c2f
Pass around IntrinsicLowering instances as appropriate.
...
Reimplement the Interpreters implementation of va_* to be more direct.
llvm-svn: 10627
2003-12-28 09:44:37 +00:00
Chris Lattner
66fb20d2d3
Use the intrinsic lowering functionality
...
llvm-svn: 10626
2003-12-28 09:43:35 +00:00
Chris Lattner
215d4146fe
add argument
...
llvm-svn: 10625
2003-12-28 09:42:49 +00:00
Chris Lattner
cd11b985ba
ABC's must have virtual dtors! Shame on me!
...
llvm-svn: 10624
2003-12-28 08:55:50 +00:00
Chris Lattner
068ac4236d
Move into the VMCore library
...
llvm-svn: 10623
2003-12-28 08:30:20 +00:00
Chris Lattner
00a54b7c00
Move header into top-level llvm dir
...
llvm-svn: 10622
2003-12-28 08:30:07 +00:00
Chris Lattner
57ff7c242c
Implement the default implementation of the intrinsic lowering class
...
llvm-svn: 10621
2003-12-28 08:19:41 +00:00
Chris Lattner
8bc92e92ee
Add new interface that allows removal of some code from the code generators,
...
provides for future extensibility, might help the LLVA project avoid having to
hack their own LLI, and provides support required for the experimental Venus
project.
llvm-svn: 10620
2003-12-28 08:19:13 +00:00
Chris Lattner
a8c942c188
finegrainify namespacification
...
minor cleanups
llvm-svn: 10619
2003-12-28 07:59:53 +00:00
Chris Lattner
428c27dfbf
Merging constants can cause further room for improvement. Iterate until
...
we converge
llvm-svn: 10618
2003-12-28 07:19:08 +00:00
Chris Lattner
8caf13292a
Add a note
...
llvm-svn: 10617
2003-12-28 04:03:49 +00:00
Chris Lattner
3593bb9dd6
Factor code out of LLI
...
llvm-svn: 10616
2003-12-26 06:50:30 +00:00
Chris Lattner
7e4c7347ad
New method
...
llvm-svn: 10615
2003-12-26 06:50:15 +00:00
Chris Lattner
66c9cb837b
Factor out code to ExecutionEngine
...
llvm-svn: 10614
2003-12-26 06:49:53 +00:00
Chris Lattner
e0269dd42a
Simplify code
...
llvm-svn: 10613
2003-12-26 06:36:20 +00:00
Chris Lattner
5ad07a3fbf
minor cleanups
...
llvm-svn: 10612
2003-12-26 06:16:00 +00:00
Chris Lattner
4c0d6c8d46
* eliminate the -f argument to lli, as it was silly and never useful anyway
...
* Inline callMain function
* Remove hack from the ExecutionEngines where the 'run' method would automatically
run atExit functions. Fixing this requires explicitly calling exit if main returns
llvm-svn: 10611
2003-12-26 06:14:47 +00:00
Chris Lattner
ddcbddf9e9
No longer run atExit functions from run()
...
rename run to runFunction
Genericize the runFunction code a little bit, though it still stinks
llvm-svn: 10610
2003-12-26 06:13:47 +00:00
Chris Lattner
d7d8336d73
No longer run atExit functions from run()
...
rename run to runFunction
llvm-svn: 10609
2003-12-26 06:13:05 +00:00
Chris Lattner
4f8b788c30
Rename 'run' to 'runFunction' to emphasize that it is usable to run any
...
function in a module, not just main
llvm-svn: 10608
2003-12-26 06:12:25 +00:00
Chris Lattner
d530851235
update comment
...
llvm-svn: 10607
2003-12-26 05:07:35 +00:00
Alkis Evlogimenos
597e2f3501
Improve debugging output when choosing a register to spill.
...
llvm-svn: 10604
2003-12-24 18:53:31 +00:00
Alkis Evlogimenos
2c947a4fa0
Do a separate pass to compute spill weights because doing it inline
...
with live intervals was missing registers that were used before they
were defined (in the arbitrary order live intervals numbers
instructions).
llvm-svn: 10603
2003-12-24 15:44:53 +00:00
Chris Lattner
22b4f05a21
boog fixed
...
llvm-svn: 10602
2003-12-23 23:50:31 +00:00
Chris Lattner
e462353594
Hrm is a really nasty ommission. The lack of this destructor was causing abstract
...
types to never be deleted, manifesting itself as many OpaqueType objects being
leaked. Whoops.
llvm-svn: 10601
2003-12-23 23:25:21 +00:00
John Criswell
d4064195b7
Corrected typo.
...
llvm-svn: 10600
2003-12-23 22:22:10 +00:00
Chris Lattner
c09a6f0621
Right, fix the problem with invoke instructions, not just call instructions
...
llvm-svn: 10599
2003-12-23 22:18:36 +00:00
Chris Lattner
c1dd02538a
Do not delete the type holder until after the call instruction has been
...
constructed!
llvm-svn: 10598
2003-12-23 20:39:17 +00:00
John Criswell
207cf0a20d
Modified the logic so that library objects with main() are only linked in
...
if the program currently has main undefined.
llvm-svn: 10597
2003-12-23 20:27:14 +00:00
Chris Lattner
defd9ccd73
Minor cleanups, plug a minor memory leak
...
llvm-svn: 10596
2003-12-23 20:05:15 +00:00
Alkis Evlogimenos
ca57dd1089
Change the way free regusters are computed and perform better
...
allocation in the presence of preallocated intervals.
llvm-svn: 10595
2003-12-23 18:00:33 +00:00
John Criswell
8f95f1d2ca
Modified the linker so that it always links in an object from an archive
...
that defines the symbol "main." This is a hack that ensures that programs
that place their main function in a library and then link it in
(i.e. Apache 2.x) get their main function linked in.
There is probably a more correct way to do this, but this works for now.
llvm-svn: 10594
2003-12-23 17:37:06 +00:00
Chris Lattner
148767d3bd
Rename method
...
llvm-svn: 10593
2003-12-23 09:41:45 +00:00
Chris Lattner
099e1f16b8
rename ClassifyExpression -> ClassifyExpr
...
llvm-svn: 10592
2003-12-23 08:04:08 +00:00
Chris Lattner
6ecac445aa
Rename ClassifyExpression -> ClassifyExpr
...
llvm-svn: 10591
2003-12-23 08:03:40 +00:00
Chris Lattner
fefdb67375
More minor non-functional changes. This now computes the exit condition, though
...
it doesn't do anything with it.
llvm-svn: 10590
2003-12-23 07:47:09 +00:00
Chris Lattner
77fe880dcf
Remove extraneous #include
...
finegrainify namespacification
llvm-svn: 10589
2003-12-23 07:43:38 +00:00
Chris Lattner
5780f54596
Finegrainify namespacification
...
llvm-svn: 10588
2003-12-23 06:44:41 +00:00
Chris Lattner
720166cb19
bug fixed
...
llvm-svn: 10587
2003-12-22 23:56:37 +00:00
Chris Lattner
30fa61ca6c
Fix memory corruption bug PR193
...
llvm-svn: 10586
2003-12-22 23:49:36 +00:00
John Criswell
8740fbd052
Reverted back to revision 1.11. The previous fix doesn't really fix
...
anything; it just causes the bug to go dormant.
llvm-svn: 10585
2003-12-22 16:22:49 +00:00
Alkis Evlogimenos
10de430568
Fix crash when compiling twolf.
...
llvm-svn: 10584
2003-12-22 13:54:29 +00:00
Chris Lattner
8ec8b9c28a
Don't mind me, I'm just refactoring away. This patch makes room for LFTR, but
...
contains no functionality changes.
llvm-svn: 10583
2003-12-22 09:53:29 +00:00