Commit Graph

2669 Commits

Author SHA1 Message Date
Reid Spencer
7105f4ae8c bug 402:
A new set of block identifiers has been added for version 1.3 so that the
range of values can fit within 5 bits. This aids in halving the size of
block headers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15206 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-25 17:50:00 +00:00
Chris Lattner
f90fcaf572 Add back() and pop_back() methods to SetVector
Move clear to the end of the class
Add assertions


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15203 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-25 11:07:02 +00:00
Chris Lattner
5c88260f70 Add support for free instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15197 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-25 07:57:37 +00:00
Chris Lattner
d3a205eab5 Make a method const, no functionality changes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15193 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-25 06:23:01 +00:00
Alkis Evlogimenos
3f86193cd2 Remove implementation of operator= and make it private so that it is
not used accidentally.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15172 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-24 18:55:15 +00:00
Alkis Evlogimenos
a1613db62f Change std::map<unsigned, LiveInterval*> into a std::map<unsigned,
LiveInterval>. This saves some space and removes the pointer
indirection caused by following the pointer.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15167 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-24 11:44:15 +00:00
Chris Lattner
62c91fcda5 Provide timeout values to all abstract interpreters
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15159 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-24 07:48:50 +00:00
Chris Lattner
de0213b9f5 Add support for killing the program if it executes for too long.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15158 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-24 07:41:31 +00:00
Chris Lattner
4df98e546d Completely eliminate the intervals_ list. instead, the r2iMap_ maintains
ownership of the intervals.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15155 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-24 03:32:06 +00:00
Chris Lattner
0f4c076140 Add a new differingRegisterClasses method
make overlapsAliases take pointers instead of references
fix indentation


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15153 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-24 02:53:43 +00:00
Chris Lattner
abf295fc6c Little stuff:
* Fix comment typeo
* add dump() methods
* add a few new methods like getLiveRangeContaining, removeRange & joinable
  (which is currently the same as overlaps)
* Remove the unused operator==

Bigger change:

* In LiveInterval, instead of using a boolean isDefinedOnce to keep track of
  if there are > 1 definitions in a particular interval, keep a counter,
  NumValues to keep track of exactly how many there are.
* In LiveRange, add a new ValId element to indicate which of the numbered
  values each LiveRange belongs to.   We now no longer merge LiveRanges if
  they are of differing value ID's even if they are neighbors.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15152 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-24 02:52:23 +00:00
Chris Lattner
f35fef7060 More minor changes:
* Inline some functions
 * Eliminate some comparisons from the release build

This is good for another .3 on gcc.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15144 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-23 21:24:19 +00:00
Chris Lattner
b26c215c05 Change addRange and join to be a little bit smarter. In particular, we don't
want to insert a new range into the middle of the vector, then delete ranges
one at a time next to the inserted one as they are merged.

Instead, if the inserted interval overlaps, just start merging.  The only time
we insert into the middle of the vector is when we don't overlap at all.  Also
delete blocks of live ranges if we overlap with many of them.

This patch speeds up joining by .7 seconds on a large testcase, but more
importantly gets all of the range adding code into addRangeFrom.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15141 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-23 19:38:44 +00:00
Chris Lattner
e6ad392802 New helper method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15138 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-23 18:39:12 +00:00
Chris Lattner
4dc54ae0d9 Speedup debug builds a bit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15137 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-23 18:38:52 +00:00
Chris Lattner
ebd7e6c54d Instead of searching for a live interval pair, search for a location. This gives
a very modest speedup of .3 seconds compiling 176.gcc (out of 20s).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15136 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-23 18:13:24 +00:00
Chris Lattner
a3b8b5c0e0 Rename LiveIntervals.(cpp|h) -> LiveIntervalAnalysis.(cpp|h)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15135 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-23 17:56:30 +00:00
Chris Lattner
fb449b9ea5 Pull the LiveRange and LiveInterval classes out of LiveIntervals.h (which
will soon be renamed) into their own file.  The new file should not emit
DEBUG output or have other side effects.  The LiveInterval class also now
doesn't know whether its working on registers or some other thing.

In the future we will want to use the LiveInterval class and friends to do
stack packing.  In addition to a code simplification, this will allow us to
do it more easily.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15134 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-23 17:49:16 +00:00
Chris Lattner
ec2bc64505 Improve comments a bit
Use an explicit LiveRange class to represent ranges instead of an std::pair.
This is a minor cleanup, but is really intended to make a future patch simpler
and less invasive.

Alkis, could you please take a look at LiveInterval::liveAt?  I suspect that
you can add an operator<(unsigned) to LiveRange, allowing us to speed up the
upper_bound call by quite a bit (this would also apply to other callers of
upper/lower_bound).  I would do it myself, but I still don't understand that
crazy liveAt function, despite the comment. :)

Basically I would like to see this:
    LiveRange dummy(index, index+1);
    Ranges::const_iterator r = std::upper_bound(ranges.begin(),
                                                ranges.end(),
                                                dummy);

Turn into:
    Ranges::const_iterator r = std::upper_bound(ranges.begin(),
                                                ranges.end(),
                                                index);


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15130 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-23 08:24:23 +00:00
Chris Lattner
fe1630b43e Force coallescing of live ranges that have a single definition, even if they
interfere.  Because these intervals have a single definition, and one of them
is a copy instruction, they are always safe to merge even if their lifetimes
interfere.  This slightly reduces the amount of spill code, for example on
252.eon, from:

 12837 spiller               - Number of loads added
  7604 spiller               - Number of stores added
  5842 spiller               - Number of register spills
 18155 liveintervals         - Number of identity moves eliminated after coalescing

