1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-30 23:42:52 +01:00
Commit Graph

2054 Commits

Author SHA1 Message Date
Chris Lattner
18e6e48ff0 Add new getJITStubForFunction method, which may optionally be implemented by
targets for better performance.

llvm-svn: 10429
2003-12-12 07:10:32 +00:00
Chris Lattner
f0ded5c697 Doxygenify comments, remove extraneous #include
llvm-svn: 10428
2003-12-12 06:31:42 +00:00
Brian Gaeke
a7db493d85 Use uintptr_t for pointer values in the ExecutionEngine.
llvm-svn: 10425
2003-12-12 05:06:09 +00:00
Brian Gaeke
7e09b6d2a7 Fix typo in comment
llvm-svn: 10424
2003-12-12 04:58:13 +00:00
Brian Gaeke
9b3f9806a2 IncludeFile hack to pull in BasicValueNumbering whenever ValueNumbering.h
is included.

llvm-svn: 10397
2003-12-11 05:05:56 +00:00
Brian Gaeke
045d32a78d IncludeFile hack to pull in BasicAliasAnalysis whenever AliasAnalysis.h
is included.

llvm-svn: 10396
2003-12-11 05:05:02 +00:00
Chris Lattner
c6d99b5894 add two new virtual functions:
The first returns a function pointer or a stub if it's not already generated
  The second exposes what was previously JIT specific state to general clients

llvm-svn: 10319
2003-12-08 08:22:01 +00:00
Chris Lattner
b8160c0ef9 Since ssaification of the varargs builtings, the vaarg instruction no longer
can write to memory.

llvm-svn: 10310
2003-12-08 05:29:33 +00:00
Brian Gaeke
65f9808281 Regenerated using autoheader-2.57
llvm-svn: 10309
2003-12-08 00:57:01 +00:00
Chris Lattner
d4abe8d28a The recalclulate method was a nasty hack that was once used by the -cee pass,
which never worked itself.  The cee pass still doesn't work, but it doesn't use
this method anymore anyway, so eliminate the method.

llvm-svn: 10302
2003-12-07 00:55:32 +00:00
Chris Lattner
c96fd2cf0c Rewrite dominators implementation. Now domset is constructed from immdom,
instead of the other way around.

llvm-svn: 10300
2003-12-07 00:36:16 +00:00
Chris Lattner
1c0824d019 Move this method out of the generic dominators calculation code
llvm-svn: 10298
2003-12-07 00:35:19 +00:00
Alkis Evlogimenos
229c2b9181 Move operator<<(std::ostream&, const LiveInterval&) out of the header file.
llvm-svn: 10290
2003-12-05 10:38:28 +00:00
Brian Gaeke
dba80bde3c Lock abstraction, introduced with a view toward making the JIT thread-safe.
Eventually.

llvm-svn: 10284
2003-12-01 21:33:31 +00:00
Chris Lattner
b18c2cc333 Add new block number
llvm-svn: 10281
2003-12-01 07:08:06 +00:00
Chris Lattner
2089c03675 Remove unused enum value
llvm-svn: 10279
2003-12-01 05:40:37 +00:00
Chris Lattner
e595976ed9 Add some "useful" methods
llvm-svn: 10277
2003-12-01 05:30:29 +00:00
Chris Lattner
d08cd3b1e1 be GCC 3.4 clean
llvm-svn: 10264
2003-11-29 19:55:12 +00:00
Chris Lattner
16b8a6988a Hrm, how could this compile?
llvm-svn: 10263
2003-11-29 19:55:02 +00:00
Chris Lattner
6afb79b6a8 fix gcc 3.4 compatibility problem
llvm-svn: 10248
2003-11-28 01:46:06 +00:00
Chris Lattner
cf937c503f It is legal to index into sequential types with any integer
llvm-svn: 10227
2003-11-25 21:20:19 +00:00
Chris Lattner
31814958ec Work with gepi's and constant exprs. Also, add versions of iterator ctors that take references
llvm-svn: 10220
2003-11-25 20:17:49 +00:00
Chris Lattner
d8049787c5 Rename class to be consistent with other iterator classes
llvm-svn: 10213
2003-11-25 19:58:35 +00:00
Chris Lattner
6dd68ba077 Initial checkin of gep_type_begin/end which will be used to address PR82
llvm-svn: 10212
2003-11-25 19:37:28 +00:00
Misha Brukman
f792dbcd77 Expose functionality to query if a file is an ELF shared object.
llvm-svn: 10194
2003-11-24 05:28:39 +00:00
Brian Gaeke
b878ff088b A better way to get std::pair into the compiler's little, walnut-sized brain.
llvm-svn: 10174
2003-11-23 03:50:31 +00:00
Brian Gaeke
f158b46c54 This is a hack to make this file compile under g++-3.0.x;
otherwise it can't decide what std::pair is. It seemed relatively
harmless.

llvm-svn: 10173
2003-11-23 00:55:27 +00:00
Chris Lattner
310dac2b01 Somehow I forgot poor little UnwindInst
*sniff*

