oota-llvm.git
20 years agoUpdated to handle the new SPEC95 configuration options.
John Criswell [Tue, 10 Feb 2004 22:36:35 +0000 (22:36 +0000)]
Updated to handle the new SPEC95 configuration options.

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

20 years agoAdded support for configuring SPEC95.
John Criswell [Tue, 10 Feb 2004 22:29:06 +0000 (22:29 +0000)]
Added support for configuring SPEC95.

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

20 years agoAn initial implementation of an LLVM ProfileInfo class which is designed to
Chris Lattner [Tue, 10 Feb 2004 22:11:42 +0000 (22:11 +0000)]
An initial implementation of an LLVM ProfileInfo class which is designed to
eventually allow Passes to use profiling information to direct them.

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

20 years agoSprinkle liberally with comments, saute with doxygen until readable.
Misha Brukman [Tue, 10 Feb 2004 21:49:59 +0000 (21:49 +0000)]
Sprinkle liberally with comments, saute with doxygen until readable.

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

20 years agoDoxygenify comment.
Misha Brukman [Tue, 10 Feb 2004 21:48:12 +0000 (21:48 +0000)]
Doxygenify comment.

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

20 years agoUrg, the X86 backend DOES use virtual register operands. :(
Chris Lattner [Tue, 10 Feb 2004 21:43:11 +0000 (21:43 +0000)]
Urg, the X86 backend DOES use virtual register operands. :(

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

20 years agoRemove and simplify some of the bewildering collection of isFOORegister
Chris Lattner [Tue, 10 Feb 2004 21:21:17 +0000 (21:21 +0000)]
Remove and simplify some of the bewildering collection of isFOORegister
methods which have strangely different semantics in different backends,
and noone knew what any did.

Getting rid of these ALSO allows the dependence of MachineInstr.h on
MRegisterInfo.h to be removed, which makes me much happier, and probably
alkis too.  :)

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

20 years agoRemove some unneeded stuff
Chris Lattner [Tue, 10 Feb 2004 21:19:49 +0000 (21:19 +0000)]
Remove some unneeded stuff

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

20 years agoAdd #include
Chris Lattner [Tue, 10 Feb 2004 21:18:55 +0000 (21:18 +0000)]
Add #include

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

20 years agoDo not use MachineOperand::isVirtualRegister either!
Chris Lattner [Tue, 10 Feb 2004 21:12:22 +0000 (21:12 +0000)]
Do not use MachineOperand::isVirtualRegister either!

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

20 years agoStop using this method
Chris Lattner [Tue, 10 Feb 2004 21:12:06 +0000 (21:12 +0000)]
Stop using this method

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

20 years agoRemove uses of MachineOperand::isVirtualRegister
Chris Lattner [Tue, 10 Feb 2004 20:55:47 +0000 (20:55 +0000)]
Remove uses of MachineOperand::isVirtualRegister

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

20 years agoRemvoe use of MO.isVirtualRegister(), turn an assertion into an assert()
Chris Lattner [Tue, 10 Feb 2004 20:47:24 +0000 (20:47 +0000)]
Remvoe use of MO.isVirtualRegister(), turn an assertion into an assert()

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

20 years agoEliminate MachineOperand::isPhysicalRegister. The X86 backend should use
Chris Lattner [Tue, 10 Feb 2004 20:42:11 +0000 (20:42 +0000)]
Eliminate MachineOperand::isPhysicalRegister.  The X86 backend should use
MRegisterInfo::isPhysicalRegister(MO.getReg()) and the Sparc backend should
use isMachineRegister()

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

20 years agoEliminate users of MachineOperand::isPhysicalRegister
Chris Lattner [Tue, 10 Feb 2004 20:41:10 +0000 (20:41 +0000)]
Eliminate users of MachineOperand::isPhysicalRegister

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

20 years agoRemove use of isPhysicalRegister
Chris Lattner [Tue, 10 Feb 2004 20:35:42 +0000 (20:35 +0000)]
Remove use of isPhysicalRegister

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

20 years agoDon't use MachineOperator::is(Phys|Virt)Register
Chris Lattner [Tue, 10 Feb 2004 20:31:28 +0000 (20:31 +0000)]
Don't use MachineOperator::is(Phys|Virt)Register

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

20 years agoSimplify condition, this does not change the predicate at all though
Chris Lattner [Tue, 10 Feb 2004 20:30:40 +0000 (20:30 +0000)]
Simplify condition, this does not change the predicate at all though

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

20 years agoTighten up checks
Chris Lattner [Tue, 10 Feb 2004 20:25:13 +0000 (20:25 +0000)]
Tighten up checks

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

20 years agoRight, define the LPROF variable
Chris Lattner [Tue, 10 Feb 2004 19:46:14 +0000 (19:46 +0000)]
Right, define the LPROF variable

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

20 years agoMake sure to copy the null terminator at the end of the argv list. Some
Chris Lattner [Tue, 10 Feb 2004 19:14:44 +0000 (19:14 +0000)]
Make sure to copy the null terminator at the end of the argv list.  Some
programs use it instead of argc.

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

20 years ago* Added class comments
Misha Brukman [Tue, 10 Feb 2004 18:44:16 +0000 (18:44 +0000)]
* Added class comments
* Doxygenified existing comments
* Compactified code to be more consistent

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

20 years agoFix documentation bugs
Chris Lattner [Tue, 10 Feb 2004 18:04:24 +0000 (18:04 +0000)]
Fix documentation bugs

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

20 years agoMake block profiling the default
Chris Lattner [Tue, 10 Feb 2004 18:01:50 +0000 (18:01 +0000)]
Make block profiling the default
add a new -function argument
Add a new -o argument to specify where to put llvmprof.out data

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

20 years agoAllow the program to take a '-llvmprof-output filename' option to specify
Chris Lattner [Tue, 10 Feb 2004 18:01:00 +0000 (18:01 +0000)]
Allow the program to take a '-llvmprof-output filename' option to specify
where to output the profiling data, if llvmprof.out is not good enough.

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

20 years agoinitialization calls now return argc. If the program uses the argc value
Chris Lattner [Tue, 10 Feb 2004 17:41:01 +0000 (17:41 +0000)]
initialization calls now return argc.  If the program uses the argc value
passed into main, make sure they use the return value of the init call
instead of the one passed in.

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

20 years agoMake the initialization calls return argc.
Chris Lattner [Tue, 10 Feb 2004 17:36:25 +0000 (17:36 +0000)]
Make the initialization calls return argc.

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

20 years agoDoxygen-ify comments, make function prototypes more consistent in format.
Misha Brukman [Tue, 10 Feb 2004 16:39:05 +0000 (16:39 +0000)]
Doxygen-ify comments, make function prototypes more consistent in format.

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

20 years agoMention install, RPM, autoconf improvements
Brian Gaeke [Tue, 10 Feb 2004 05:22:23 +0000 (05:22 +0000)]
Mention install, RPM, autoconf improvements

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

20 years agoBug fixed
Chris Lattner [Tue, 10 Feb 2004 05:19:54 +0000 (05:19 +0000)]
Bug fixed

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

20 years agoFix PR228: [sparc] Boolean constants are emitted as true and false
Chris Lattner [Tue, 10 Feb 2004 05:16:44 +0000 (05:16 +0000)]
Fix PR228: [sparc] Boolean constants are emitted as true and false

I will observe that the concept of using WriteAsOperand is completely broken,
but then we all knew that, didn't we?

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

20 years agoRPM spec file for LLVM tools and libraries.
Brian Gaeke [Tue, 10 Feb 2004 03:57:51 +0000 (03:57 +0000)]
RPM spec file for LLVM tools and libraries.

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

20 years agoShould fix pr220 - "make install" doesn't install header files when
Brian Gaeke [Tue, 10 Feb 2004 01:10:01 +0000 (01:10 +0000)]
Should fix pr220  - "make install" doesn't install header files when
BUILD_SRC_ROOT != BUILD_OBJ_ROOT

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

20 years agoDoxygenify comments.
Misha Brukman [Mon, 9 Feb 2004 23:18:42 +0000 (23:18 +0000)]
Doxygenify comments.

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

20 years agoMove this testcase out of /home/vadve/lattner/cvs/llvm/test/Programs/LLVMSource,
Chris Lattner [Mon, 9 Feb 2004 22:52:25 +0000 (22:52 +0000)]
Move this testcase out of /home/vadve/lattner/cvs/llvm/test/Programs/LLVMSource,
as it fails.

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

20 years agoOnly add the global variable with the abort message if an unwind actually
Chris Lattner [Mon, 9 Feb 2004 22:48:47 +0000 (22:48 +0000)]
Only add the global variable with the abort message if an unwind actually
occurs in the program.

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

20 years agoAdd global methods that prevent us from using ilist::iterators as
Alkis Evlogimenos [Mon, 9 Feb 2004 22:40:50 +0000 (22:40 +0000)]
Add global methods that prevent us from using ilist::iterators as
random access iterators.

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

20 years agoFix PR#226: When emitting padding, always emit it as bytes. Bytes can be
John Criswell [Mon, 9 Feb 2004 22:15:33 +0000 (22:15 +0000)]
Fix PR#226: When emitting padding, always emit it as bytes.  Bytes can be
placed into any alignment situation.

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

20 years agoMany things have been fixed, so move them out of the "known problems" section
Chris Lattner [Mon, 9 Feb 2004 21:22:51 +0000 (21:22 +0000)]
Many things have been fixed, so move them out of the "known problems" section
Also, PR137 is a code quality PR, not a bug

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

20 years agoQOI bug fixed
Chris Lattner [Mon, 9 Feb 2004 21:16:16 +0000 (21:16 +0000)]
QOI bug fixed

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

20 years agoIt turns out that the two dimensional vectors were causing big slowdowns
Chris Lattner [Mon, 9 Feb 2004 21:03:38 +0000 (21:03 +0000)]
It turns out that the two dimensional vectors were causing big slowdowns
in this for programs with lots of types (like the testcase in PR224).
The problem was that the type ID that the outer vector was using was not
very dense (as many types are getting resolved), so the vector is large
and gets reallocated a lot.

Since there are a lot of values in the program (the .ll file is 10M),
each reallocation has to copy the subvectors, which is also quite slow
(this wouldn't be a problem if C++ supported move semantics, but it
doesn't, at least not yet :(

Changing the outer data structure to a map speeds a release build of
llvm-as up from 11.21s to 5.13s on the testcase in PR224.

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

20 years agoRemove the statistics
Chris Lattner [Mon, 9 Feb 2004 21:01:23 +0000 (21:01 +0000)]
Remove the statistics

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

20 years agoSpeed up type resolution some more. On the testcase in PR224, for example,
Chris Lattner [Mon, 9 Feb 2004 20:23:44 +0000 (20:23 +0000)]
Speed up type resolution some more.  On the testcase in PR224, for example,
this speeds up a release llvm-as from 21.95s to 11.21s, because before it
would do an expensive traversal of the type-graph of every type resolved.

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

20 years agoWhen resolving upreferences, if multiple uprefs will be resolved to the same
Chris Lattner [Mon, 9 Feb 2004 18:53:54 +0000 (18:53 +0000)]
When resolving upreferences, if multiple uprefs will be resolved to the same
type at the same time, resolve the upreferences to each other before resolving
it to the outer type.  This shaves off some time from the testcase in PR224, from
25.41s -> 21.72s.

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

20 years agoSchedGraph doesn't need to be friends with SchedGraphNodeCommon anymore.
Brian Gaeke [Mon, 9 Feb 2004 18:43:06 +0000 (18:43 +0000)]
SchedGraph doesn't need to be friends with SchedGraphNodeCommon anymore.

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

20 years agoMove InstrSchedule's iterator begin/end methods inline.
Brian Gaeke [Mon, 9 Feb 2004 18:42:46 +0000 (18:42 +0000)]
Move InstrSchedule's iterator begin/end methods inline.

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

20 years agoMake SchedGraph::dump() use SchedGraphNodeCommon's const_iterator
Brian Gaeke [Mon, 9 Feb 2004 18:42:05 +0000 (18:42 +0000)]
Make SchedGraph::dump() use SchedGraphNodeCommon's const_iterator
instead of randomly groping about inside its outEdges array.
Make SchedGraph::addDummyEdges() use getNumOutEdges() instead of
outEdges.size().
Get rid of ifdefed-out code in SchedGraph::buildGraph().

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

20 years agoImplement the hashing scheme in an attempt to speed up the "slow" case in
Chris Lattner [Mon, 9 Feb 2004 18:32:40 +0000 (18:32 +0000)]
Implement the hashing scheme in an attempt to speed up the "slow" case in
type resolution.  Unfortunately it doesn't help.

Also delete some dead debugging code.

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

20 years agoFix bug in installation process: MKDIR must respect DESTDIR.
Brian Gaeke [Mon, 9 Feb 2004 17:38:52 +0000 (17:38 +0000)]
Fix bug in installation process: MKDIR must respect DESTDIR.

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

20 years agoThis debugging hook is no longer needed.
Chris Lattner [Mon, 9 Feb 2004 17:20:52 +0000 (17:20 +0000)]
This debugging hook is no longer needed.

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

20 years agoCode cleanup in preparation for later changes. Now that ContainedTy's are
Chris Lattner [Mon, 9 Feb 2004 16:35:14 +0000 (16:35 +0000)]
Code cleanup in preparation for later changes.  Now that ContainedTy's are
consistent across the various type classes, we can factor out a LOT more
almost-identical code.  Also, add a couple of temporary statistics.

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

20 years agoNow that all of the derived types have disciplined interfaces, we can eliminate
Chris Lattner [Mon, 9 Feb 2004 05:40:24 +0000 (05:40 +0000)]
Now that all of the derived types have disciplined interfaces, we can eliminate
all of the ad-hoc storage of contained types.  This allows getContainedType to
not be virtual, and allows us to entirely delete the TypeIterator class.

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

20 years agoDon't depend on auto data conversion
Chris Lattner [Mon, 9 Feb 2004 05:16:30 +0000 (05:16 +0000)]
Don't depend on auto data conversion

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

20 years agoAdjust to the changed StructType interface. In particular, getElementTypes() is...
Chris Lattner [Mon, 9 Feb 2004 04:37:31 +0000 (04:37 +0000)]
Adjust to the changed StructType interface.  In particular, getElementTypes() is gone.

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

20 years agoIncrease encapsulation of the StructType class, eliminating the getElementTypes(...
Chris Lattner [Mon, 9 Feb 2004 04:36:50 +0000 (04:36 +0000)]
Increase encapsulation of the StructType class, eliminating the getElementTypes() member

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

20 years agoMethod is gone
Chris Lattner [Mon, 9 Feb 2004 04:14:46 +0000 (04:14 +0000)]
Method is gone

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

20 years agoStart using the new and improve interface to FunctionType arguments
Chris Lattner [Mon, 9 Feb 2004 04:14:01 +0000 (04:14 +0000)]
Start using the new and improve interface to FunctionType arguments

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

20 years agoImprove encapsulation in the FunctionType class, by adding param_(iterator/begin...
Chris Lattner [Mon, 9 Feb 2004 04:12:57 +0000 (04:12 +0000)]
Improve encapsulation in the FunctionType class, by adding param_(iterator/begin/end)
members, and eliminating the getParamTypes() method, and the associated typedef.

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

20 years agoThis #include is not needed, it should have been removed with the last patch
Chris Lattner [Mon, 9 Feb 2004 03:22:32 +0000 (03:22 +0000)]
This #include is not needed, it should have been removed with the last patch

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

20 years agoInstead of searching the entire type graph for a type to determine if it
Chris Lattner [Mon, 9 Feb 2004 03:19:29 +0000 (03:19 +0000)]
Instead of searching the entire type graph for a type to determine if it
contains the type we are looking for, just search the immediately used types.
We can only do this because we keep the "current" type in the nesting level
as we decrement upreferences.

This change speeds up the testcase in PR224 from 50.4s to 22.08s, not
too shabby.

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

20 years agoUpreferences are always OpaqueTypes, meaning that it is impossible for a non-abstract
Chris Lattner [Mon, 9 Feb 2004 03:03:10 +0000 (03:03 +0000)]
Upreferences are always OpaqueTypes, meaning that it is impossible for a non-abstract
type from containing one.  This speeds up the asmparser on the testcase in PR224 from
61->50s.

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

20 years agoAnother nice speedup for the register allocator. This time, we replace
Chris Lattner [Mon, 9 Feb 2004 02:12:04 +0000 (02:12 +0000)]
Another nice speedup for the register allocator.  This time, we replace
the Virt2PhysRegMap std::map with an std::vector.  This speeds up the
register allocator another (almost) 40%, from .72->.45s in a release build
of LLC on 253.perlbmk.

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

20 years agoAdd a new (hidden) option that is useful for profiling.
Chris Lattner [Mon, 9 Feb 2004 01:47:10 +0000 (01:47 +0000)]
Add a new (hidden) option that is useful for profiling.

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

20 years agoUgh, perform an optimization that GCC should be able to do itself. This
Chris Lattner [Mon, 9 Feb 2004 01:43:23 +0000 (01:43 +0000)]
Ugh, perform an optimization that GCC should be able to do itself.  This
speeds up livevar from .48/.32s -> .45/.31s in LLC on perlbmk

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

20 years agoOnly do stuff for the REAL number of physical registers we have, not 1024.
Chris Lattner [Mon, 9 Feb 2004 01:35:21 +0000 (01:35 +0000)]
Only do stuff for the REAL number of physical registers we have, not 1024.
This speeds up live variables a lot, from .60/.39s -> .47/.26s in LLC, for
the first/second pass respectively.

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

20 years agoChange the PhysRegsUsed map into a dense array. Seeing that this is a mapping
Chris Lattner [Mon, 9 Feb 2004 01:26:13 +0000 (01:26 +0000)]
Change the PhysRegsUsed map into a dense array.  Seeing that this is a mapping
from physical registers, and they are always dense, it makes sense to not have
a ton of RBtree overhead.  This change speeds up regalloclocal about ~30% on
253.perlbmk, from .35s -> .27s in the JIT (in LLC, it goes from .74 -> .55).

Now live variable analysis is the slowest codegen pass.  Of course it doesn't
help that we have to run it twice, because regalloclocal doesn't update it,
but even if it did it would be the slowest pass (now it's just the 2x slowest
pass :(

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

20 years agoTwo problems with these lines of code:
Chris Lattner [Mon, 9 Feb 2004 00:59:07 +0000 (00:59 +0000)]
Two problems with these lines of code:
 1. The "work" was not in the assert, so it was punishing the optimized release
 2. getNamedFunction is _very_ expensive in large programs.  It is not designed
    to be used like this, and was taking 7% of the execution time of the code
    generator on perlbmk.

Since the assert "can never fail", I'm just killing it.

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

20 years agoThe ConstantExpr::getCast call can cause a CPR to be generated. If so,
Chris Lattner [Mon, 9 Feb 2004 00:20:55 +0000 (00:20 +0000)]
The ConstantExpr::getCast call can cause a CPR to be generated.  If so,
strip it off.

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

20 years agoFix PR215: [bcwriter] Problem compactifying ConstantPointerRefs
Chris Lattner [Mon, 9 Feb 2004 00:15:41 +0000 (00:15 +0000)]
Fix PR215: [bcwriter] Problem compactifying ConstantPointerRefs

Have I ever mentioned how much I _hate_ constantpointerrefs?

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

20 years agoFix grammar-o.
Misha Brukman [Sun, 8 Feb 2004 22:27:33 +0000 (22:27 +0000)]
Fix grammar-o.

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

20 years agoAll of spec, including 253.perlbmk should now work. There is still the 254.gap
Chris Lattner [Sun, 8 Feb 2004 22:23:33 +0000 (22:23 +0000)]
All of spec, including 253.perlbmk should now work.  There is still the 254.gap
regression, but that will definitely be fixed by 1.2

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

20 years agoImprove compatibility with programs that already have a prototype for 'write',
Chris Lattner [Sun, 8 Feb 2004 22:14:44 +0000 (22:14 +0000)]
Improve compatibility with programs that already have a prototype for 'write',
even if it is wierd in some way.

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

20 years agovi failed me again. :)
Chris Lattner [Sun, 8 Feb 2004 21:52:30 +0000 (21:52 +0000)]
vi failed me again.  :)

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

20 years agoRename the invoke 'except' destination to the 'unwind' destination
Chris Lattner [Sun, 8 Feb 2004 21:52:04 +0000 (21:52 +0000)]
Rename the invoke 'except' destination to the 'unwind' destination

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

20 years agoChange the 'exception' destination to the 'unwind' destination. We will always
Chris Lattner [Sun, 8 Feb 2004 21:48:25 +0000 (21:48 +0000)]
Change the 'exception' destination to the 'unwind' destination.  We will always
allow 'except' instead of 'unwind' here though.

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

20 years agorename the "exceptional" destination of an invoke instruction to the 'unwind' dest
Chris Lattner [Sun, 8 Feb 2004 21:44:31 +0000 (21:44 +0000)]
rename the "exceptional" destination of an invoke instruction to the 'unwind' dest

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

20 years agoAdd new bug, add note about llvm-db
Chris Lattner [Sun, 8 Feb 2004 21:20:42 +0000 (21:20 +0000)]
Add new bug, add note about llvm-db

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

20 years agoFix PR225: [pruneeh] -pruneeh pass removes invoke instructions it shouldn't
Chris Lattner [Sun, 8 Feb 2004 21:15:59 +0000 (21:15 +0000)]
Fix PR225: [pruneeh] -pruneeh pass removes invoke instructions it shouldn't

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

20 years agosplitBasicBlock "does the right thing" now, no reason to reposition it.
Chris Lattner [Sun, 8 Feb 2004 20:49:07 +0000 (20:49 +0000)]
splitBasicBlock "does the right thing" now, no reason to reposition it.

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

20 years agoBug fixed
Chris Lattner [Sun, 8 Feb 2004 19:59:05 +0000 (19:59 +0000)]
Bug fixed

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

20 years agoImplement proper invoke/unwind lowering.
Chris Lattner [Sun, 8 Feb 2004 19:53:56 +0000 (19:53 +0000)]
Implement proper invoke/unwind lowering.
This fixed PR16 "[lowerinvoke] The -lowerinvoke pass does not insert calls to setjmp/longjmp"

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

20 years agoNew testcase, code generators should support invoke/unwind
Chris Lattner [Sun, 8 Feb 2004 19:40:58 +0000 (19:40 +0000)]
New testcase, code generators should support invoke/unwind

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

20 years agoPrint out all globals as they are emitted, not just those emitted from
Chris Lattner [Sun, 8 Feb 2004 19:33:23 +0000 (19:33 +0000)]
Print out all globals as they are emitted, not just those emitted from
emitGlobals

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

20 years agoThere is no reason to #define fd
Chris Lattner [Sun, 8 Feb 2004 19:33:07 +0000 (19:33 +0000)]
There is no reason to #define fd

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

20 years agoadd pr105
Brian Gaeke [Sun, 8 Feb 2004 18:49:13 +0000 (18:49 +0000)]
add pr105

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

20 years agoFix unterminated-quote typo in echo command
Brian Gaeke [Sun, 8 Feb 2004 08:01:00 +0000 (08:01 +0000)]
Fix unterminated-quote typo in echo command

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

20 years agoDocument automake as a build dependency because we use aclocal
Brian Gaeke [Sun, 8 Feb 2004 07:49:04 +0000 (07:49 +0000)]
Document automake as a build dependency because we use aclocal

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

20 years agoMove rules for regenerating autoconf files into this shell script.
Brian Gaeke [Sun, 8 Feb 2004 07:44:48 +0000 (07:44 +0000)]
Move rules for regenerating autoconf files into this shell script.

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

20 years agoRemove rules for autoconf'ing files from top-level Makefile
Brian Gaeke [Sun, 8 Feb 2004 07:44:30 +0000 (07:44 +0000)]
Remove rules for autoconf'ing files from top-level Makefile

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

20 years agoAdd a call to 'write' right before the call to abort() in the unwind path.
Chris Lattner [Sun, 8 Feb 2004 07:30:29 +0000 (07:30 +0000)]
Add a call to 'write' right before the call to abort() in the unwind path.
This causes the JIT, or LLC'd program to print out a nice message, explaining
WHY the program aborted.

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

20 years agoFix indentation of selectiondag.
Brian Gaeke [Sun, 8 Feb 2004 05:49:29 +0000 (05:49 +0000)]
Fix indentation of selectiondag.

I don't know why its indentation has been bugging me, but it has.

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

20 years agoAdd one that I missed
Chris Lattner [Sun, 8 Feb 2004 01:53:10 +0000 (01:53 +0000)]
Add one that I missed

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

20 years agoInstead of callign removeTriviallyDeadNodes on the global graph every time
Chris Lattner [Sun, 8 Feb 2004 01:51:48 +0000 (01:51 +0000)]
Instead of callign removeTriviallyDeadNodes on the global graph every time
removeDeadNodes is called, only call it at the end of the pass being run.
This saves 1.3 seconds running DSA on 177.mesa (5.3->4.0s), which is
pretty big.  This is only possible because of the automatic garbage
collection done on forwarding nodes.

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

20 years agoRemove another unneeded call.
Chris Lattner [Sun, 8 Feb 2004 01:40:40 +0000 (01:40 +0000)]
Remove another unneeded call.

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

20 years agoThis call is no longer needed now that merging does not produce garbage
Chris Lattner [Sun, 8 Feb 2004 01:38:34 +0000 (01:38 +0000)]
This call is no longer needed now that merging does not produce garbage

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

20 years agoSubstantially improve the DSA code by removing 'forwarding' nodes from
Chris Lattner [Sun, 8 Feb 2004 01:27:18 +0000 (01:27 +0000)]
Substantially improve the DSA code by removing 'forwarding' nodes from
DSGraphs while they are forwarding.  When the last reference to the forwarding
node is dropped, the forwarding node is autodeleted.  This should simplify
removeTriviallyDead nodes, and is only (efficiently) possible because we are
using an ilist of dsnodes now.

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

20 years agoBugfix for ilist conversion. The ilist wants to make an 'end' node which has
Chris Lattner [Sun, 8 Feb 2004 01:05:37 +0000 (01:05 +0000)]
Bugfix for ilist conversion.  The ilist wants to make an 'end' node which has
G == 0

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

20 years agoSwitch the Nodes list from being an std::vector<DSNode*> to an ilist<DSNode>
Chris Lattner [Sun, 8 Feb 2004 00:53:26 +0000 (00:53 +0000)]
Switch the Nodes list from being an std::vector<DSNode*> to an ilist<DSNode>

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

20 years agoOne of the 'annoying' things about ilists is that the iterators don't behave
Chris Lattner [Sun, 8 Feb 2004 00:51:31 +0000 (00:51 +0000)]
One of the 'annoying' things about ilists is that the iterators don't behave
quite the same as for non-intrusive lists of pointers to nodes.  To support
transitioning code bases, add a new 'compatibility' iterator.

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

20 years agoChange to use node_iterators instead of direct access to Nodes
Chris Lattner [Sun, 8 Feb 2004 00:23:16 +0000 (00:23 +0000)]
Change to use node_iterators instead of direct access to Nodes

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