oota-llvm.git
21 years agoUsers can never be null
Chris Lattner [Mon, 6 Oct 2003 17:33:39 +0000 (17:33 +0000)]
Users can never be null

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8895 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoMinor speedups for the instcombine pass
Chris Lattner [Mon, 6 Oct 2003 17:11:01 +0000 (17:11 +0000)]
Minor speedups for the instcombine pass

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8894 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoSpeed up the predicate used to decide when to inline by caching the size
Chris Lattner [Mon, 6 Oct 2003 15:52:43 +0000 (15:52 +0000)]
Speed up the predicate used to decide when to inline by caching the size
of callees between executions.

On eon, in release mode, this changes the inliner from taking 11.5712s
to taking 2.2066s.  In debug mode, it went from taking 14.4148s to
taking 7.0745s.  In release mode, this is a 24.7% speedup of gccas, in
debug mode, it's a total speedup of 11.7%.

This also makes it slightly more aggressive.  This could be because we
are not judging the size of the functions quite as accurately as before.
When we start looking at the performance of the generated code, this can
be investigated further.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8893 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdd # of printed instructions statistic to both the SPARC and X86 LLC backends.
Brian Gaeke [Mon, 6 Oct 2003 15:41:21 +0000 (15:41 +0000)]
Add # of printed instructions statistic to both the SPARC and X86 LLC backends.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8892 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoI wanted to make the top of the page less verbose. Hope this helps.
Brian Gaeke [Mon, 6 Oct 2003 15:30:00 +0000 (15:30 +0000)]
I wanted to make the top of the page less verbose. Hope this helps.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8891 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAvoid doing pointless work. Amazingly, this makes us go faster.
Chris Lattner [Mon, 6 Oct 2003 15:23:43 +0000 (15:23 +0000)]
Avoid doing pointless work.  Amazingly, this makes us go faster.

Running the inliner on 252.eon used to take 48.4763s, now it takes 14.4148s.

In release mode, it went from taking 25.8741s to taking 11.5712s.

This also fixes a FIXME.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8890 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoImplement the NamedRegionTimer class
Chris Lattner [Mon, 6 Oct 2003 15:02:31 +0000 (15:02 +0000)]
Implement the NamedRegionTimer class

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8889 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoDoxygenize class comments. Add new NamedRegionTimer class
Chris Lattner [Mon, 6 Oct 2003 15:02:16 +0000 (15:02 +0000)]
Doxygenize class comments.  Add new NamedRegionTimer class

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8888 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAll of our supported operating systems (so far) and FreeBSD technically
Brian Gaeke [Mon, 6 Oct 2003 03:30:28 +0000 (03:30 +0000)]
All of our supported operating systems (so far) and FreeBSD technically
want you to include <sys/stat.h> for fstat(), struct stat, and friends.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8887 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoHand update the configure script for moved directories
Chris Lattner [Mon, 6 Oct 2003 02:13:00 +0000 (02:13 +0000)]
Hand update the configure script for moved directories

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8886 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoChanges for the move of the support directory back into utils
Chris Lattner [Mon, 6 Oct 2003 02:09:25 +0000 (02:09 +0000)]
Changes for the move of the support directory back into utils

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8885 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoThis changes the PromoteMemToReg function to create "pruned" SSA form, not
Chris Lattner [Sun, 5 Oct 2003 22:19:20 +0000 (22:19 +0000)]
This changes the PromoteMemToReg function to create "pruned" SSA form, not
"minimal" SSA form (in other words, it doesn't insert dead PHIs).  This
speeds up the mem2reg pass very significantly because it doesn't have to
do a lot of frivolous work in many common cases.

In the 252.eon function I have been playing with, this doesn't even insert
the 120 PHI nodes that it used to which were trivially dead (in the process
of promoting 356 alloca instructions overall).  This speeds up the mem2reg
pass from 1.2459s to 0.1284s.  More significantly, the DCE pass used to take
2.4138s to remove the 120 dead PHI nodes that mem2reg constructed, now it
takes 0.0134s (which is the time to scan the function and decide that there
is nothing dead).  So overall, on this one function, we speed things up a
total of 3.5179s, which is a 24.8x speedup!  :)