llvm-svn: 10108
2003-11-20 18:11:56 +00:00
Chris Lattner
ffcdbe02bf * Add new constructors to allow insertion of terminator instructions at the
end of basic blocks.
* Document some confusing constructor combinations
* Move a ReturnInst method out-of-line, so that the vtable and type info don't
  need to be emitted to every translation unit that uses the class.

llvm-svn: 10106
2003-11-20 17:44:37 +00:00
Alkis Evlogimenos
6627a32ff9 Merging the linear scan register allocator in trunk. It currently passes most tests under test/Programs/SingleSource/Benchmarks/Shootout so development will continue on trunk. The allocator is not enabled by default. You will need to pass -regallo=linearscan to lli or llc to use it.
llvm-svn: 10103
2003-11-20 03:32:25 +00:00
Brian Gaeke
66b0271960 Regenerated using autoheader-2.57
llvm-svn: 10064
2003-11-18 06:21:24 +00:00
Chris Lattner
7c9bfad92c Implement == and != correctly. Before they would incorrectly return !=
for some constant exprs when they could really be the same value

llvm-svn: 10058
2003-11-17 20:19:35 +00:00
Chris Lattner
1f762c7571 The ConstantPointer class is now gone.
llvm-svn: 10057
2003-11-17 19:47:21 +00:00
Chris Lattner
daee0fa51f Constant folding shalt not be built on annotations
llvm-svn: 10052
2003-11-17 19:05:17 +00:00
Chris Lattner
63dabbbf92 Fix copy-and-pasteo
llvm-svn: 10049
2003-11-17 01:07:58 +00:00
Chris Lattner
9995768f47 Fixes for PR114: Thanks to Reid Spencer!
llvm-svn: 10029
2003-11-16 20:21:15 +00:00
Chris Lattner
5bc662bc0a This is obviously illegal C++ code, but was apparently accepted by 3.3
bork

llvm-svn: 9993
2003-11-14 06:03:05 +00:00
Chris Lattner
6a0a73554a Add methods for implementation
llvm-svn: 9963
2003-11-13 05:05:34 +00:00
Chris Lattner
b3ddf91dd5 Remove needless dependence on boost
llvm-svn: 9961
2003-11-13 04:11:30 +00:00
Chris Lattner
d7284a85b5 Add namespace qualifier
llvm-svn: 9959
2003-11-13 02:30:22 +00:00
Chris Lattner
d2ce57f9d8 Minor cleanups
llvm-svn: 9958
2003-11-13 02:01:41 +00:00
Chris Lattner
3c72015317 Add an initial version of the CompleteBUDataStructures pass
llvm-svn: 9955
2003-11-13 01:42:38 +00:00
Chris Lattner
4823a3ce48 Fix faulty namespacification
llvm-svn: 9943
2003-11-12 22:45:14 +00:00
John Criswell
07b942e14c Regress to not using the llvm namespace.
This keeps Pool Allocation stuff from compiling.
We can re-visit it later when we have time to do it right.

llvm-svn: 9932
2003-11-12 21:32:06 +00:00
Chris Lattner
fb07beec2c Add argument
llvm-svn: 9921
2003-11-12 17:58:09 +00:00
Brian Gaeke
d25f86d683 Put all LLVM code into the llvm namespace, as per bug 109.
llvm-svn: 9903
2003-11-11 22:41:34 +00:00
Brian Gaeke
b576c42af7 Add prototypes for CheckMagic, IsArchive, and IsBytecode.
llvm-svn: 9900
2003-11-11 21:53:29 +00:00
Brian Gaeke
6d725eef5f VS: ----------------------------------------------------------------------
Add prototype for FileOpenable().

llvm-svn: 9891
2003-11-11 18:27:11 +00:00
Chris Lattner
2b0c87be66 Add new method
llvm-svn: 9879
2003-11-11 05:08:36 +00:00
Chris Lattner
da2387324c Include forms of SplitCriticalEdge which work correctly with pred/succ iterators
llvm-svn: 9856
2003-11-10 04:42:13 +00:00
Chris Lattner
88e0e2ab86 No really, I'm not on crack
llvm-svn: 9855
2003-11-10 04:23:52 +00:00
Chris Lattner
79ba83de00 Helper method
llvm-svn: 9854
2003-11-10 04:16:50 +00:00
Chris Lattner
2a993fb1c5 Move isCriticalEdge & SplitCritical into this file. While we're at it, change
the interface to SplitCriticalEdge so that it splits an edge if it is critical,
otherwise just returns false and noops if not.

llvm-svn: 9852
2003-11-10 04:10:27 +00:00
Chris Lattner
6beaeb1c1d Move isCriticalEdge & SplitCritical edge out of this file, which is only
for passes.

llvm-svn: 9851
2003-11-10 04:09:44 +00:00
Brian Gaeke
ebdebb3a5d Regenerated.
llvm-svn: 9850
2003-11-10 03:06:28 +00:00
Brian Gaeke
c06f31a815 Patch to fix PR102, contributed by Reid Spencer.
llvm-svn: 9849
2003-11-10 03:06:09 +00:00
Chris Lattner
f40566184d Fix PR95. I'm checking this patch in for Reid Spencer, who figured it out
and wrote it up.  Thanks!!