to:

  12754 spiller               - Number of loads added
   7585 spiller               - Number of stores added
   5803 spiller               - Number of register spills
  18262 liveintervals         - Number of identity moves eliminated after coalescing

The much much bigger win would be to merge intervals with multiple definitions
(aka phi nodes) but this is not that day.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15124 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-23 05:26:05 +00:00
Misha Brukman
e3fa53ee4d * Add a BoolAlignment field to TargetData, default is 1 byte
* Fix spacing


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15119 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-23 01:08:13 +00:00
Chris Lattner
3ede6adf18 New prototype
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15102 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-22 08:07:30 +00:00
Chris Lattner
b8a31ace2c Clean up reference counting to stop "leaking" alias sets
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15099 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-22 07:58:18 +00:00
Brian Gaeke
7d02766247 Include <iostream> here, because most people using DEBUG() want to use std::cerr too.
This means that users of this file do not also need to include <iostream>.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15088 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-21 20:50:22 +00:00
Alkis Evlogimenos
7b32639362 Add greater_ptr functor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15070 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-21 08:38:06 +00:00
Alkis Evlogimenos
910d0d6066 Add Iterative scan register allocator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15068 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-21 08:24:35 +00:00
Chris Lattner
877ad7d80b Add a bunch of new functionality, primarily to do with removing aliasing
pointers from an AST.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15065 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-21 07:03:57 +00:00
Chris Lattner
12c1155403 Make the AST interface a bit richer by returning whether an insertion caused
an insertion or not (because the pointer set already existed).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15064 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-21 05:18:04 +00:00
Brian Gaeke
d59a64797b Regenerated with autoconf/autoheader 2.57
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15059 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-21 03:33:58 +00:00
Brian Gaeke
a7d03b466a Add prototypes for platform-independent wrappers for isinf().
Patch contributed by Bill Wendling.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15055 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-21 03:15:14 +00:00
Brian Gaeke
c64d41e706 Regenerated with autoheader-2.57.
Patch contributed by Bill Wendling.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15054 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-21 03:15:02 +00:00
Misha Brukman
c5f9d8c630 Use C++-style <cstdio> instead of C-style <stdio.h>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15042 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-20 16:14:06 +00:00
Misha Brukman
913e1b4bdd Dump the old-fashioned C-style <ctype.h> in favor of new `C++'-style <cctype>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15025 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-20 02:18:25 +00:00
Misha Brukman
497b52f381 isupper() and tolower() are declared in <ctype.h>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15016 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-20 00:52:16 +00:00
Misha Brukman
a32355bb8e Tabs to spaces.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15010 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-19 21:22:02 +00:00
Misha Brukman
049c48f1ad Convert tabs to spaces; fix name of function in assert() description.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15009 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-19 21:11:45 +00:00
John Criswell
7ed43ad3ab Added support for stdint.h. It is now automatically included by
DataTypes.h.  So far, it doesn't seem to break Linux, Solaris, or MacOS X.
This should automatically include it for those people who need it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15006 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-19 16:12:29 +00:00
Chris Lattner
1c5c0444f1 Split joinIntervals into two methods
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15003 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-19 14:08:10 +00:00
Chris Lattner
c49c872a1a Fix comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15002 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-19 13:28:39 +00:00
Chris Lattner
81e26ce1da Delete 4 methods, make clients use hte mark* methods directly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14999 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-19 07:52:25 +00:00
Chris Lattner
74de8b1b26 There is no need to store the MBB along with the MI any more, we can now
ask instructions for their parent.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14998 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-19 07:04:55 +00:00
Chris Lattner
472405e0dc Simplify the interface to LiveVariables::addVirtualRegister(Killed|Dead)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14997 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-19 06:55:21 +00:00
Chris Lattner
73d4adfb1e Remove the DefBlock element of VarInfo. DefBlock is always DefInst->getParent()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14996 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-19 06:26:50 +00:00
Chris Lattner
6b92906010 fill comment to 80 cols
remove map that is not needed


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14988 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-19 02:13:59 +00:00
Chris Lattner
52eb13c58e inline classof implementations, eliminate use of virtual methods.
classof<ConstantXXX> is now MUCH faster than it used to be.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14986 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-19 00:58:47 +00:00
Chris Lattner
9344063f5f eliminate isConstantExpr, changes to isa<Constant> implementation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14985 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-19 00:58:02 +00:00
Chris Lattner
66a434692b Add new enum entries for ConstantAggregateZeroVal/ConstantExprVal and
rename ConstantVal to SimpleConstantVal


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14984 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-19 00:57:40 +00:00
Chris Lattner
f962ac798a Change method to return void. Inline dtor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14982 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-19 00:55:19 +00:00
Chris Lattner
e30ab88209 Remove dead file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14981 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-18 23:44:15 +00:00
Reid Spencer
b0104d07ee Add a missing space to align comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14955 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-18 00:56:58 +00:00
Reid Spencer
8cf4c8cd05 Fix typeos in comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14954 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-18 00:55:49 +00:00
Reid Spencer
31c0da4483 bug 122:
remove redundant isa<GlobalValue>
ensure isa<GlobalValue> case is processed before is<Constant>


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14926 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-17 23:36:58 +00:00
Reid Spencer
1488b34be5 bug 122:
- Add ValueListTy to TypeTy so that the bcreader can have its own User
  category that won't get factored into any optimizations or cleanup.
- Correct an isa_impl to correctly include GlobalValue now that it isa
  Constant.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14925 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-17 23:34:47 +00:00
Reid Spencer
e3d19aac69 bug 122:
Remove redundancy in User::classof(Value*); GlobalValue isa Constant now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14924 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-17 23:32:11 +00:00
Reid Spencer
3e7bb400bf Fix a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14923 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-17 23:30:45 +00:00
Reid Spencer
c6c981d643 bug 122:
We don't need to keep track of CPRs any more.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14922 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-17 23:30:11 +00:00
Reid Spencer
efd5dd80c9 bug 122:
Now that GlobalVariable is a constant (via derivation from GlobalValue),
override the replaceUsesOfWithOnConstant method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14921 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-17 23:29:46 +00:00
Reid Spencer
118c091fd7 bug 122:
- derive from Constant
- declare needed overrides from Constant class


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14920 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-17 23:28:28 +00:00
Reid Spencer
355b0d88cb ****** ABOLISH ConstantPointerRef *****
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14919 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-17 23:26:57 +00:00
Reid Spencer
e2643aa9df Extend constructor so that it can support GlobalValue's (with names).
Make GlobalValue a "classof" Constant
Fix the classof(Value*) to include GlobalValue's


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14918 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-17 23:26:12 +00:00
Reid Spencer
d25e6cd128 Constant value not needed after CPR's disappear.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14917 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-17 23:23:30 +00:00
Reid Spencer
8b67f54767 Added a README to point users to the documentation on the design of this
library which is a prerequisite for maintaining the library.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14909 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-17 08:39:53 +00:00
Chris Lattner
bc10c3b6c3 link.h causes problems on some platforms and is not needed on solaris, where
the comment came from.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14905 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-17 03:09:12 +00:00
Alkis Evlogimenos
8e9b219b67 Add convinience constructor for function calls with two args.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14885 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-16 12:04:28 +00:00
Chris Lattner
dcb115bc82 Add a new macro to be used for the end of enum lists.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14862 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-16 00:01:05 +00:00
Chris Lattner
5e87754250 Give SetVector range support
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14855 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-15 08:18:31 +00:00
Chris Lattner
80d94b88e1 Final fix for PR341: eliminate operator<<(ostream, Value*). Clients should
now send references to ostreams instead of pointers.  Sending pointers to
ostreams will print their addresses.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14849 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-15 02:54:36 +00:00
Chris Lattner
0a8e8e1a4e Fixes for PR341
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14847 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-15 02:51:31 +00:00
Chris Lattner
94009a5954 Fix for PR341
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14846 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-15 02:50:38 +00:00
Chris Lattner
654b710527 Yeah, how about those 'primative' types huh?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14836 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-15 01:15:53 +00:00
Chris Lattner
ec90d8f80d Make PATypeHolder and friends return non-const pointers to the types they
hold.  Because types are basically immutable anyway, they should not be
referenced as "const Type*" everywhere.  Just "Type*" should suffice!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14824 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-14 20:10:26 +00:00
Chris Lattner
b757f160fc * Change code to use a static_cast instead of reinterpret_cast
* Add comments
* Add two new gep ctors for the very common case of creating a two operand
  GEP instruction.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14820 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-14 18:13:54 +00:00
Chris Lattner
c78631f0e2 Add a helper method. The StructType element is completely redundant in most
cases


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14777 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-12 20:36:08 +00:00
Chris Lattner
268f2583b9 Add a missing #include
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14773 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-12 20:25:33 +00:00
Chris Lattner
85e4eb6dc0 Fix warning compiling with VC++
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14772 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-12 20:25:04 +00:00
Chris Lattner
bbd913bb6d Implement a new method useful for things like the inliner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14768 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-12 01:17:52 +00:00
Chris Lattner
2845ece825 Add a new listener class for things that want to be informed about new
targets that are loaded


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14758 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-11 06:02:59 +00:00
Chris Lattner
635ffcdf58 Delete the allocate*TargetMachine functions. Move options to a header file
that makes sense.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14754 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-11 04:15:52 +00:00
Chris Lattner
cbc74123d8 Add a new TargetNameParser class, which is useful for parsing options.
Add two methods which are useful for autoselecting targets.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14748 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-11 03:59:46 +00:00
Chris Lattner
6a4dd24a99 Provide better support for pointer-valued command line arguments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14746 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-11 03:18:30 +00:00
Chris Lattner
9f27ede92d First cut at TargetMachineRegistry and RegisterTarget classes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14742 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-11 02:43:43 +00:00
Chris Lattner
a51e273a76 Add two new "virtual static" methods to the TargetMachine class
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14741 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-11 02:43:07 +00:00
Chris Lattner
170d3af552 Add a new header
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14737 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-11 01:03:57 +00:00
Chris Lattner
20d20fc77d Removed unneeded forward decl
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14727 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-09 17:02:57 +00:00
Chris Lattner
36002e43ec Remove unused method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14726 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-09 16:48:13 +00:00
Chris Lattner
57cd1ff463 Eliminate the UID field in the Type class, bringing it down to 28 bytes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14709 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-08 22:31:37 +00:00
Chris Lattner
ddc49d6121 Add a new method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14705 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-08 22:09:07 +00:00
Reid Spencer
800473c8df Get rid of some cruft in the insert method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14704 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-08 21:50:33 +00:00
Reid Spencer
4bb2867bc1 First version of a vector with uniqueness constraints (or a set with
deterministic, insertion-order iteration).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14702 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-08 19:36:21 +00:00
Misha Brukman
0f54f19f29 Fix spelling of `equivalent'
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14697 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-08 17:45:18 +00:00
Chris Lattner
e1d6799661 isSigned/isUnsigned/isInteger methods do not need to be virtual
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14694 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-08 17:29:36 +00:00
Chris Lattner
c29af0084f Update comment.
Remove unused forward decl of Value.h
Make Type 32 bytes instead of 36 bytes


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14692 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-08 16:09:38 +00:00
Chris Lattner
e2b4ae9d93 This file uses the Value class without a forward decl
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14691 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-08 15:54:29 +00:00
Alkis Evlogimenos
71bf404e9b Add viewCFG() and viewCFGOnly() APIs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14679 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-08 00:47:58 +00:00
Chris Lattner
8adbec89ce Headers moved
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14665 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-07 06:35:22 +00:00
Chris Lattner
7ff5daa0b6 All of these now live in the DataStructure directory
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14664 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-07 06:32:53 +00:00
Chris Lattner
6c49989b3e Move DSA headers into Analysis/DataStructure to make it more obvious
what is implemented by the DataStructure library.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14662 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-07 06:29:26 +00:00
Chris Lattner
efffdc9408 As much as I hate to say it, the whole setNode interface for DSNodeHandles
is HOPELESSLY broken.  The problem is that the embedded getNode call can
change the offset of the node handle in unpredictable ways.

