Commit Graph

1751 Commits

Author SHA1 Message Date
Chris Lattner 0079e7dd6d New revised variable argument handling support
llvm-svn: 9219
2003-10-18 05:53:13 +00:00
Misha Brukman 8763b30a2b Return the Module being materialized to avoid always calling getModule().
llvm-svn: 9198
2003-10-17 18:26:51 +00:00
Brian Gaeke 01f5925fc8 Add stub version of replaceMachineCodeForFunction. It will live here until
we have a better place for it to go.

llvm-svn: 9197
2003-10-17 18:26:45 +00:00
Alkis Evlogimenos 8faf8d93d5 Eliminate some extraneous code in SlotCalculator::insertVal().
Rename SlotCalculator::getValSlot() to SlotCalculator::getSlot(),
       SlotCalculator::insertValue() to SlotCalculator::getOrCreateSlot(),
       SlotCalculator::insertVal() to SlotCalculator::insertValue(), and
       SlotCalculator::doInsertVal() to SlotCalculator::doInsertValue().

llvm-svn: 9190
2003-10-17 02:02:40 +00:00
Brian Gaeke cd4ed60bdd This file has funny include guards and funny extra whitespace.
Make this file less funny.

llvm-svn: 9186
2003-10-16 23:43:35 +00:00
Misha Brukman c0acd1173d If we move the constructors to the .cpp file, we can drop the #include
llvm-svn: 9180
2003-10-16 21:16:21 +00:00
Chris Lattner 3c38eac99b Add weak linking type
llvm-svn: 9168
2003-10-16 18:27:04 +00:00
Chris Lattner 830e5a01eb Completely rewrite support for the Value::use_* list. Now, all operations on
this list (except use_size()) are constant time.  Before the killUse method
(used whenever something stopped using a value) was linear time, and thus
very very slow for large programs.

This speeds GCCAS up _substantially_ on large programs: almost 2x for 176.gcc:

176.gcc:     77.07s -> 37.38s
177.mesa:     7.59s ->  5.57s
252.eon:     21.02s -> 19.52s (*)
253.perlbmk: 11.40s -> 13.05s
254.gap:      7.25s -> 7.42s

252.eon would speed up a whole lot more, but optimization time is being
dominated by the inlining pass, which needs to be fixed.

llvm-svn: 9159
2003-10-16 16:53:04 +00:00
Chris Lattner ddf92c8a9a Vector is my friend, do you like vector?
llvm-svn: 9147
2003-10-15 22:10:10 +00:00
Chris Lattner fd27d111d9 lalala
llvm-svn: 9146
2003-10-15 22:09:57 +00:00
Chris Lattner 1318d56b4b We'll need this soon as well
llvm-svn: 9145
2003-10-15 22:09:46 +00:00
Chris Lattner 46c3217be4 This file uses assert and doesn't include anything which already #includes <cassert>
llvm-svn: 9142
2003-10-15 21:55:37 +00:00
Chris Lattner 30c715b30b Remove usage of use_size()
llvm-svn: 9134
2003-10-15 16:43:24 +00:00
Chris Lattner f92877f304 Add new hasOneUse() method. Remove explicit inline qualifiers
llvm-svn: 9132
2003-10-15 16:39:04 +00:00
Chris Lattner 1499851ef6 Generalize abstract interpreter interface to allow linking in an arbitrary number of shared objects
llvm-svn: 9129
2003-10-14 21:52:52 +00:00
Misha Brukman 1ff924b5c2 Enabling incremental bytecode loading in the JIT:
* ExecutionEngine can be constructed from a ModuleProvider
* Alphabetized order of forward-declared classes

llvm-svn: 9123
2003-10-14 21:35:52 +00:00
Misha Brukman 2c611561ea Enabling incremental bytecode loading in the JIT:
* Add ModuleProvider as a parameter to FunctionPassManager

llvm-svn: 9122
2003-10-14 21:34:56 +00:00
Chris Lattner 66da9ef634 Substantial cleanups:
* Add header comment
 * Remove extraneous #includes
 * Move the FileType enum into the GCC class
 * The GCC class is not virtual.
 * Move all of the "constructor" functions into the classes themselves
 * Stop using cl::list as arguments, use std::vector instead (which cl::list
   derives from)
 * Improve comments

llvm-svn: 9121
2003-10-14 21:34:11 +00:00
John Criswell 49a9b67858 Adding additional license information to these files.
llvm-svn: 9102
2003-10-13 20:34:27 +00:00
Chris Lattner a3244bbefd Add missing default argument
llvm-svn: 9092
2003-10-13 16:44:30 +00:00
Chris Lattner 514e18c061 add support for "external" depth first iterators, which store the 'visited' set
outside of the iterator itself.