llvm-svn: 9832
2003-11-09 19:39:48 +00:00
Chris Lattner
dd39a2b0f8 Provide a specialization of _Alloc_traits, which allows the G++ runtime to avoid
storing an instance of the allocator in each data structure it uses.  Yaay.

llvm-svn: 9795
2003-11-07 23:20:56 +00:00
Brian Gaeke
f84726a3fd Add a warning about not "new"ing or "delete"ing CallSites
llvm-svn: 9782
2003-11-07 19:25:22 +00:00
Misha Brukman
9116e0e93e Added ability to register FunctionPasses as optimizations, with
TargetMachine-accepting constructors (thanks to Chris).

llvm-svn: 9781
2003-11-07 18:56:32 +00:00
Misha Brukman
b6f41c96d7 Declare FunctionPasses as such.
llvm-svn: 9767
2003-11-07 17:19:39 +00:00
Chris Lattner
238613ff30 Add some ctors for this allocator
llvm-svn: 9766
2003-11-07 15:20:06 +00:00
Chris Lattner
5c551d6bd5 Split the DAE pass into DAE and DAH passes
llvm-svn: 9742
2003-11-05 21:43:42 +00:00
Brian Gaeke
eb6b11c9e0 A few handy methods that seem to mesh well with what CallSite already provides.
llvm-svn: 9737
2003-11-05 20:25:33 +00:00
Misha Brukman
7fa3523f55 Since this function returns an int, let's actually return something.
llvm-svn: 9734
2003-11-05 19:48:05 +00:00
Alkis Evlogimenos
2cca429997 Add std::pair tier. This is a much simplified version of boost::tie
that works only for std::pair.

llvm-svn: 9723
2003-11-05 05:58:26 +00:00
Chris Lattner
9e2193fbb9 This works with GCC 3.4 also
llvm-svn: 9717
2003-11-05 01:31:12 +00:00
Chris Lattner
97da28f949 Fix spello
Add negate overload

llvm-svn: 9709
2003-11-04 23:37:40 +00:00
Alkis Evlogimenos
a6f280b483 Update documentation since it was misleading: make it clear that a
negative instruction count is returned if instructions are removed
from a basic block.

llvm-svn: 9705
2003-11-04 23:07:00 +00:00
Alkis Evlogimenos
c6a7c83333 Change all machine basic block modifier functions in MRegisterInfo to
return the number of instructions added to/removed from the basic block
passed as their first argument.

Note: This is only needed because we use a std::vector instead of an
ilist to keep MachineBasicBlock instructions. Inserting an instruction
to a MachineBasicBlock invalidates all iterators to the basic
block. The return value can be used to update an index to the machine
basic block instruction vector and circumvent the iterator elimination
problem but this is really not needed if we move to a better
representation.

llvm-svn: 9704
2003-11-04 22:57:09 +00:00
Chris Lattner
7bf113d3ca New file, for use by the pool allocator project
llvm-svn: 9702
2003-11-04 22:38:28 +00:00
Chris Lattner
6bdf3f6928 Allow CallSites to be used as the key of a map
llvm-svn: 9660
2003-11-02 23:04:33 +00:00
Chris Lattner
a71b07eeca All DSGraphs keep a reference to the targetdata they are created with. This is
used to eliminate the hard coded, hacked in, sparc specific, global TargetData.
Changing the TargetData used to actually match the code fixes problems, and
eliminates a crash.

llvm-svn: 9659
2003-11-02 22:27:28 +00:00
Chris Lattner
29f03b2d39 Including the symbol table in the FindUsedTypes analysis was the WRONG way
to fix test/Regression/CBackend/2003-10-23-UnusedType.ll.  This completely
neutered the deadtypeelim pass.