As it turns out, all of the clients of this method really want to set
both the node and the offset, thus it is more efficient (and less buggy)
to just do both of them in one method call.  This fixes some obscure bugs
handling non-forwarded node handles.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14660 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-07 06:12:52 +00:00
Reid Spencer
ba466362c4 Remove definition and use of OtherVal enumerator. This just fixes a thinko.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14634 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-06 01:30:36 +00:00
Reid Spencer
e0bc0c1822 Move SlotCalculator.h to lib/Bytecode/Writer since that is the only place
that needs it after the Type != Value changes (bug 122).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14605 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-04 11:36:31 +00:00
Reid Spencer
1847444e0c Make all the virtual function (except destructor) inline so there are
default implementations without taking up a ton of space in a .cpp file.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14603 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-04 11:29:56 +00:00
Reid Spencer
ed3d16e443 Add a new, compatible, interface function for writing types as operands.
This is necessary because Types are no longer Values.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14598 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-04 10:59:05 +00:00
Reid Spencer
2d59de545a Added #include <iostream> since this header is no longer picked up from
the Value.h header.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14597 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-04 10:58:20 +00:00
Reid Spencer
da8440a6ae - Remove enumerator TypeVal since Values can't be types any more
- Remove isa_impl relationship between Types and Values
- Add OtherVal so "other" users can interact with Values.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14596 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-04 10:52:28 +00:00
Reid Spencer
88bdcd5d56 There is no longer a "Type" primitive type because Values and Types are
now distinct.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14595 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-04 10:50:43 +00:00
Reid Spencer
9d625274ea Constify usage of Type* on the interface to ensure SymbolTable doesn't
modify types (it never should). Clean up some comments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14594 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-04 10:49:41 +00:00
Reid Spencer
69e9abbb03 Remove all of the classof(const Value*) methods of the derived types since
the Type base class no longer derives from Value.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14593 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-04 10:48:27 +00:00
Reid Spencer
e753e3b329 Make Type have no base classes. Previously it inherited Value. Also
removed the TypeTyID and TypeTy members so that the notion of the
"Type Type" is no longer present in LLVM. Various other adjustments
resulting from these changes were also made.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14592 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-04 10:46:49 +00:00
Alkis Evlogimenos
3b94a5142c Add more operators.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14589 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-04 01:30:54 +00:00
Chris Lattner
c5f143b6e7 Fix Type::isSized() to realize that "{ opaque }" is not sized
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14585 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-02 23:20:17 +00:00
Chris Lattner
683ade38a9 Since we are in the department of redundancy department, at least be correct
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14582 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-02 18:41:18 +00:00
Chris Lattner
8b708e4752 Add a new pass for code generators to use
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14562 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-02 05:44:13 +00:00
Misha Brukman
992dce13ec * Doxygenify comments
* Tabs-to-spaces


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14549 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-01 20:42:00 +00:00
Chris Lattner
cf3290b04a Move init methods out of line to enable better assertions, contributed
by Vladimir Merzliakov!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14545 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-01 20:22:31 +00:00
Chris Lattner
61e4cb3605 Now that we have happy mappings from MBBs->numbers, use them instead of keeping
a LV private map


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14522 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-01 06:14:57 +00:00
Chris Lattner
25d8039bd6 Change the implementation of the autonumbering for MBB's a bit to provide
the reverse mapping as well as the mapping from MBB->unsigned


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14519 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-01 06:01:36 +00:00
Reid Spencer
78b763b2ad Provide support for the BytecodeHandler interface which will be called by
the bcreader if one is supplied to the bytecode reader's interface
functions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14489 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-29 23:20:03 +00:00
Reid Spencer
9c1e05fe75 Fix include guard
Adjust comments
Make handlers for constants provide useful information.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14488 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-29 23:18:52 +00:00
Reid Spencer
39e6af456b Adjust comments to match code.
Allow analysis to return the module created by the bcreader.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14487 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-29 23:17:34 +00:00
Chris Lattner
15fde2eb83 Add new header
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14461 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-28 06:31:26 +00:00
Chris Lattner
c347dfb767 Remove dead file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14459 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-28 00:46:54 +00:00
Chris Lattner
c755307412 Remove two dead passes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14456 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-28 00:43:25 +00:00
Chris Lattner
c3f44c082f Move file to lib/Analysis/DataStructure
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14454 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-28 00:40:43 +00:00
Chris Lattner
1ffa817210 Moved to lib/analysis/datastructure
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14451 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-28 00:30:29 +00:00
Chris Lattner
ae7502cb5f Moved to lib/Analysis/DataStructure
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14449 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-28 00:27:34 +00:00
Chris Lattner
e1ba478cd6 Moved to lib/Analysis/DataStructure
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14447 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-28 00:20:39 +00:00
Chris Lattner
ce8158d1d6 Now that the SparcV9 specific MachineCodeForInstruction class uses it's own
map on the side, Instruction no longer has to be Annotable.  This reduces
the size of the Instruction class by another 4 bytes (on a 32-bit system).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14439 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-27 18:57:34 +00:00
Chris Lattner
ea104df2b1 This class is no longer an annotation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14437 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-27 18:50:49 +00:00
Chris Lattner
4aa5b2affb Add a map of MachineCodeForInstruction objects to MachineFunctionInfo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14436 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-27 18:50:30 +00:00
Chris Lattner
7da38ec915 Eliminate the Instruction::iType field, folding it into the Value::VTy field.
This reduces the size of the instruction class by 4 bytes, and means that
isa<CallInst>(V) (for example) only needs to do one load from memory instead
of two.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14434 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-27 18:38:24 +00:00
Chris Lattner
6b5f30f365 Get rid of Annotable's vtable. If anyone deletes an object through an Annotable*,
they get what they deserve.

