Brian Gaeke [Thu, 12 Feb 2004 01:34:03 +0000 (01:34 +0000)]
Remove getOpCode(). Help doxygenify some comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11338
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Thu, 12 Feb 2004 00:03:08 +0000 (00:03 +0000)]
Ooops, top-level C++-comments aren't recognized by flex.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11337
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Thu, 12 Feb 2004 00:00:46 +0000 (00:00 +0000)]
* Convert C comments to C++ style (why are some one way, some another?!)
* Delete extra space, extra blank comment lines
* Convert function comments to doxygen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11336
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 11 Feb 2004 20:47:34 +0000 (20:47 +0000)]
MachineInstr::getOpCode() --> getOpcode() in SPARC back-end.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11335
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Feb 2004 20:44:17 +0000 (20:44 +0000)]
If a node has more than 64 outgoing edges, make the edges go from the 'truncated' block,
instead of dropping them entirely.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11334
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 11 Feb 2004 19:47:43 +0000 (19:47 +0000)]
Fix typos in comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11333
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Feb 2004 19:26:28 +0000 (19:26 +0000)]
s/getOpCode/getOpcode
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11332
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Feb 2004 19:14:04 +0000 (19:14 +0000)]
Cosmetic improvements to this option.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11331
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 11 Feb 2004 18:52:05 +0000 (18:52 +0000)]
Fix bug in initial check - when recompiling everything with llvm-native-gcc,
you have to erase the program and re-run the linker, too, before running the
checker.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11328
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 11 Feb 2004 18:44:55 +0000 (18:44 +0000)]
add advice bullet about -check-exit-code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11327
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 11 Feb 2004 18:40:04 +0000 (18:40 +0000)]
add description of -check-exit-code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11326
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 11 Feb 2004 18:37:32 +0000 (18:37 +0000)]
Add check-exit-code option, defaulting to true.
Add ProgramExitedNonzero argument to executeProgram(), and make it
tell its caller whether the program exited nonzero.
Move executeProgramWithCBE() out of line, to ExecutionDriver.cpp, and remove
its extra arguments which are always defaulted. Make it turn off
check-exit-code if the program exits nonzero while generating a reference
output.
Make diffProgram() assume that any nonzero exit code is a failure, if
check-exit-code is turned on.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11325
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 11 Feb 2004 18:21:05 +0000 (18:21 +0000)]
Actually load profiling information now! Block layout can use real, live,
actual profile info, and works! :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11324
91177308-0d34-0410-b5e6-
96231b3b80d8
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