llvm-svn: 9646
2003-11-02 01:28:41 +00:00
Chris Lattner
1826fc42b4 Escape "'s, which are frequent visitors to C++ types
llvm-svn: 9642
2003-10-31 22:16:41 +00:00
Chris Lattner
78b09155e1 Did I mention that I _HATE_ CPRs?
llvm-svn: 9639
2003-10-31 18:38:06 +00:00
Chris Lattner
18283ea9f0 Constant pointer refs are causing these to fail unnecessarily, which is causing
a lot of code to be pessimized.  I hate CPRs.  :(

llvm-svn: 9635
2003-10-31 17:51:16 +00:00
Chris Lattner
8d2a791804 Expose new print methods
llvm-svn: 9620
2003-10-30 23:41:19 +00:00
Chris Lattner
0b7af35c38 New interface
llvm-svn: 9618
2003-10-30 23:39:52 +00:00
Brian Gaeke
f25ce07b87 Apparently my Mac OS X fixes were not entirely compatible with SPARC...hmm.
llvm-svn: 9612
2003-10-30 15:03:49 +00:00
Chris Lattner
586db4056a When someone includes CallGraph.h, make sure that they link in CallGraph.cpp
llvm-svn: 9611
2003-10-30 05:17:30 +00:00
Chris Lattner
363bfc10c7 Tighten up what we consider to be first class types.
llvm-svn: 9608
2003-10-30 01:38:41 +00:00
Brian Gaeke
d744e41a11 Add support for utostr(unsigned long)
llvm-svn: 9588
2003-10-29 20:06:19 +00:00
Brian Gaeke
65c88653cf Pull in stdint.h here, if we have it. Some systems keep
the INT*_MAX macros there.

llvm-svn: 9577
2003-10-29 04:25:48 +00:00
Chris Lattner
9def45d1d0 Add new method
llvm-svn: 9570
2003-10-28 23:10:44 +00:00
Brian Gaeke
a9e4a555f2 Remove __STDC_LIMIT_MACROS from here.
llvm-svn: 9550
2003-10-28 19:11:29 +00:00
Brian Gaeke
d857892674 ExecutionEngine::create no longer takes a TraceMode argument.
llvm-svn: 9488
2003-10-24 19:58:38 +00:00
Chris Lattner
3cd24ce25a Add assertions
llvm-svn: 9443
2003-10-23 19:33:49 +00:00
Chris Lattner
6612e3dfd5 Fix bug in eon hopefully
llvm-svn: 9442
2003-10-23 19:33:44 +00:00
Chris Lattner
78d89a92b7 Include new prototype
llvm-svn: 9422
2003-10-23 16:51:49 +00:00
Chris Lattner
59ee30fa40 Actually share constants local to a function!
llvm-svn: 9417
2003-10-23 16:29:12 +00:00
Brian Gaeke
dd58e78e27 Fix apparent typo in head-of-file comment.
llvm-svn: 9400
2003-10-23 04:01:49 +00:00
Brian Gaeke
734a84b7ad I think this file is not included by anything.
llvm-svn: 9380
2003-10-22 17:51:28 +00:00
Chris Lattner
ded70e0362 Add two new function stubs for viewing the CFG of a function inside of the
debugger

llvm-svn: 9373
2003-10-22 16:03:20 +00:00
Chris Lattner
a227bfeff3 Add a new map
llvm-svn: 9311
2003-10-20 20:55:13 +00:00
Chris Lattner
b2b773378f This #include is no longer necessary
llvm-svn: 9306
2003-10-20 20:29:44 +00:00
John Criswell
16c6cda9d5 Added LLVM copyright header (for lack of a better term).
llvm-svn: 9304
2003-10-20 20:19:47 +00:00
John Criswell
72a15c5c83 Oops. Typo.
llvm-svn: 9303
2003-10-20 20:16:14 +00:00
John Criswell
afe9f159aa Added LLVM header notice.
llvm-svn: 9302
2003-10-20 20:11:43 +00:00
John Criswell
cba7edd98e Added LLVM notice.
llvm-svn: 9300
2003-10-20 19:46:57 +00:00
Brian Gaeke
04115cb86a Make replaceMachineCodeForFunction return void.
Make it assert by default.

llvm-svn: 9287
2003-10-20 15:14:33 +00:00
Chris Lattner
87843f87b8 Change the Opcode enum for PHI nodes from "Instruction::PHINode" to "Instruction::PHI" to be more consistent with the other instructions.
llvm-svn: 9269
2003-10-19 21:34:28 +00:00
Chris Lattner
97433b8e95 Change the Opcode enum for PHI nodes from "Instruction::PHINode" to "Instruction::PHI" to be more consistent with the other instructions.
This allows removal of a special case from the instvisitor

llvm-svn: 9268
2003-10-19 21:34:11 +00:00
Chris Lattner
d0e3a15a9e New revised variable argument handling support
llvm-svn: 9219
2003-10-18 05:53:13 +00:00
Misha Brukman
a4bca57c6e Return the Module being materialized to avoid always calling getModule().
llvm-svn: 9198
2003-10-17 18:26:51 +00:00
Brian Gaeke
fc52099b3c 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
5a1f705c88 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
2a7cedb657 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
99daf743bb 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
a8899d65d3 Add weak linking type
llvm-svn: 9168
2003-10-16 18:27:04 +00:00
Chris Lattner
0493113344 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
64d7bc76b8 Vector is my friend, do you like vector?
llvm-svn: 9147
2003-10-15 22:10:10 +00:00
Chris Lattner
a390208127 lalala
llvm-svn: 9146
2003-10-15 22:09:57 +00:00
Chris Lattner
9db0d011b4 We'll need this soon as well
llvm-svn: 9145
2003-10-15 22:09:46 +00:00
Chris Lattner
d335336fda 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
7e21039f40 Remove usage of use_size()
llvm-svn: 9134
2003-10-15 16:43:24 +00:00
Chris Lattner
27a1330106 Add new hasOneUse() method. Remove explicit inline qualifiers
llvm-svn: 9132
2003-10-15 16:39:04 +00:00
Chris Lattner
ac95730fca 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
2ab03faac1 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
6e81243ff7 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
1cad7eb7b0 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
1cee7eb4a6 Adding additional license information to these files.
llvm-svn: 9102
2003-10-13 20:34:27 +00:00
Chris Lattner
59b20efaec Add missing default argument
llvm-svn: 9092
2003-10-13 16:44:30 +00:00
Chris Lattner
4063621588 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
ff4e11b823 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
d83c90abd7 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
1005b2d0c6 Add operator= for type iterators to make them assignable
llvm-svn: 9083
2003-10-13 15:34:17 +00:00
Chris Lattner
f545835766 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
b743545965 Add new op_erase method
llvm-svn: 9068
2003-10-13 03:29:26 +00:00
Chris Lattner
f4ca01758d Rename loop preheaders pass to loop simplify
llvm-svn: 9061
2003-10-12 21:52:28 +00:00
Chris Lattner
8b5c8f4722 Rename method to indicate what it does
llvm-svn: 9054
2003-10-12 18:51:53 +00:00
Brian Gaeke
7f0669e624 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
32c5aec6ec Fix spelling.
llvm-svn: 9021
2003-10-10 17:42:19 +00:00
Misha Brukman
2d53099507 Use 'F' for Function instead of 'M'.
llvm-svn: 9019
2003-10-10 17:38:31 +00:00
Brian Gaeke
ec80b3028e Add my abstracted dynamic linker support files.
llvm-svn: 9008
2003-10-10 16:55:42 +00:00
Chris Lattner
b6367d9414 Add a method to reserve space for operands
llvm-svn: 8992
2003-10-09 22:45:59 +00:00
Chris Lattner
b876f55b76 Kill warning when compiling in optimized mode
llvm-svn: 8989
2003-10-09 20:43:55 +00:00
Chris Lattner
8e6b42c567 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
33a498f90c 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
f8bed70df3 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
3ab5f2d5d4 Moved to llvm/include/llvm/Support because it is LLVM-specific.
llvm-svn: 8897
2003-10-06 18:34:38 +00:00
Chris Lattner
394f190dab Remove unneeded dtors
llvm-svn: 8896
2003-10-06 17:36:49 +00:00
Chris Lattner
05f16ed60b Doxygenize class comments. Add new NamedRegionTimer class
llvm-svn: 8888
2003-10-06 15:02:16 +00:00
Chris Lattner
d1c3f771f8 Change the interface to PromoteMemToReg to also take a DominatorTree
llvm-svn: 8883
2003-10-05 21:20:13 +00:00
Chris Lattner
8848bf58ce Add new prototype for createLowerInvokePass(). Make simplifycfg be a
functionpass

llvm-svn: 8870
2003-10-05 19:15:13 +00:00
Chris Lattner
b7688b7b80 Output a very high-precision number
llvm-svn: 8856
2003-10-05 00:41:07 +00:00
Chris Lattner
cb5dd5ba25 Add some new methods to forward to
llvm-svn: 8852
2003-10-05 00:13:28 +00:00
Chris Lattner
def80d731a 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
a2c1509b21 Minor cleanups
llvm-svn: 8843
2003-10-03 18:57:54 +00:00
Chris Lattner
18c3f42894 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
2e3f124f10 These methods are dead, remove them
llvm-svn: 8839
2003-10-03 18:39:40 +00:00
Chris Lattner
b217f24289 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
564dbbf299 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
Chris Lattner
bd6ff0adbc There is no reason for the PATypeHolder class to derive from the
PATypeHandle class

llvm-svn: 8825
2003-10-02 19:08:18 +00:00
Alkis Evlogimenos
a37b58ce09 Moved enum and command-line option in separate file. Also added function that returns the user selected register allocator to the caller.
llvm-svn: 8819
2003-10-02 16:57:49 +00:00
Alkis Evlogimenos
42a09316bb Change llc command line for register allocators
llvm-svn: 8815
2003-10-02 06:13:19 +00:00
Chris Lattner
ba703c3f17 Remove obsolete scoped pred and succ iterator typedefs
llvm-svn: 8810
2003-10-01 22:28:39 +00:00
Chris Lattner
c228625040 Use graph traits to perform generic interval construction
llvm-svn: 8809
2003-10-01 22:28:00 +00:00
Chris Lattner
679ad2c46d Add graph traits specializations for intervals
llvm-svn: 8808
2003-10-01 22:27:36 +00:00
Chris Lattner
c3767eab12 Forward declare a class
llvm-svn: 8797
2003-09-30 20:15:40 +00:00
Chris Lattner
d63bd276f0 This got merged into Passes.h
llvm-svn: 8796
2003-09-30 20:15:32 +00:00
Chris Lattner
08d6f140ab Include the sparc register in this file
llvm-svn: 8794
2003-09-30 20:14:43 +00:00
Chris Lattner
f6f3a5505a Update comment
llvm-svn: 8783
2003-09-30 18:44:27 +00:00
Chris Lattner
4e4c763dfc Standardize header file comments
llvm-svn: 8782
2003-09-30 18:37:50 +00:00
Chris Lattner
d2a392eef1 Add a file header
llvm-svn: 8781
2003-09-30 18:28:53 +00:00
Chris Lattner
166b62e171 Remove unused header
llvm-svn: 8780
2003-09-30 18:19:13 +00:00
Chris Lattner
0c15a20712 Fix header comment
llvm-svn: 8779
2003-09-30 18:12:25 +00:00
Chris Lattner
1ea5d5a0c0 Fix header, remove dead decl
llvm-svn: 8777
2003-09-30 18:06:51 +00:00
Chris Lattner
7d059b8c3d Fix header file comment
llvm-svn: 8776
2003-09-30 18:05:30 +00:00
Chris Lattner
633b14c13b make the header comment more useful
llvm-svn: 8774
2003-09-30 17:53:30 +00:00
Misha Brukman
a081e4323f Abstracted away the process of running our tools + gcc from bugpoint.
llvm-svn: 8753
2003-09-29 22:38:57 +00:00
Misha Brukman
04a97743ca Tersified and fixed whitespace (tabs -> spaces).
llvm-svn: 8752
2003-09-29 22:37:57 +00:00
Brian Gaeke
16e30e5c84 Fix a typo I happened to notice.
Rename include guards in the "usual" manner.

llvm-svn: 8695
2003-09-24 04:09:50 +00:00
Misha Brukman
7623477716 Added doxygen comments for the streaming module provider.
llvm-svn: 8672
2003-09-22 23:40:38 +00:00
Misha Brukman
a0fb45ff4b Added functions to perform streaming function loading, doxygenified comments.
llvm-svn: 8670
2003-09-22 23:36:33 +00:00
Misha Brukman
26a7c3e066 Converted tabs to spaces.
llvm-svn: 8669
2003-09-22 23:35:54 +00:00
Misha Brukman
f49d1804d5 Materialize the module before releasing it.
llvm-svn: 8668
2003-09-22 23:35:23 +00:00
Chris Lattner
d6c9d2ca72 Add prototype
llvm-svn: 8640
2003-09-21 00:28:18 +00:00
Chris Lattner
b12a8a6177 Switch from using CallInst's to represent call sites to using the LLVM
CallSite class.  Now we can represent function calls by invoke instructions
too!

llvm-svn: 8629
2003-09-20 16:34:13 +00:00
Chris Lattner
d4de2760aa Rename Function::getEntryNode -> getEntryBlock
llvm-svn: 8625
2003-09-20 14:39:18 +00:00
Chris Lattner
6f06eb4eb3 Rename getEntryNode -> getEntryBlock()
llvm-svn: 8624
2003-09-20 14:36:49 +00:00
Chris Lattner
b64863a2f3 Cleanup header file
llvm-svn: 8622
2003-09-20 14:35:38 +00:00
Chris Lattner
bf7dd80e7c Expose the TCE pass
llvm-svn: 8619
2003-09-20 05:14:13 +00:00
Chris Lattner
dc73981ba4 Fix header, fix broken friend decl
llvm-svn: 8616
2003-09-20 03:34:44 +00:00
Chris Lattner
3e98c3aaeb Unsquishify
llvm-svn: 8612
2003-09-20 01:23:29 +00:00
Misha Brukman
fb31f22b76 Abstract interface for module providers, e.g. streaming bytecode reader.
llvm-svn: 8593
2003-09-18 16:16:32 +00:00
John Criswell
e1ccc5a286 In ExecWait(), made the child process exit if it can't execve() the new
program.
Added the use of const (which compiles and is hopefully correct).
Added comments.

llvm-svn: 8585
2003-09-17 19:02:49 +00:00
John Criswell
391b64574d Added the ExecWait() function.
llvm-svn: 8578
2003-09-17 15:14:25 +00:00
Chris Lattner
0d28d582e1 Add new deleteBody method
llvm-svn: 8571
2003-09-17 04:58:43 +00:00
Chris Lattner
2233d8b00a Do not segfault when the post-dominator tree is empty (ie, there are no return
or unwind instructions in the function)

llvm-svn: 8537
2003-09-15 15:47:40 +00:00
Chris Lattner
0c3066b0ae Add prototype for the lowersetjmp pass
llvm-svn: 8522
2003-09-15 05:05:23 +00:00
Chris Lattner
27fcbcd3a3 Get rid of the whole "Node2" business, rename getNode() ->getBlock() to
be more descriptive

llvm-svn: 8468
2003-09-11 16:25:06 +00:00
Chris Lattner
e7c33c0f65 Rework dominator and post dominator information so that we do not have to
unify all exit nodes of a function to compute post-dominance information.
This does not work with functions that have both unwind and return nodes,
because we cannot unify these blocks.  The new implementation is better
anyway. :)