This reduces the size of Instruction & Function by 4 bytes each.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14433 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-27 18:36:39 +00:00
Chris Lattner
159286d60d Make it obvious that this file is bad bad bad
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14432 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-27 18:21:20 +00:00
Chris Lattner
38ab9267c9 Make ctor inline, change ValueTy ->unsigned
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14430 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-27 18:01:15 +00:00
Chris Lattner
0b0863778f Consider anything with a ValueType that is >= Instruction to be an instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14429 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-26 20:51:50 +00:00
Chris Lattner
f6b7844101 Rearrange some code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14427 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-26 20:33:27 +00:00
Chris Lattner
98ebce1a6f Hey, why not just make 'new ReturnInst(BB)' DTRT?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14422 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-25 23:10:30 +00:00
Chris Lattner
e056f5c8e2 new ReturnInst(BB) does not "do the right thing". Add an assert to catch it
sooner rather than later.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14421 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-25 23:06:57 +00:00
Chris Lattner
288c92c16b Prototype for new ConstantExpr lowering pass, contributed by Vladimir Prus!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14397 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-25 07:41:06 +00:00
Reid Spencer
e5c9df6880 - Changed Handler.h -> BytecodeHandler.h
- Fixed some small coding standard compliance issues in BytecodeHandler.h


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14393 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-25 02:32:27 +00:00
Chris Lattner
bc7ce7eea4 Okay, Module have not been known as 'C' for a LONG time now
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14392 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-25 00:42:23 +00:00
Chris Lattner
990a6a39c0 Unbreak the build. tsk tsk
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14390 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-25 00:18:02 +00:00
Tanya Lattner
b140762a45 Made a fix so that you can print out MachineInstrs that belong to a MachineBasicBlock that is not yet attached to a MachineFunction. This change includes changing the third operand (TargetMachine) to a pointer for the MachineInstr::print function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14389 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-25 00:13:11 +00:00
Misha Brukman
64aed54684 Add a LowercaseString() utility function, courtesy of brg.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14383 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-24 23:38:52 +00:00
Reid Spencer
a1d90eb7bf Definition of the Bytecode Handler interface. Subclasses can override just
the methods they are interested in to perform out-of-band tasks while the
BytecodeReader is constructing a module. Handlers should *not* modify any
of the LLVM IR objects during this process.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14380 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-24 23:05:07 +00:00
Chris Lattner
5aa20212cc Remove distasteful method which is really part of the indvars pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14359 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-24 06:52:20 +00:00
Misha Brukman
bd8aeb61ec Moved to include/llvm/Support
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14350 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-23 17:24:53 +00:00
Brian Gaeke
7764f4b2e0 Provide prototypes for IsNAN() wrapper.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14339 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-23 00:25:24 +00:00
Brian Gaeke
5c03987964 Regenerated.
It looks to me like people haven't been running AutoRegen.sh. Grumble grumble.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14337 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-22 23:47:23 +00:00
John Criswell
8a54a1ed40 Added the llvm/test/Programs/Makefile.test Makefile.
Added a check for isnan() while I was at it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14333 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-22 21:35:10 +00:00
Misha Brukman
66d6ee4247 Spell out `NoFramePointerElim' for readability.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14299 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-21 21:17:44 +00:00
Misha Brukman
b41dabd8ad Make a single `NoFPElim' switch available to all targets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14296 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-21 21:07:51 +00:00
Misha Brukman
877338c6cf Let's be consistent: listing format `os/arch'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14293 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-21 18:43:23 +00:00
Chris Lattner
418da55c89 Rename Interval class to LiveInterval to avoid conflicting with the already
existing llvm::Interval class.