llvm-svn: 9090
2003-10-13 16:34:26 +00:00
John Criswell 42859559f2 Added a macro and code that checks for the %a format string in sprintf().
llvm-svn: 9089
2003-10-13 16:22:01 +00:00
Chris Lattner 97b07c2096 Extricate the "reverse" support from the depth-first iterator. This is really
a crappy form of post-order traversal which really does not belong here.  While
we are at it, improve documentation and use a vector instead of a stack.

This improves the post dominator analysis pass by ~5%, and probably also helps
other passes as well.

llvm-svn: 9084
2003-10-13 15:45:33 +00:00
Chris Lattner d6d5651acf Add operator= for type iterators to make them assignable
llvm-svn: 9083
2003-10-13 15:34:17 +00:00
Chris Lattner 78cab97abb Remove explicit inline qualifiers when the implicit ones work just as well
llvm-svn: 9082
2003-10-13 15:30:59 +00:00
Chris Lattner 3fe0b9646e Add new op_erase method
llvm-svn: 9068
2003-10-13 03:29:26 +00:00
Chris Lattner 72272a70b8 Rename loop preheaders pass to loop simplify
llvm-svn: 9061
2003-10-12 21:52:28 +00:00
Chris Lattner 2debdf6458 Rename method to indicate what it does
llvm-svn: 9054
2003-10-12 18:51:53 +00:00
Brian Gaeke 56569e8a66 No longer used anywhere.
Dead.

This is a dead header.

It's not pining! It's passed on! This header is no more! It has ceased
to be!  It's expired and gone to meet its maker! It's a stiff! Bereft
of life, it rests in peace! If you hadn't nailed it to the perch it'd
be pushing up the daisies! Its metabolic processes are now history! It's
off the twig! It's kicked the bucket! It's shuffled off its mortal coil,
run down the curtain, and joined the bleeding choir invisibile!! THIS IS
AN EX-HEADER!!

llvm-svn: 9035
2003-10-10 18:58:07 +00:00
Misha Brukman aa7d26c8c8 Fix spelling.
llvm-svn: 9021
2003-10-10 17:42:19 +00:00
Misha Brukman 061c3750a1 Use 'F' for Function instead of 'M'.
llvm-svn: 9019
2003-10-10 17:38:31 +00:00
Brian Gaeke e2a8124476 Add my abstracted dynamic linker support files.
llvm-svn: 9008
2003-10-10 16:55:42 +00:00
Chris Lattner 5a485c8117 Add a method to reserve space for operands
llvm-svn: 8992
2003-10-09 22:45:59 +00:00
Chris Lattner c6ba9de7b7 Kill warning when compiling in optimized mode
llvm-svn: 8989
2003-10-09 20:43:55 +00:00
Chris Lattner 47be980aec Make getContainedType more efficient by not returning null if out of range!
llvm-svn: 8987
2003-10-09 20:35:15 +00:00
Alkis Evlogimenos b3b1e08563 Forward declare class Type since it is used in this class and Type.h is not included
llvm-svn: 8958
2003-10-08 04:45:45 +00:00
Brian Gaeke 2f329a7342 Regenerated with (at top-level llvm directory):
% autoheader -I autoconf autoconf/configure.ac

llvm-svn: 8956
2003-10-07 23:39:51 +00:00
Misha Brukman f6a3eb6785 Moved to llvm/include/llvm/Support because it is LLVM-specific.
llvm-svn: 8897
2003-10-06 18:34:38 +00:00
Chris Lattner c1c1335ba7 Remove unneeded dtors
llvm-svn: 8896
2003-10-06 17:36:49 +00:00
Chris Lattner 33295466ff Doxygenize class comments. Add new NamedRegionTimer class
llvm-svn: 8888
2003-10-06 15:02:16 +00:00
Chris Lattner a906bacfdd Change the interface to PromoteMemToReg to also take a DominatorTree
llvm-svn: 8883
2003-10-05 21:20:13 +00:00
Chris Lattner 656065400b Add new prototype for createLowerInvokePass(). Make simplifycfg be a
functionpass

llvm-svn: 8870
2003-10-05 19:15:13 +00:00
Chris Lattner 9414782d68 Output a very high-precision number
llvm-svn: 8856
2003-10-05 00:41:07 +00:00
Chris Lattner 3df5fb79ad Add some new methods to forward to
llvm-svn: 8852
2003-10-05 00:13:28 +00:00
Chris Lattner cc593fb6c6 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.

llvm-svn: 8850
2003-10-04 20:14:59 +00:00
Chris Lattner 7f4cfda3ba Minor cleanups
llvm-svn: 8843
2003-10-03 18:57:54 +00:00
Chris Lattner 0f21ab75fa 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.

llvm-svn: 8842
2003-10-03 18:46:24 +00:00
Chris Lattner 20ae1895c1 These methods are dead, remove them
llvm-svn: 8839
2003-10-03 18:39:40 +00:00
Chris Lattner 016418b8c2 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.

llvm-svn: 8833
2003-10-02 23:35:57 +00:00
Chris Lattner 2a2923a709 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.

llvm-svn: 8827
2003-10-02 19:44:23 +00:00