llvm-svn: 8459
2003-09-10 20:36:51 +00:00
Chris Lattner
ee577bdc08 Expand the pass to unify all of the unwind blocks as well
llvm-svn: 8456
2003-09-10 20:34:51 +00:00
Brian Gaeke
7eaecc239a Make createVerifierPass return a FunctionPass *.
llvm-svn: 8449
2003-09-10 19:37:04 +00:00
Chris Lattner
dbca8de747 Fix spello
llvm-svn: 8432
2003-09-10 05:30:09 +00:00
Chris Lattner
58d4183a25 Fix spell-o's
llvm-svn: 8431
2003-09-10 05:29:43 +00:00
Chris Lattner
620f051422 Spelling fixes
llvm-svn: 8429
2003-09-10 05:24:09 +00:00
Chris Lattner
8c119fc9af Fix bug: InstCombine/2003-09-09-VolatileLoadElim.ll
Loads "mayWriteToMemory" if they are volatile

llvm-svn: 8422
2003-09-09 18:16:08 +00:00
Chris Lattner
4a708f1061 Eliminate the unwind intrinsic, it is now an instruction
llvm-svn: 8412
2003-09-08 19:44:47 +00:00
Chris Lattner
a1ae09f681 add support for the unwind inst
llvm-svn: 8406
2003-09-08 18:54:16 +00:00
Chris Lattner
3aeba4c6fc Add the unwind instruction class
llvm-svn: 8405
2003-09-08 18:54:09 +00:00
Chris Lattner
56bc7d4056 Add new unwind instruction. Happily there was a slot leftover from when the
'not' instruction was removed long ago