Patch contributed by Vladimir Prus!
http://mail.cs.uiuc.edu/pipermail/llvmbugs/2004-June/000710.html


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14281 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-21 13:10:56 +00:00
Chris Lattner
c2dfb8bb90 Make ConstantBool act like a 1 bit ConstantInt, in order to simplify client
code.  Patch contributed by Vladimir Prus.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14280 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-21 12:12:12 +00:00
Chris Lattner
2fce098f94 Header moved into the CodeGen directory
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14267 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-20 07:50:32 +00:00
Chris Lattner
90a62c8d4b Start moving IntrinsicLowering out of VMCore into libcodegen, as per PR346
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14264 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-20 07:40:46 +00:00
Chris Lattner
762a76b891 Add methods like BinaryOperator::createAdd that take an instruction to insert
before.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14261 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-20 05:02:56 +00:00
Chris Lattner
c8fd918aa1 Initial checkin of the StableBasicBlockNumbering, a little helper class for computing
(strangely enough) a stable (determinstic) numbering for basic blocks.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14246 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-19 08:41:59 +00:00
Misha Brukman
0ed24ad968 Add a target-independent way to query page size.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14232 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-18 15:30:25 +00:00
Chris Lattner
f70c22b019 Rename Type::PrimitiveID to TypeId and ::getPrimitiveID() to ::getTypeID()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14201 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-17 18:19:28 +00:00
Brian Gaeke
694ffc0850 I'm afraid this doesn't exist.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14193 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-16 00:26:45 +00:00
Chris Lattner
4ee623de0b isnan is dead
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14191 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-15 21:52:58 +00:00
Alkis Evlogimenos
9685372062 Add the isunordered intrinsic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14159 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-12 19:19:14 +00:00
Chris Lattner
51a54e6f1b It is no longer 2001
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14157 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11 21:12:22 +00:00
Misha Brukman
6e404b897b Fix grammar: 's is for possessive only.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14155 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11 16:50:21 +00:00
Reid Spencer
1cf5024de1 Implement tracking of bytecode instruction size and the number of long
instructions generated.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14154 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11 15:10:38 +00:00
Reid Spencer
8a9a3706ff Revert an unneeded interface change to Instruction.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14137 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11 03:06:43 +00:00
Chris Lattner
137cc4fc8c I misled Alkis: LLVM should have isnan, not isunordered.
isunordered(X, Y) === isnan(X) | isnan(Y)