This change is tested by the Mem2Reg/2003-10-05-DeadPHIInsertion.ll test,
which now passes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8884 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoChange the interface to PromoteMemToReg to also take a DominatorTree
Chris Lattner [Sun, 5 Oct 2003 21:20:13 +0000 (21:20 +0000)]
Change the interface to PromoteMemToReg to also take a DominatorTree

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8883 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agonew testcase
Chris Lattner [Sun, 5 Oct 2003 21:11:57 +0000 (21:11 +0000)]
new testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8882 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoSpeed up the mem2reg transform for allocas which are only read/written in a single
Chris Lattner [Sun, 5 Oct 2003 20:54:03 +0000 (20:54 +0000)]
Speed up the mem2reg transform for allocas which are only read/written in a single
basic block.  This is amazingly common in code generated by the C/C++ front-ends.
This change makes it not have to insert ANY phi nodes, whereas before it would insert
a ton of dead ones which DCE would have to clean up.

Thus, this fix improves compile-time performance of these trivial allocas in two ways:
  1. It doesn't have to do the walking and book-keeping for renaming
  2. It does not insert dead phi nodes for them which would have to
     subsequently be cleaned up.

On my favorite testcase from 252.eon, this special case handles 305 out of
356 promoted allocas in the function.  It speeds up the mem2reg pass from 7.5256s
to 1.2505s.  It inserts 677 fewer dead PHI nodes, which speeds up a subsequent
-dce pass from 18.7524s to 2.4806s.