llvm-svn: 8404
2003-09-08 18:54:01 +00:00
Chris Lattner
2916eafa42 Add support for volatile loads/stores
llvm-svn: 8393
2003-09-08 17:45:59 +00:00
Brian Gaeke
83d2306098 No longer used
llvm-svn: 8374
2003-09-05 19:43:45 +00:00
Brian Gaeke
8e1bb0bcb2 Make getOperandValue and executeCastOperation methods of Interpreter.
This lets us protect a few more ExecutionEngine methods.

llvm-svn: 8367
2003-09-05 18:55:03 +00:00
Brian Gaeke
e157a77485 Make CreateArgv part of lli rather than part of ExecutionEngine.
Switch Interpreter and JIT's "run" methods to take a Function and a vector of
 GenericValues.
Move (almost all of) the stuff that constructs a canonical call to main()
 into lli (new methods "callAsMain", "makeStringVector").
Nuke getCurrentExecutablePath(), enableTracing(), getCurrentFunction(),
 isStopped(), and many dead decls from interpreter.
Add linux strdup() support to interpreter.
Make interpreter's atexit handler runner and JIT's runAtExitHandlers() look
 more alike, in preparation for refactoring.
atexit() is spelled "atexit", not "at_exit".

llvm-svn: 8366
2003-09-05 18:42:01 +00:00
Brian Gaeke
b42efb0e33 Zap some more unused static method decls
llvm-svn: 8364
2003-09-05 06:10:50 +00:00
Chris Lattner
2deb966337 Get friendly
llvm-svn: 8356
2003-09-05 02:30:18 +00:00
Chris Lattner
849c3fbdcc Reshuffling of APIs
llvm-svn: 8354
2003-09-05 02:15:36 +00:00
Chris Lattner
802d5a1717 Remove method
llvm-svn: 8349
2003-09-04 23:43:35 +00:00
Brian Gaeke
6d7d9f9cd9 Interpreter cleanups:
Get rid of support for DebugMode (make it always off).
Mung some comments.
Get rid of interpreter's PROFILE_STRUCTURE_FIELDS and PerformExitStuff
 which have been disabled forever.