Remove isunordered, add isnan.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14132 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11 02:29:43 +00:00
Alkis Evlogimenos
f616f22e81 Add the isunordered intrinsic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14127 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11 01:08:18 +00:00
Reid Spencer
38a6cfe41e Updated the BytecodeAnalysis data structure to contain additional fields
needed for analysis of individual functions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14125 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-10 22:28:11 +00:00
Reid Spencer
def0e55c87 Added an isPhiNode(unsigned) static method to determine if an opcode is
a PhiNode or not. Needed by Bytecode Analyzer.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14124 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-10 22:27:10 +00:00
Misha Brukman
236b7e2142 Remove extra space.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14117 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-10 12:51:35 +00:00
Reid Spencer
00c28a7481 Implemented the bulk of the functionality. Cleaned up the code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14113 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-10 08:09:13 +00:00
Chris Lattner
5118872dd2 Add new BinaryOperator::createAdd/Sub/... methods to avoid having to type
llvm::Instruction:: all of the time.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14105 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-10 01:43:29 +00:00
Reid Spencer
4502b37d7a Add some new fields for bytecode analysis.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14092 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-09 06:18:53 +00:00
Reid Spencer
6269ded8ee Cleaned up a dead header file to prevent duplicate definition warnings
in doxygen.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14084 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-09 04:38:34 +00:00
Chris Lattner
97baedc8c5 I checked and no clients expect this to return null for unconditional branches
Simplify code and make it more uniform.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14077 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-08 22:03:05 +00:00
Brian Gaeke
0bbcd6bfd1 Add a forwarding method pop_front() that allows you to delete instructions
from the beginning of a MBB.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14074 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-08 18:52:47 +00:00
Brian Gaeke
777a1cde66 Add a TmpInstruction ctor that doesn't take a MCFI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14073 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-08 18:52:46 +00:00
Chris Lattner
85b0195f0e Apparently a particular vendor compiler uses the struct/class tag to MANGLE
symbols with.  Therefore, if you do not use struct/class consistently, you can
get LINK ERRORS.  grr.

This fixes the link errors for libsupport and vmcore.

