Alkis Evlogimenos
0865239405
Duh, forgot to close the parenthesis.
...
llvm-svn: 11843
2004-02-25 22:07:14 +00:00
Alkis Evlogimenos
5b45bf1940
Add assert to isPhysicalRegister and isVirtualRegister to fail when
...
passed the special 'register' 0.
llvm-svn: 11842
2004-02-25 22:04:28 +00:00
Alkis Evlogimenos
f1516015af
Add DenseMap template and actually use it for for mapping virtual regs
...
to objects.
llvm-svn: 11840
2004-02-25 21:55:45 +00:00
Chris Lattner
64cbbad38e
Add prototype
...
llvm-svn: 11837
2004-02-25 21:34:51 +00:00
Brian Gaeke
c6de948cd1
Great renaming part II: Sparc --> SparcV9 (also includes command-line options and Makefiles)
...
llvm-svn: 11827
2004-02-25 19:08:12 +00:00
Brian Gaeke
5d29845f19
Cygwin defines log2 as a macro. Undef it here IFF it has already been defined,
...
so that we always get the inline function instead. Remember, kids, like it says
in the GCC manual, "An Inline Function is As Fast As a Macro."
llvm-svn: 11815
2004-02-25 01:53:45 +00:00
Brian Gaeke
eae0364189
FunctionLiveVarInfo.h moved: include/llvm/CodeGen -> lib/Target/Sparc/LiveVar
...
llvm-svn: 11804
2004-02-24 19:46:00 +00:00
Chris Lattner
9f2c8c7ea5
Add some helpful methods for dealing with switch instructions
...
llvm-svn: 11794
2004-02-24 06:26:00 +00:00
Chris Lattner
da760e3e77
Hrm, my find must have been faulty. It didn't remove these as well.
...
llvm-svn: 11788
2004-02-24 03:54:22 +00:00
Chris Lattner
8138c7e4a2
Boost is now unneeded, thanks to the fix for PR253, contributed by Reid Spencer!
...
llvm-svn: 11787
2004-02-24 03:53:00 +00:00
Chris Lattner
e532a181c7
Use the new LLVM is_class template instead of the boost one, allowing us to
...
remove our dependency on boost! Thanks to Reid Spencer for making this possible!
llvm-svn: 11785
2004-02-24 03:50:05 +00:00
Chris Lattner
341a8ac05c
Check in a new type_traits header which provides the mysterious is_class
...
template. Thanks go out to Reid Spencer for skillfully extracting this
from boost!
llvm-svn: 11784
2004-02-24 03:49:29 +00:00
Chris Lattner
54abbdd4db
Noone cares about similarity to boost
...
llvm-svn: 11783
2004-02-24 03:47:25 +00:00
Brian Gaeke
74d4e2a05c
DataTypes.h is now output from configure, and shortened
...
llvm-svn: 11778
2004-02-23 22:07:26 +00:00
Brian Gaeke
dd067686e1
Regenerated with autoheader-2.57.
...
llvm-svn: 11773
2004-02-23 21:30:39 +00:00
Brian Gaeke
6620134331
ThreadSupport.h is now output from configure.
...
llvm-svn: 11770
2004-02-23 21:30:29 +00:00
Brian Gaeke
7715d8e2ba
Renamed to hash_set.in; move to using autoconf substitution tags.
...
llvm-svn: 11765
2004-02-23 18:56:36 +00:00
Brian Gaeke
3d632e3fd5
Renamed to hash_map.in; move to using autoconf substitution tags.
...
llvm-svn: 11764
2004-02-23 18:56:35 +00:00
Brian Gaeke
13ca0bda3f
Regenerated using autoheader-2.57.
...
llvm-svn: 11762
2004-02-23 18:56:04 +00:00
Brian Gaeke
2cb1841335
Renamed from include/Support/iterator. Doxygenify comments; add autoconf substitution tags.
...
llvm-svn: 11754
2004-02-23 18:16:10 +00:00
Brian Gaeke
560c89141f
Replaced by include/Support/iterator.in.
...
llvm-svn: 11753
2004-02-23 18:16:10 +00:00
Brian Gaeke
c84da72de7
Regenerated with autoheader-2.57.
...
llvm-svn: 11752
2004-02-23 18:16:09 +00:00
Alkis Evlogimenos
9b103024ef
Refactor rewinding code for finding the first terminator of a basic
...
block into MachineBasicBlock::getFirstTerminator().
This also fixes a bug in the implementation of the above in both
RegAllocLocal and InstrSched, where instructions where added after the
terminator if the basic block's only instruction was a terminator (it
shouldn't matter for RegAllocLocal since this case never occurs in
practice).
llvm-svn: 11748
2004-02-23 18:14:48 +00:00
Alkis Evlogimenos
850bd0819f
Move LiveIntervals.h to lib/CodeGen since it shouldn't be exposed to other parts of the compiler
...
llvm-svn: 11719
2004-02-23 00:50:15 +00:00
Alkis Evlogimenos
7f7d70a53c
Move MOTy::UseType enum into MachineOperand. This eliminates the
...
switch statements in the constructors and simplifies the
implementation of the getUseType() member function. You will have to
specify defs using MachineOperand::Def instead of MOTy::Def though
(similarly for Use and UseAndDef).
llvm-svn: 11715
2004-02-22 19:23:26 +00:00
Alkis Evlogimenos
abc8efe386
Fix silly bug in implementation of getUseType(). Thanks Misha.
...
llvm-svn: 11711
2004-02-22 07:24:19 +00:00
Alkis Evlogimenos
6998610eda
When folding memory operands in machine instructions be careful to
...
leave register operands with the same use/def flags as the original
instruction.
llvm-svn: 11709
2004-02-22 06:54:26 +00:00
Chris Lattner
a3f44e7098
Significantly simplify gep_type_iterator, and make its interface more general/powerful
...
llvm-svn: 11708
2004-02-22 06:27:03 +00:00
Alkis Evlogimenos
32d12d31ae
Abstract merging of ranges away from number of slots per instruction.
...
Also make it less aggressive as the current implementation breaks in
some cases.
llvm-svn: 11696
2004-02-22 04:05:13 +00:00
Chris Lattner
7906b0bc03
Update comments and add warning
...
llvm-svn: 11691
2004-02-21 22:27:20 +00:00
Brian Gaeke
2aa4c4f955
Regenerated using autoheader-2.57.
...
llvm-svn: 11657
2004-02-20 06:40:58 +00:00
Alkis Evlogimenos
f32239a5c6
Too many changes in one commit:
...
1. LiveIntervals now implement a 4 slot per instruction model. Load,
Use, Def and a Store slot. This is required in order to correctly
represent caller saved register clobbering on function calls,
register reuse in the same instruction (def resues last use) and
also spill code added later by the allocator. The previous
representation (2 slots per instruction) was insufficient and as a
result was causing subtle bugs.
2. Fixes in spill code generation. This was the major cause of
failures in the test suite.
3. Linear scan now has core support for folding memory operands. This
is untested and not enabled (the live interval update function does
not attempt to fold loads/stores in instructions).
4. Lots of improvements in the debugging output of both live intervals
and linear scan. Give it a try... it is beautiful :-)
In summary the above fixes all the issues with the recent reserved
register elimination changes and get the allocator very close to the
next big step: folding memory operands.
llvm-svn: 11654
2004-02-20 06:15:40 +00:00
Chris Lattner
1316ee07fa
Add a method useful for updating DSA
...
llvm-svn: 11636
2004-02-19 21:27:50 +00:00
Chris Lattner
cd1fbde16a
Add a new function
...
llvm-svn: 11630
2004-02-19 20:03:08 +00:00
Chris Lattner
6c338f7627
ADd a method for when an instruction moves
...
llvm-svn: 11626
2004-02-19 18:28:22 +00:00
Chris Lattner
436ab13009
Add a MachineBasicBlock::getParent() method
...
llvm-svn: 11622
2004-02-19 16:13:54 +00:00
Alkis Evlogimenos
59c646da40
Make ToolExecutionError inherit std::exception and implement its
...
interface: getMessage() is gone, use what() instead.
llvm-svn: 11621
2004-02-19 07:39:26 +00:00
Alkis Evlogimenos
ef9c4f4339
This is needed by assignment verification in linear-scan.
...
llvm-svn: 11618
2004-02-19 01:10:55 +00:00
Chris Lattner
00012233a7
Add support for just compiling a program
...
llvm-svn: 11610
2004-02-18 23:24:29 +00:00
Alkis Evlogimenos
d4fd43dee8
Move unused typedefs in private section. Add method to return interval
...
given a register.
llvm-svn: 11608
2004-02-18 23:14:52 +00:00
Chris Lattner
15a1c4c452
Byebye method
...
llvm-svn: 11598
2004-02-18 20:38:12 +00:00
Chris Lattner
72ce97cc95
When an error occurs executing a tool, we now throw an exception instead
...
of calling exit(1).
llvm-svn: 11593
2004-02-18 20:21:57 +00:00
Chris Lattner
217adea39e
Change the order of the arguments to the ctor, allowing us to make the boolean default to true
...
llvm-svn: 11592
2004-02-18 20:20:52 +00:00
Chris Lattner
ea6910de90
Move a helper class out of bugpoint to here.
...
llvm-svn: 11582
2004-02-18 17:16:17 +00:00
Chris Lattner
34f3bce70c
eliminate a pair of really inefficient methods now that noone uses them
...
llvm-svn: 11579
2004-02-18 16:45:22 +00:00
Chris Lattner
f877cd09d0
The CBE is no longer in llvm-dis
...
llvm-svn: 11532
2004-02-17 06:39:48 +00:00
Chris Lattner
affbcb6be5
Simplify and document the new interface
...
llvm-svn: 11524
2004-02-17 05:54:26 +00:00
Alkis Evlogimenos
a479dc4715
Add LiveIntervals::Interval::empty() member function.
...
llvm-svn: 11520
2004-02-17 05:14:37 +00:00
Alkis Evlogimenos
c4ec9111bb
Add API to check and fold memory operands into instructions.
...
llvm-svn: 11519
2004-02-17 04:33:18 +00:00
Chris Lattner
0b89611d3f
Add two missing pieces from last checkin
...
llvm-svn: 11513
2004-02-17 03:03:36 +00:00