Get rid of -abort-on-exception (make it always on).
Get rid of user interaction stuff (debug mode innards).
Simplify Interpreter's callMainFunction().

llvm-svn: 8344
2003-09-04 22:21:24 +00:00
Brian Gaeke
cec978e0ed ExecutionEngine.cpp: Move execution engine creation stuff into a new
static method here.
 Remove some extra blank lines.
ExecutionEngine.h: Add its prototype.
lli.cpp: Call it.

Make creation method for each type of EE into a static method of its
own subclass.

Interpreter/Interpreter.cpp: ExecutionEngine::createInterpreter -->
 Interpreter::create
Interpreter/Interpreter.h: Likewise.
JIT/JIT.cpp: ExecutionEngine::createJIT --> VM::create
JIT/VM.h: Likewise.

llvm-svn: 8343
2003-09-03 20:34:19 +00:00
Chris Lattner
2229f417a0 New method
llvm-svn: 8331
2003-09-02 21:54:56 +00:00
Chris Lattner
4636773d5b Remove the "recursive bit", not only is it unused by anyone, it was also
not correctly calculated, and calculating it wrong for fun seems rather
pointless.

llvm-svn: 8329
2003-09-02 21:40:33 +00:00
John Criswell
6927aeed1e Added the MakeFileReadable() method.
llvm-svn: 8327
2003-09-02 21:09:30 +00:00
John Criswell
7b83fe6beb Added the MakeFileExecutable() method. This method takes a filename and
gives it execute access while respecting the user's umask.