-Chris


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14070 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-08 17:44:21 +00:00
Misha Brukman
ef39012738 Fix case of doxygen directive `\p': it's lowercase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14068 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-08 13:49:17 +00:00
Chris Lattner
c07c0df634 Add documentation to the TargetFrameInfo class, contributed by Vladimir Prus
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14060 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-08 06:23:17 +00:00
Reid Spencer
381022b61f Clean up documentation and make it possible for the BytecodeAnalyzer to
store the output of the bytecode dumper.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14058 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-08 05:55:53 +00:00
Reid Spencer
dac69c83c2 Commit For New Tool: llvm-abcd (Analysis of ByteCode Dumper). This tool
will (eventually) provide statistical analysis of bytecode files as well
as the ability to dump them in a low level format (slot numbers not
resolved). The purpose of this is to aid in the Type!=Value change of
bug 122. With this initial release, llvm-abcd merely dumps out the
bytecode. However, the infrastructure for separating bytecode parsing from
handling the parsing events is in place. The style chosen is similar to
SAX XML parsing where a handler object is called to handlign the parsing
events. This probably isn't useful to anyone but me right now as there is
no analysis yet, and the dumper doesn't work on every bytecode file. It
will probably be useful by the end of this week. Note that there is some
duplication of code from the bytecode reader.  This was done to eliminate
errors from being introduced in the reader and to minimize the impact to
other LLVM developers. At some point, the Analyzer and the Reader will be
integrated to use the same infrastructure. Also, sorry for the minor change
to Instruction.h but I just couldn't bring myself to write code that
depends on Instruction internals.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14048 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-07 17:53:43 +00:00
John Criswell
d66215607c Added checks for mkstemp and getrusage.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14047 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-07 14:26:24 +00:00
Chris Lattner
5df5a428d3 Macros are baaad.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14039 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-05 00:54:11 +00:00
Chris Lattner
49b007b01b Don't #include <unistd.h> directly, go through the config files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14038 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-05 00:27:38 +00:00
Chris Lattner
96698a5ec7 Warning foo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14035 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-05 00:17:13 +00:00
Misha Brukman
acc9076e86 Revert ostream back to reference: the only user (llvm-tv) no longer needs it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14029 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-04 21:10:35 +00:00
Chris Lattner
bc2de3c515 Add some constants for VC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14028 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-04 20:58:34 +00:00
Chris Lattner
775b08d9e8 Fix a *really* dumb warning on VC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14025 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-04 20:47:19 +00:00
Chris Lattner
43714d11ea Fix more warnings
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14024 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-04 20:39:05 +00:00
Chris Lattner
fb04197c01 Remove support for printing strings from the cached writer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14023 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-04 20:34:51 +00:00
Chris Lattner
63d64a80bc GCC doesn't like prefix form of cast with two identifiers I guess.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14021 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-04 20:21:53 +00:00
Chris Lattner
c285da73a4 Silence a warning
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14019 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-04 20:10:17 +00:00
Chris Lattner
745feacfd6 Add ssize_t for VC++
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14018 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-04 20:06:33 +00:00
Chris Lattner
5811862f23 <io.h> provides read/write/open/...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14017 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-04 20:05:35 +00:00
Chris Lattner
a833fca56c Visual C has something resembling a stat function, but it doesn't provide S_ISREG
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14016 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-04 20:03:06 +00:00
Chris Lattner
44eaf9b354 Make this work on VC++, pull the HAVE_ALLOCA_H case out instead of duplicating
it.  This code can probably be dramatically simplified, as I suspect that the
pragma and other stuff is not needed with C++ compilers.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14015 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-04 19:25:50 +00:00
Chris Lattner
d1e89d657c Add more needed typedefs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14014 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-04 19:11:04 +00:00
Chris Lattner
2908ca78b0 Add explicit casts to silence warnings. There is no need to use snprintf here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14013 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-04 19:10:30 +00:00
Chris Lattner
6549b82535 Make this work with VC++
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14012 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-04 19:01:49 +00:00
Chris Lattner
4f02562ec1 Fix a nasty bug that caused areAliases to always return false.
Bug fix courtesy of Anshu Dasgupta


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14011 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-04 17:03:11 +00:00
Misha Brukman
a7afa37f3c Clarify documentation and use correct doxygen comment form /// vs. // .
Thanks to Vladimir Prus for corrections.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14009 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-04 14:51:25 +00:00
Chris Lattner
51ae205adf The prototype for ParseCommandLineOptions changed at some point, but this
was never updated.  I guess GCC just ignores the prototype


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13995 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-03 22:07:26 +00:00
Chris Lattner
d924d6b35d Adjust argument to match destination data type
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13993 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-03 21:14:56 +00:00
Chris Lattner
caeb8b4041 Don't use identifiers that start with an _
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13992 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-03 21:12:02 +00:00
Chris Lattner
6bf7ca5f6f Only use the non-standards-compliant std::distance on the compiler that is
buggy, not for all compilers that are not GCC 3


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13990 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-03 18:48:59 +00:00
Misha Brukman
046b1622eb Fix case of doxygen directive \p.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13985 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-03 15:14:00 +00:00
Brian Gaeke
498231bc60 Collapse together the abstract superclass TargetRegInfo and SparcV9RegInfo, its
only concrete implementation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13977 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-03 02:45:09 +00:00
Chris Lattner
36c2a05935 Delete the V9 specific findOptimalStorageSize method, inlining it into all callers.
Substantially clean up all target implementations by having the OPTIONAL get*Info
methods return a pointer instead of a reference.  This allows us to have default
implementations!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13950 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-02 05:53:25 +00:00
Chris Lattner
2a7f15e50b Add a new CopyFile function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13944 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-02 00:51:20 +00:00
Chris Lattner
6db8c2c5ca On win32, process.h provides some of the traditional stuff that unistd
provides.  This seems like a relatively clean way to get it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13936 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-01 23:47:00 +00:00
Alkis Evlogimenos
6924063bf2 Pull Interval class out of LiveIntervals.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13910 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-30 07:46:27 +00:00
Alkis Evlogimenos
1da7e8e0b3 Add comparator useful for natural comparisons on collections with
pointers to objects.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13909 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-30 07:45:09 +00:00
Alkis Evlogimenos
26f5a69e52 When spilling an register, introduce a new temporary for each of its
spills. This allows for more flexibility when allocating registers for
spill code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13907 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-30 07:24:39 +00:00
Alkis Evlogimenos
f717a05698 Remove defs vector from live intervals.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13892 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-29 16:18:57 +00:00
Chris Lattner
3796024fb8 Fix bizzare problems when you include Config/dlfcn and Config/windows.h in
the same xlation unit


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13885 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-28 21:07:11 +00:00
Chris Lattner
eaca89b48e Eliminate this form of SymbolTable::remove. It ignores the type argument
anyway.  Add a form that takes a type_iterator for the C backend.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13873 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-28 05:30:29 +00:00
Chris Lattner
34e40d44c2 Add a new function for the JIT
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13869 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-28 00:58:48 +00:00
Chris Lattner
eb08299518 Add a pair of functions to hide system specific details of mapping a file in for reading.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13863 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-28 00:23:48 +00:00
Chris Lattner
f0f3c06a90 An "autoconf wrapper" for the infamous windows.h file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13849 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-27 20:51:22 +00:00
John Criswell
b2815e0139 Added a check for a new header file.
My apologies for changing config.h.in.  Now you will all have to
re-configure.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13846 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-27 20:40:39 +00:00
Chris Lattner
3166440855 Moved header from include/Support/ to include/llvm/System
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13810 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-27 05:30:18 +00:00
Alkis Evlogimenos
75dbe8eafa Add constructors that take a BasicBlock to append to, to the rest of
the llvm::Instruction hierarchy.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13800 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-27 00:15:23 +00:00
Alkis Evlogimenos
f6e8cb4954 Inline trivial constructors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13797 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-26 22:07:18 +00:00
Reid Spencer
75719bf239 Provide the correct patch for bug 345. The solution is to add a setTypeName
function to llvmAsmParser.y and then use it in the one place in the grammar
that needs it. Also had to make Type::setName public because setTypeName
needs it in order to retain compatibility with setValueName.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13795 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-26 21:48:31 +00:00
Reid Spencer
9b41dcfa60 Tighten up checking on SymbolTable interface to make it illegal to pass a
Type* where a Value* is expected.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13794 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-26 21:46:18 +00:00
Alkis Evlogimenos
e5828f1fa7 Refactor common initialization code in private init() functions.
This is a first step in supplying append to basic block constructors
for all instruction types.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13793 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-26 21:41:09 +00:00
Misha Brukman
6f3512865e Fix spelling of doxygen directive.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13791 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-26 17:42:51 +00:00
Reid Spencer
798ff64328 Part of bug 122:
This change removes the BuildBytecodeInfo flag from the SlotCalculator
class. This flag was needed to distinguish between the Bytecode/Writer
and the AsmWriter. Now that AsmWriter doesn't use SlotCalculator, we can
remove this flag and simplify some code. Also, some minor name changes
to CachedWriter.h needed to be committed (missed in previous commit).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13785 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-26 07:37:11 +00:00
Reid Spencer
a85b8cf110 Make the constructor explicit so we can't implicitly convert bool to
SlotTable.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13766 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-25 19:09:25 +00:00
Reid Spencer
293a55f9f0 Adding the initial implementation of the SlotTable class. This class is
the Abstract Data Type that holds slot number values and associates them
with Type* and Value*. The SlotTable is simply the holder of the slot
numbers and provides a controlled interface for building the table. It does
not enforce any particular idiom or functionality for manipulating the slot
numbers.

This is part of bug_122. The SlotCalculator and SlotMachine classes will
follow.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13764 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-25 18:44:51 +00:00
Reid Spencer
e0b295afd6 Removed unused, useless header file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13757 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-25 17:28:35 +00:00
Reid Spencer
ec55b08fd0 Give Type its own dump() method in preparation for Type != Value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13746 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-25 08:46:04 +00:00
Reid Spencer
bdfb668fee Completely rewrote the class. SymbolTable now separates Type* from Value* in preparation\
for making Type not derive from Value. There are now separate interfaces \
for looking up, finding, and inserting Types and Values. There are also \
three separate iterator interfaces, one for type planes, one for the types \
(type type plane), and one for values within a type plane. See the \
documentation in the Header file.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13745 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-25 08:45:53 +00:00
Reid Spencer
3afbb1ab10 Convert dump() method to call Type::dump() instead of Value::dump().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13744 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-25 08:45:42 +00:00
Chris Lattner
02140b025d Add some helpers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13737 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-25 05:32:13 +00:00
Tanya Lattner
17fb34bf8c Moved MachineBasicBlock deconstructor to cpp file and removed it from LeakDetector to fix memory leak bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13718 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-24 07:14:35 +00:00
Tanya Lattner
792699c46e Added MachineFunction parent* to MachineBasicBlock. Customized ilist template
to set the parent when a MachineBasicBlock is added to a MachineFunction.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13716 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-24 06:11:51 +00:00
Tanya Lattner
0c63e03e04 Changed clone to be const.
Changed copy constructor to set parent, prev, and next pointers to null.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13706 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-24 03:14:18 +00:00
Chris Lattner
942ae1a07d Add the new GC intrinsics
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13686 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-23 21:16:33 +00:00
Chris Lattner
bab838e76d Add a new prototype
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13685 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-23 21:16:13 +00:00
Chris Lattner
ab8c565768 Several *major* changes to the AA interfaces:
1. Provide interfaces so that clients can update alias analyses to reflect
   the changes made by the transformations.
2. Change how alias analysis implementations work overall.  In particular,
   now clients will automatically forward to chained AA implementations: they
   don't have to remember to do it themselves.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13678 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-23 21:12:38 +00:00
Chris Lattner
bc78225518 Add interfaces to update value numbering results
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13677 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-23 21:11:17 +00:00
Chris Lattner
c43e0ae350 Rename a method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13676 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-23 21:10:58 +00:00
Tanya Lattner
b5159ed0cb Fixed up my changes to add support for cloning Machine Instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13665 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-23 20:58:02 +00:00
Alkis Evlogimenos
14d2638e38 Remove virtual destructor from InstVisitor. This class should never be
used through a base pointer/reference so inproper destruction should
never be an issue. Removing this last virtual function also saves 4
bytes off each InstVisitor instance.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13664 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-23 20:54:39 +00:00
Tanya Lattner
466b534a57 Adding support to clone MachineInstr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13661 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-23 19:35:12 +00:00
Vikram S. Adve
6ffd14dd54 Remember the set of leaders. Also compute on demand and cache the equiv
class for each leader.   Finally, rename Elem2ECLeaderMap to Elem2LeaderMap
(most of the changed lines are only due to the latter).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13651 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-23 08:05:14 +00:00