Chris Lattner [Wed, 11 Feb 2004 18:20:41 +0000 (18:20 +0000)]
Fix a typeo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11323
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Wed, 11 Feb 2004 17:55:09 +0000 (17:55 +0000)]
Increase constness.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11322
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Feb 2004 06:11:06 +0000 (06:11 +0000)]
Add an important prototype
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11320
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Feb 2004 06:10:18 +0000 (06:10 +0000)]
Fix copy-and-pastos
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11319
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Feb 2004 06:10:05 +0000 (06:10 +0000)]
Add skeleton profileinfoloader pass. This will be enhanced to actually LOAD
a profile tommorow. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11318
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Wed, 11 Feb 2004 06:04:51 +0000 (06:04 +0000)]
Remove assert as the only integer registers on the sparc are physical.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11317
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Feb 2004 05:56:07 +0000 (05:56 +0000)]
Factor profile information loading OUT of llvm-prof into libanalysis
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11316
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Wed, 11 Feb 2004 05:55:00 +0000 (05:55 +0000)]
Fix previous broken commit. A MachineOperand may have opType ==
MO_VirtualRegister but if the register number is one of a physical
register is it considered as a physical register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11315
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Feb 2004 05:54:25 +0000 (05:54 +0000)]
Factor this code out of llvm-prof
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11314
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Feb 2004 05:20:50 +0000 (05:20 +0000)]
Remove obsolete comment. Unreachable blocks will automatically be left at the
end of the function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11313
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Feb 2004 05:00:27 +0000 (05:00 +0000)]
Basic functionality testing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11312
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Feb 2004 04:53:20 +0000 (04:53 +0000)]
Add an _embarassingly simple_ implementation of basic block layout. This is
more of a testcase for profiling information than anything that should reasonably
be used, but it's a starting point. When I have more time I will whip this into
better shape.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11311
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Wed, 11 Feb 2004 04:52:30 +0000 (04:52 +0000)]
Remove assert as it is meaningless. MachineOperands can be tagged as
MO_VirtualRegister but actually be representing a physical register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11310
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Feb 2004 04:47:54 +0000 (04:47 +0000)]
Make sure to register the 'no profile' implementation as the default for ProfileInfo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11309
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Feb 2004 03:57:16 +0000 (03:57 +0000)]
Simplify implementation, and probably speed things up too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11308
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Feb 2004 03:36:04 +0000 (03:36 +0000)]
Implement SimplifyCFG/PhiEliminate.ll
Having a proper 'select' instruction would allow the elimination of a lot
of the special case cruft in this patch, but we don't have one yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11307
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Feb 2004 03:35:04 +0000 (03:35 +0000)]
New feature testcase for simplifycfg.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11306
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Feb 2004 03:29:16 +0000 (03:29 +0000)]
Initialize the count instance variable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11305
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Feb 2004 03:08:45 +0000 (03:08 +0000)]
Expose the "Other" value type to tablegen targets
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11304
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Feb 2004 01:17:58 +0000 (01:17 +0000)]
Remove long obsolete method. switch instructions are first class entities in the CFG, and have been for a LOOOONG time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11303
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Feb 2004 01:17:33 +0000 (01:17 +0000)]
Remove obsolete method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11302
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Feb 2004 01:17:07 +0000 (01:17 +0000)]
The hasConstantReferences predicate always returns false.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11301
91177308-0d34-0410-b5e6-
96231b3b80d8
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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