Alkis Evlogimenos
4c50715e9e
Temporarily comment out asserts as they break things. I will uncomment
...
them when all the problem areas are fixed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11855 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-25 23:56:36 +00:00
Brian Gaeke
9d20b71eca
Represent va_list in interpreter as a (ec-stack-depth . var-arg-index)
...
pair, and look up varargs in the execution stack every time, instead of
just pushing iterators (which can be invalidated during callFunction())
around. (union GenericValue now has a "pair of uints" member, to support
this mechanism.) Fixes Bug 234.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11845 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-25 23:01:48 +00:00
Alkis Evlogimenos
332d5d0a68
Duh, forgot to close the parenthesis.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11843 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-25 22:07:14 +00:00
Alkis Evlogimenos
338ce3d64e
Add assert to isPhysicalRegister and isVirtualRegister to fail when
...
passed the special 'register' 0.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11842 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-25 22:04:28 +00:00
Alkis Evlogimenos
4d0d864be3
Add DenseMap template and actually use it for for mapping virtual regs
...
to objects.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11840 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-25 21:55:45 +00:00
Chris Lattner
fdf6a3c8cc
Add prototype
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11837 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-25 21:34:51 +00:00
Brian Gaeke
150666fd82
Great renaming part II: Sparc --> SparcV9 (also includes command-line options and Makefiles)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11827 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-25 19:08:12 +00:00
Brian Gaeke
bb92f6fbf2
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."
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11815 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-25 01:53:45 +00:00
Brian Gaeke
748fba141f
FunctionLiveVarInfo.h moved: include/llvm/CodeGen -> lib/Target/Sparc/LiveVar
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11804 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-24 19:46:00 +00:00
Chris Lattner
b4a482a098
Add some helpful methods for dealing with switch instructions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11794 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-24 06:26:00 +00:00
Chris Lattner
bf81213693
Hrm, my find must have been faulty. It didn't remove these as well.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11788 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-24 03:54:22 +00:00
Chris Lattner
e35b06c6c4
Boost is now unneeded, thanks to the fix for PR253, contributed by Reid Spencer!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11787 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-24 03:53:00 +00:00
Chris Lattner
7b3d73b7ec
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!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11785 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-24 03:50:05 +00:00
Chris Lattner
5c4d53a4d1
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!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11784 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-24 03:49:29 +00:00
Chris Lattner
c50879dfe6
Noone cares about similarity to boost
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11783 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-24 03:47:25 +00:00
Brian Gaeke
95ee9bd81f
DataTypes.h is now output from configure, and shortened
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11778 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-23 22:07:26 +00:00
Brian Gaeke
6c71bf5f70
Regenerated with autoheader-2.57.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11773 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-23 21:30:39 +00:00
Brian Gaeke
a6eb7c19a1
ThreadSupport.h is now output from configure.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11770 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-23 21:30:29 +00:00
Brian Gaeke
cbc20b451d
Renamed to hash_set.in; move to using autoconf substitution tags.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11765 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-23 18:56:36 +00:00
Brian Gaeke
6cd52446fa
Renamed to hash_map.in; move to using autoconf substitution tags.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11764 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-23 18:56:35 +00:00
Brian Gaeke
6ab1917840
Regenerated using autoheader-2.57.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11762 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-23 18:56:04 +00:00
Brian Gaeke
c134395628
Renamed from include/Support/iterator. Doxygenify comments; add autoconf substitution tags.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11754 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-23 18:16:10 +00:00
Brian Gaeke
0e67d4cfe2
Replaced by include/Support/iterator.in.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11753 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-23 18:16:10 +00:00
Brian Gaeke
587bef9d1a
Regenerated with autoheader-2.57.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11752 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-23 18:16:09 +00:00
Alkis Evlogimenos
743d0a1f83
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).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11748 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-23 18:14:48 +00:00
Alkis Evlogimenos
a2f6a408dc
Move LiveIntervals.h to lib/CodeGen since it shouldn't be exposed to other parts of the compiler
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11719 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-23 00:50:15 +00:00
Alkis Evlogimenos
890f92328d
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).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11715 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-22 19:23:26 +00:00
Alkis Evlogimenos
e33da36cbd
Fix silly bug in implementation of getUseType(). Thanks Misha.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11711 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-22 07:24:19 +00:00
Alkis Evlogimenos
f216421181
When folding memory operands in machine instructions be careful to
...
leave register operands with the same use/def flags as the original
instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11709 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-22 06:54:26 +00:00
Chris Lattner
2425f8c629
Significantly simplify gep_type_iterator, and make its interface more general/powerful
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11708 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-22 06:27:03 +00:00
Alkis Evlogimenos
7200c6b82a
Abstract merging of ranges away from number of slots per instruction.
...
Also make it less aggressive as the current implementation breaks in
some cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11696 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-22 04:05:13 +00:00
Chris Lattner
9c0b9bf2b5
Update comments and add warning
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11691 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-21 22:27:20 +00:00
Brian Gaeke
0c80389498
Regenerated using autoheader-2.57.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11657 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-20 06:40:58 +00:00
Alkis Evlogimenos
39a0d5c112
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11654 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-20 06:15:40 +00:00
Chris Lattner
bbdfe40ba7
Add a method useful for updating DSA
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11636 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-19 21:27:50 +00:00
Chris Lattner
9717ee9e6c
Add a new function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11630 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-19 20:03:08 +00:00
Chris Lattner
da8ab2ea45
ADd a method for when an instruction moves
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11626 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-19 18:28:22 +00:00
Chris Lattner
5e61fa9519
Add a MachineBasicBlock::getParent() method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11622 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-19 16:13:54 +00:00
Alkis Evlogimenos
1d29a6d6c7
Make ToolExecutionError inherit std::exception and implement its
...
interface: getMessage() is gone, use what() instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11621 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-19 07:39:26 +00:00
Alkis Evlogimenos
04319bb2bd
This is needed by assignment verification in linear-scan.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11618 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-19 01:10:55 +00:00
Chris Lattner
f03715c6a8
Add support for just compiling a program
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11610 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-18 23:24:29 +00:00
Alkis Evlogimenos
52f8f56ef4
Move unused typedefs in private section. Add method to return interval
...
given a register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11608 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-18 23:14:52 +00:00
Chris Lattner
c8580b2aee
Byebye method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11598 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-18 20:38:12 +00:00
Chris Lattner
8c56be5e2b
When an error occurs executing a tool, we now throw an exception instead
...
of calling exit(1).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11593 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-18 20:21:57 +00:00
Chris Lattner
f5c8146a7c
Change the order of the arguments to the ctor, allowing us to make the boolean default to true
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11592 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-18 20:20:52 +00:00
Chris Lattner
f1e3285f3a
Move a helper class out of bugpoint to here.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11582 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-18 17:16:17 +00:00
Chris Lattner
9b2c31c5cb
eliminate a pair of really inefficient methods now that noone uses them
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11579 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-18 16:45:22 +00:00
Chris Lattner
df2cf418a8
The CBE is no longer in llvm-dis
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11532 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-17 06:39:48 +00:00
Chris Lattner
8026a6982e
Simplify and document the new interface
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11524 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-17 05:54:26 +00:00
Alkis Evlogimenos
7093d37304
Add LiveIntervals::Interval::empty() member function.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11520 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-17 05:14:37 +00:00