llvm-svn: 8324
2003-09-02 20:14:57 +00:00
Chris Lattner
1ae014f939 The description is no longer stored directly in the type.
llvm-svn: 8319
2003-09-02 16:28:03 +00:00
Chris Lattner
f993c53f49 Dead header file
llvm-svn: 8317
2003-09-01 20:46:08 +00:00
Chris Lattner
603a7af227 Add RPR prototype here
llvm-svn: 8314
2003-09-01 20:44:42 +00:00
Chris Lattner
8ec3783590 Remove dead file
llvm-svn: 8313
2003-09-01 20:41:21 +00:00
Chris Lattner
feebbdd6d1 No longer require an OptInfo
llvm-svn: 8310
2003-09-01 20:40:43 +00:00
Chris Lattner
87d223c70e Remove header files that were privatized
llvm-svn: 8307
2003-09-01 20:33:38 +00:00
Chris Lattner
aeb98733eb This file is never #included
llvm-svn: 8300
2003-09-01 20:19:31 +00:00
Chris Lattner
ed0dcf3cf0 This file is just a subset of Cilkifier.h
llvm-svn: 8286
2003-09-01 16:42:43 +00:00
Chris Lattner
ef379b667e Other minor cleanups while I'm in the area
llvm-svn: 8284
2003-09-01 16:38:43 +00:00
Chris Lattner
eaed5602a7 Fix spell-o
llvm-svn: 8283
2003-09-01 16:35:30 +00:00
Chris Lattner
2ef2a63728 Change the RaiseAllocations pass from being a BasicBlockPass to being a Pass
llvm-svn: 8279
2003-09-01 03:14:00 +00:00
Chris Lattner
f72da72785 Rename TarjanSCCIterator -> scc_iterator
* Increases consistency with other iterators (e.g. df_iterator, po_iterator...)
  * It's shorter
  * We don't name classes by the implementation, we name it for the interface!

llvm-svn: 8273
2003-08-31 20:01:57 +00:00
Chris Lattner
076533d11b ELIMINATE the SCC class completely. One less thing deriving from std::vector
llvm-svn: 8272
2003-08-31 19:55:31 +00:00
Chris Lattner
44378dc381 Move the HasLoop method from the SCC class to the iterator class
llvm-svn: 8268
2003-08-31 19:51:22 +00:00
Chris Lattner
05498bc768 Remove explicit passing of SCC's around as objects.
llvm-svn: 8267
2003-08-31 19:46:48 +00:00
Chris Lattner
d96c9204b6 This should use Support/iterator, not <iterator>
llvm-svn: 8266
2003-08-31 19:46:22 +00:00
Chris Lattner
0295b0692d Cleanups, move the getAnalysisUsage method to the .cpp file
llvm-svn: 8265
2003-08-31 19:41:17 +00:00
Chris Lattner
dbde8ba630 Fix an FLAT OUT WRONG comment
llvm-svn: 8263
2003-08-31 19:37:29 +00:00
Chris Lattner
a8dc1ecf58 * Cleanups
* operator* now returns a reference to the current SCC, instead of a possibly
  null pointer

llvm-svn: 8261
2003-08-31 19:34:27 +00:00
Chris Lattner
7dac86e5f5 Add accessor function for the PruneEH pass
llvm-svn: 8254
2003-08-31 16:30:25 +00:00
Chris Lattner
7407775435 Minor simplification
llvm-svn: 8251
2003-08-31 02:50:07 +00:00
Chris Lattner
0fd60ef271 Initial checkin of the CallGraphSCCPass class
llvm-svn: 8247
2003-08-31 01:54:59 +00:00
Chris Lattner
7250c86571 Remove usage of unsigned long: unsigned should be enough!
Remove explicit use of a stack<>, use a vector instead

llvm-svn: 8246
2003-08-31 01:48:21 +00:00
Chris Lattner
31b633bf65 This file uses cerr without including <iostream>. Since it's just for debugging, comment it out
llvm-svn: 8245
2003-08-31 01:45:00 +00:00
Chris Lattner
b860fafea2 s/Meth/F
llvm-svn: 8244
2003-08-31 01:38:00 +00:00
Chris Lattner
84474d02d0 Add new helper function which makes it even easier to do this sort of thing
llvm-svn: 8237
2003-08-31 00:19:18 +00:00
Chris Lattner
3521199bc1 Remove automagic support for Modules. Noone uses it now anyways, and GCC 3.4 doesn't want us to do this unless Module has been #included
llvm-svn: 8216
2003-08-29 14:48:21 +00:00
Chris Lattner
5ec6f80964 Move getAnalysisToUpdate to after the definition of AnalysisResolver.
GCC 3.4 apparently wants classes to be DEFINED before they are USED.  What is
it smoking.

llvm-svn: 8213
2003-08-29 14:26:51 +00:00
Chris Lattner
926a2197ec Fix compilation problems with G++ 3.4
llvm-svn: 8212
2003-08-29 14:22:29 +00:00
Chris Lattner
51f4550b50 Allow for "unsafe" replaceAllUsesWith operatations, for use during type resolution
llvm-svn: 8208
2003-08-29 05:36:05 +00:00
Chris Lattner
d5c685b6fc Add new method
llvm-svn: 8204
2003-08-29 05:08:31 +00:00
Tanya Lattner
ff06e1a796 Moved index in BB to common graph class.
llvm-svn: 8175
2003-08-28 15:31:28 +00:00
Misha Brukman
c2bdd7230c Spell `incompatible' correctly.
llvm-svn: 8163
2003-08-27 18:26:28 +00:00