There are still 120 trivially dead PHI nodes being inserted for variables used
in multiple basic blocks, but they are not handled by this patch.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8881 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoThe support directory no longer exists
Chris Lattner [Sun, 5 Oct 2003 19:33:27 +0000 (19:33 +0000)]
The support directory no longer exists

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8880 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoOops, missed the . files
Chris Lattner [Sun, 5 Oct 2003 19:32:56 +0000 (19:32 +0000)]
Oops, missed the . files

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8879 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoMove support/lib into lib/Support
Chris Lattner [Sun, 5 Oct 2003 19:32:12 +0000 (19:32 +0000)]
Move support/lib into lib/Support
Move support/tools into utils

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8878 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoRevert back to keeping Burg and TableGen in the utils directory
Chris Lattner [Sun, 5 Oct 2003 19:28:27 +0000 (19:28 +0000)]
Revert back to keeping Burg and TableGen in the utils directory

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8876 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoMove support/tools/* back into utils
Chris Lattner [Sun, 5 Oct 2003 19:27:59 +0000 (19:27 +0000)]
Move support/tools/* back into utils

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8875 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoMove support/lib/Support back to lib/Support
Chris Lattner [Sun, 5 Oct 2003 19:24:38 +0000 (19:24 +0000)]
Move support/lib/Support back to lib/Support

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8874 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoThe sparc backend now support invoke, but still doesn't support unwind
Chris Lattner [Sun, 5 Oct 2003 19:17:10 +0000 (19:17 +0000)]
The sparc backend now support invoke, but still doesn't support unwind

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8873 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdd support for the Invoke instruction by using the LowerInvoke pass
Chris Lattner [Sun, 5 Oct 2003 19:16:09 +0000 (19:16 +0000)]
Add support for the Invoke instruction by using the LowerInvoke pass

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8872 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoInstead of hacking in custom support for Invoke/Unwind, use the LowerInvoke pass
Chris Lattner [Sun, 5 Oct 2003 19:15:47 +0000 (19:15 +0000)]
Instead of hacking in custom support for Invoke/Unwind, use the LowerInvoke pass

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8871 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdd new prototype for createLowerInvokePass(). Make simplifycfg be a
Chris Lattner [Sun, 5 Oct 2003 19:15:13 +0000 (19:15 +0000)]
Add new prototype for createLowerInvokePass().  Make simplifycfg be a
functionpass

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8870 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoInitial checkin of the LLVM->LLVM transform to support code generators which
Chris Lattner [Sun, 5 Oct 2003 19:14:42 +0000 (19:14 +0000)]
Initial checkin of the LLVM->LLVM transform to support code generators which
do not support stack unwinding yet

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8869 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agosimplify-cfg is really a function pass
Chris Lattner [Sun, 5 Oct 2003 19:14:16 +0000 (19:14 +0000)]
simplify-cfg is really a function pass

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8868 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoBe more careful handling PHI nodes, which might be of potentially high degree.
Chris Lattner [Sun, 5 Oct 2003 17:44:18 +0000 (17:44 +0000)]
Be more careful handling PHI nodes, which might be of potentially high degree.
This reduces the time to verify a function from eon with a large number of
large PHI nodes from 22996s (6.38 hours) to 10.5499s

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8866 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoThe first PHI node may be null, scan for the first non-null one
Chris Lattner [Sun, 5 Oct 2003 05:34:39 +0000 (05:34 +0000)]
The first PHI node may be null, scan for the first non-null one

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8865 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoThe VersionNumbers vector is only used during PHI placement. Turn it into an argumen...
Chris Lattner [Sun, 5 Oct 2003 04:33:22 +0000 (04:33 +0000)]
The VersionNumbers vector is only used during PHI placement.  Turn it into an argument, allowing us to get rid of the vector.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8864 91177308-0d34-0410-b5e6-96231b3b80d8

21 years ago* Update file header comment
Chris Lattner [Sun, 5 Oct 2003 04:26:39 +0000 (04:26 +0000)]
* Update file header comment
*** Revamp the code which handled unreachable code in the function.  Now the
    code is much more efficient for high-degree basic blocks, such as those
    that occur in the 252.eon SPEC benchmark.

For the interested, the time to promote a SINGLE alloca in _ZN7mrScene4ReadERSi
function used to be > 3.5s.  Now it is < .075s.  The function has a LOT of
allocas in it, so it appeared to be infinite looping, this should make it much
nicer.  :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8863 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoSimplify the loop a bit
Chris Lattner [Sun, 5 Oct 2003 03:45:44 +0000 (03:45 +0000)]
Simplify the loop a bit

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8862 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoThere is no need for separate WriteSets and PhiNodeBlocks lists. It is just a
Chris Lattner [Sun, 5 Oct 2003 03:39:10 +0000 (03:39 +0000)]
There is no need for separate WriteSets and PhiNodeBlocks lists.  It is just a
work-list of value definitions.  This allows elimination of the explicit
'iterative' step of the algorithm, and also reuses temporary memory better.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8861 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoThe PhiNodes 2D vector is only used during PHI node placement. It doesn't
Chris Lattner [Sun, 5 Oct 2003 03:26:25 +0000 (03:26 +0000)]
The PhiNodes 2D vector is only used during PHI node placement.  It doesn't
need to be an instance variable!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8860 91177308-0d34-0410-b5e6-96231b3b80d8

21 years ago* Document instance vars better
Chris Lattner [Sun, 5 Oct 2003 03:16:07 +0000 (03:16 +0000)]
* Document instance vars better
* Fuse two parallel loops
* Use a more specific type for AllocaLookup

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8859 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoTwo small cleanups/speedups:
Chris Lattner [Sun, 5 Oct 2003 02:37:36 +0000 (02:37 +0000)]
Two small cleanups/speedups:
 * Do not insert a new entry into NewPhiNodes during the rename pass if there are no PHIs in a block.
 * Do not compute WriteSets in parallel

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8858 91177308-0d34-0410-b5e6-96231b3b80d8

21 years ago* Minor cleanups
Chris Lattner [Sun, 5 Oct 2003 01:52:53 +0000 (01:52 +0000)]
* Minor cleanups
* Eliminate the KillList instance variable, instead, just delete loads and
  stores as they are "renamed", and delete allocas when they are done
* Make the 'visited' set an instance variable to avoid passing it on the stack.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8857 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoOutput a very high-precision number
Chris Lattner [Sun, 5 Oct 2003 00:41:07 +0000 (00:41 +0000)]
Output a very high-precision number

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8856 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoA couple of minor code cleanups.
Chris Lattner [Sun, 5 Oct 2003 00:40:51 +0000 (00:40 +0000)]
A couple of minor code cleanups.
Print literal doubles using ftostr instead of <<, because it yields higher precision numbers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8855 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoType tables are now AbstractTypeUsers. This allows them to merge together
Chris Lattner [Sun, 5 Oct 2003 00:17:43 +0000 (00:17 +0000)]
Type tables are now AbstractTypeUsers.  This allows them to merge together
constants as necessary due to type resolution.  With this change, the
following spec benchmarks now link: 176.gcc, 177.mesa, 252.eon,
253.perlbmk, & 300.twolf.  IOW, all SPEC INT and FP benchmarks now link.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8853 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdd some new methods to forward to
Chris Lattner [Sun, 5 Oct 2003 00:13:28 +0000 (00:13 +0000)]
Add some new methods to forward to

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8852 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoRename AbstractModuleProvider -> ModuleProvider, to match the header file name,
Chris Lattner [Sat, 4 Oct 2003 20:14:59 +0000 (20:14 +0000)]
Rename AbstractModuleProvider -> ModuleProvider, to match the header file name,
and because, while the class used by the interface is abstract, the actual
concept is not.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8850 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoTransform two methods to return pointers directly instead of returning them
Chris Lattner [Sat, 4 Oct 2003 20:00:03 +0000 (20:00 +0000)]
Transform two methods to return pointers directly instead of returning them
as 'by reference' arguments.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8849 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoUse V for values, not D.
Chris Lattner [Sat, 4 Oct 2003 19:29:21 +0000 (19:29 +0000)]
Use V for values, not D.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8848 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoDo not leak the ModuleProvider if releaseModule() throws.
Chris Lattner [Sat, 4 Oct 2003 19:19:37 +0000 (19:19 +0000)]
Do not leak the ModuleProvider if releaseModule() throws.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8847 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoConstants are not getting merged together correctly when types are resolved
Chris Lattner [Sat, 4 Oct 2003 18:27:51 +0000 (18:27 +0000)]
Constants are not getting merged together correctly when types are resolved

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8846 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoMinor random speedup: make Constant::getNullValue only call ConstantFOO::get
Chris Lattner [Fri, 3 Oct 2003 19:34:51 +0000 (19:34 +0000)]
Minor random speedup: make Constant::getNullValue only call ConstantFOO::get
once!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8845 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoExplicit copy ctors are no longer needed
Chris Lattner [Fri, 3 Oct 2003 19:02:41 +0000 (19:02 +0000)]
Explicit copy ctors are no longer needed

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8844 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoMinor cleanups
Chris Lattner [Fri, 3 Oct 2003 18:57:54 +0000 (18:57 +0000)]
Minor cleanups

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8843 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoThis checkin basically amounts to a complete rewrite of the type-resolution
Chris Lattner [Fri, 3 Oct 2003 18:46:24 +0000 (18:46 +0000)]
This checkin basically amounts to a complete rewrite of the type-resolution
machinery.  This dramatically simplifies how things works, removes irritating
little corner cases, and overall improves speed and reliability.

Highlights of this change are:

1. The exponential algorithm built into the code is now gone.  For example
   the time to disassemble one bytecode file from the mesa benchmark went
   from taking 12.5s to taking 0.16s.
2. The linker bugs should be dramatically reduced.  The one remaining bug
   has to do with constant handling, which I actually introduced in
   "union-find" checkins.
3. The code is much easier to follow, as a result of fewer special cases.
   It's probably also smaller.  yaay.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8842 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoChanged all of these tests to be TestRunner tests (or, at least they can be
John Criswell [Fri, 3 Oct 2003 18:42:25 +0000 (18:42 +0000)]
Changed all of these tests to be TestRunner tests (or, at least they can be
TestRunner tests).
This makes creating the new test database class easier to implement.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8841 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoThese methods are dead, remove them. Because the bodies will soon be
Chris Lattner [Fri, 3 Oct 2003 18:39:57 +0000 (18:39 +0000)]
These methods are dead, remove them.  Because the bodies will soon be
ressurected, just ifdef them out for now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8840 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoThese methods are dead, remove them
Chris Lattner [Fri, 3 Oct 2003 18:39:40 +0000 (18:39 +0000)]
These methods are dead, remove them

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8839 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoRenamed these tests so that they don't contain extra periods.
John Criswell [Fri, 3 Oct 2003 18:24:47 +0000 (18:24 +0000)]
Renamed these tests so that they don't contain extra periods.
This interferes with QMTest and the new test database.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8838 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdded links to the C and C++ frontends.
John Criswell [Fri, 3 Oct 2003 13:48:27 +0000 (13:48 +0000)]
Added links to the C and C++ frontends.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8836 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdding basic documentation for the LLVM C and C++ frontends.
John Criswell [Fri, 3 Oct 2003 13:45:55 +0000 (13:45 +0000)]
Adding basic documentation for the LLVM C and C++ frontends.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8835 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoDramatically simplify DerivedType::refineAbstractTypeToInternal
Chris Lattner [Fri, 3 Oct 2003 04:48:21 +0000 (04:48 +0000)]
Dramatically simplify DerivedType::refineAbstractTypeToInternal

This makes use of the new PATypeHolder's to keep types from being deleted
prematurely, instead of the wierd "self reference" garbage.  This is easier
to understand and more efficient as well.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8834 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoMake the PATypeHolder use a simple union-find implementation to handle
Chris Lattner [Thu, 2 Oct 2003 23:35:57 +0000 (23:35 +0000)]
Make the PATypeHolder use a simple union-find implementation to handle
merging of types.  This makes it MUCH more efficient than before, also
making things simpler.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8833 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoThere is no need for BytecodeParser to be an AbstractTypeUser. Instead, it
Chris Lattner [Thu, 2 Oct 2003 20:26:18 +0000 (20:26 +0000)]
There is no need for BytecodeParser to be an AbstractTypeUser.  Instead, it
can just use PATypeHolders

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8832 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoThere is no reason for Value to be an AbstractTypeUser. This just makes things
Chris Lattner [Thu, 2 Oct 2003 19:44:40 +0000 (19:44 +0000)]
There is no reason for Value to be an AbstractTypeUser.  This just makes things
significantly more complete.  Instead, just make DerivedType's AbstractTypeUser's,
and make Value contain a PATypeHolder.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8828 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoThere is no reason for Value to be an AbstractTypeUser. This just makes things
Chris Lattner [Thu, 2 Oct 2003 19:44:23 +0000 (19:44 +0000)]
There is no reason for Value to be an AbstractTypeUser.  This just makes things
significantly more complete.  Instead, just make DerivedType's AbstractTypeUser's,
and make Value contain a PATypeHolder.  This will also be more efficient in the
future.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8827 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoThere is no reason for the PATypeHolder class to derive from the
Chris Lattner [Thu, 2 Oct 2003 19:08:18 +0000 (19:08 +0000)]
There is no reason for the PATypeHolder class to derive from the
PATypeHandle class

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8825 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoRemoved the check for purify as we don't support its use at present.
John Criswell [Thu, 2 Oct 2003 19:02:30 +0000 (19:02 +0000)]
Removed the check for purify as we don't support its use at present.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8824 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoFixed the conditional targets for postscript files and tags.
John Criswell [Thu, 2 Oct 2003 19:02:02 +0000 (19:02 +0000)]
Fixed the conditional targets for postscript files and tags.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8823 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoThe objects mapped are really PATypeHolders, not PATypeHandles
Chris Lattner [Thu, 2 Oct 2003 19:00:34 +0000 (19:00 +0000)]
The objects mapped are really PATypeHolders, not PATypeHandles

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8822 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoRemove obsolete tests which:
Chris Lattner [Thu, 2 Oct 2003 18:48:35 +0000 (18:48 +0000)]
Remove obsolete tests which:
A. do not just test LLC, or even the sparc backend
B. are cut down versions of tests that exist in other places

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8821 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoCheckin new file, reduced by Brian
Chris Lattner [Thu, 2 Oct 2003 18:26:11 +0000 (18:26 +0000)]
Checkin new file, reduced by Brian

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8820 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoMoved enum and command-line option in separate file. Also added function that returns...
Alkis Evlogimenos [Thu, 2 Oct 2003 16:57:49 +0000 (16:57 +0000)]
Moved enum and command-line option in separate file. Also added function that returns the user selected register allocator to the caller.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8819 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdd ideas and small revisions from Vikram
Chris Lattner [Thu, 2 Oct 2003 16:38:05 +0000 (16:38 +0000)]
Add ideas and small revisions from Vikram

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8818 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoImplement InstCombine/add.ll:test17 & 18
Chris Lattner [Thu, 2 Oct 2003 15:11:26 +0000 (15:11 +0000)]
Implement InstCombine/add.ll:test17 & 18

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8817 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdd new testcases
Chris Lattner [Thu, 2 Oct 2003 15:11:09 +0000 (15:11 +0000)]
Add new testcases

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8816 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoChange llc command line for register allocators
Alkis Evlogimenos [Thu, 2 Oct 2003 06:13:19 +0000 (06:13 +0000)]
Change llc command line for register allocators

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8815 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agofix spleling
Chris Lattner [Thu, 2 Oct 2003 05:09:46 +0000 (05:09 +0000)]
fix spleling

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8814 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoadd note about .a files
Chris Lattner [Thu, 2 Oct 2003 05:07:23 +0000 (05:07 +0000)]
add note about .a files

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8813 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoInitial checkin of the LLVM 1.0 release notes
Chris Lattner [Thu, 2 Oct 2003 04:57:28 +0000 (04:57 +0000)]
Initial checkin of the LLVM 1.0 release notes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8812 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoUse std::string::size_type for for ColonPos to stop gcc from giving a warning
Alkis Evlogimenos [Wed, 1 Oct 2003 22:49:22 +0000 (22:49 +0000)]
Use std::string::size_type for for ColonPos to stop gcc from giving a warning

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8811 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoRemove obsolete scoped pred and succ iterator typedefs
Chris Lattner [Wed, 1 Oct 2003 22:28:39 +0000 (22:28 +0000)]
Remove obsolete scoped pred and succ iterator typedefs

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8810 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoUse graph traits to perform generic interval construction
Chris Lattner [Wed, 1 Oct 2003 22:28:00 +0000 (22:28 +0000)]
Use graph traits to perform generic interval construction

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8809 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdd graph traits specializations for intervals
Chris Lattner [Wed, 1 Oct 2003 22:27:36 +0000 (22:27 +0000)]
Add graph traits specializations for intervals

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8808 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAmazingly enough, we actually do some stuff around here. Now if we could
Chris Lattner [Wed, 1 Oct 2003 21:49:55 +0000 (21:49 +0000)]
Amazingly enough, we actually do some stuff around here.  Now if we could
just remember to update the open projects list... :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8807 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoMake sure to include the "support" directory
Chris Lattner [Wed, 1 Oct 2003 21:12:46 +0000 (21:12 +0000)]
Make sure to include the "support" directory

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8806 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoRevert previous change. For some reason this went into the main branch
Alkis Evlogimenos [Wed, 1 Oct 2003 19:40:13 +0000 (19:40 +0000)]
Revert previous change. For some reason this went into the main branch

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8805 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdded command line option for linear scan allocator
Alkis Evlogimenos [Wed, 1 Oct 2003 19:38:10 +0000 (19:38 +0000)]
Added command line option for linear scan allocator

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8804 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoThe comment seems irrelevant as the pass has become a BasicBlock pass.
Misha Brukman [Wed, 1 Oct 2003 05:24:50 +0000 (05:24 +0000)]
The comment seems irrelevant as the pass has become a BasicBlock pass.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8803 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoCorrected usage synopsis.
John Criswell [Tue, 30 Sep 2003 22:55:44 +0000 (22:55 +0000)]
Corrected usage synopsis.
Added information regarding additional LLVM passes used, input defaults, and
output defaults.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8802 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoMake sure to get the definition of getRegisterAllocator
Chris Lattner [Tue, 30 Sep 2003 22:24:00 +0000 (22:24 +0000)]
Make sure to get the definition of getRegisterAllocator

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8801 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoNew testcase that was not correctly handled
Chris Lattner [Tue, 30 Sep 2003 21:46:23 +0000 (21:46 +0000)]
New testcase that was not correctly handled

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8800 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoThis bug is not fixed, but will be in the future eventually
Chris Lattner [Tue, 30 Sep 2003 21:31:25 +0000 (21:31 +0000)]
This bug is not fixed, but will be in the future eventually

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8799 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agonew testcase
Chris Lattner [Tue, 30 Sep 2003 21:29:27 +0000 (21:29 +0000)]
new testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8798 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoForward declare a class
Chris Lattner [Tue, 30 Sep 2003 20:15:40 +0000 (20:15 +0000)]
Forward declare a class

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8797 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoThis got merged into Passes.h
Chris Lattner [Tue, 30 Sep 2003 20:15:32 +0000 (20:15 +0000)]
This got merged into Passes.h

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8796 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoRegisterAllocation.h is going away
Chris Lattner [Tue, 30 Sep 2003 20:15:04 +0000 (20:15 +0000)]
RegisterAllocation.h is going away

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8795 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoInclude the sparc register in this file
Chris Lattner [Tue, 30 Sep 2003 20:14:43 +0000 (20:14 +0000)]
Include the sparc register in this file

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8794 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoinclude passes.h which defines the interface this file exposes
Chris Lattner [Tue, 30 Sep 2003 20:13:59 +0000 (20:13 +0000)]
include passes.h which defines the interface this file exposes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8793 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoChanged TestRunner test class so that it replaces %llvmgcc and %llvmgxx
John Criswell [Tue, 30 Sep 2003 19:56:36 +0000 (19:56 +0000)]
Changed TestRunner test class so that it replaces %llvmgcc and %llvmgxx
instead of %gcc and %gxx.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8792 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoRemoved Makefile for CompileFail tests. They are now run by QMTest and are
John Criswell [Tue, 30 Sep 2003 19:41:15 +0000 (19:41 +0000)]
Removed Makefile for CompileFail tests.  They are now run by QMTest and are
located under llvm/test/Regression/C++Frontend.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8791 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdjusted for the new TestRunner test class. This replaces %gcc and %g++ with
John Criswell [Tue, 30 Sep 2003 19:28:26 +0000 (19:28 +0000)]
Adjusted for the new TestRunner test class.  This replaces %gcc and %g++ with
the names of the LLVM C and C++ frontends, respectively.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8789 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdded the CXXTest test class.
John Criswell [Tue, 30 Sep 2003 19:04:08 +0000 (19:04 +0000)]
Added the CXXTest test class.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8788 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoThis makefile is completely wrong, don't even bother to keep it
Chris Lattner [Tue, 30 Sep 2003 18:59:24 +0000 (18:59 +0000)]
This makefile is completely wrong, don't even bother to keep it

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8786 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoThese tests got moved to test/Programs/SingleSource/Regression/C++/EH
Chris Lattner [Tue, 30 Sep 2003 18:57:56 +0000 (18:57 +0000)]
These tests got moved to  test/Programs/SingleSource/Regression/C++/EH

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8785 91177308-0d34-0410-b5e6-96231b3b80d8