Chris Lattner
c6135a9ea7
Allow modules to have 'any' pointer size and endianness.
...
llvm-svn: 8117
2003-08-24 13:46:37 +00:00
Chris Lattner
33a8b49795
rethrow is really the language independent primitive here. "throw" can be written
...
in terms of it and llvm.exc.setcurrent.
Rework these intrinsics.
llvm-svn: 8109
2003-08-24 12:24:03 +00:00
Chris Lattner
e61cdf5a6e
Add versions of InlineFunction which work on Invoke instructions and general call sites
...
llvm-svn: 8105
2003-08-24 06:58:32 +00:00
Chris Lattner
6fe728600d
Initial support for recognizing LLVM exception handling intrinsics
...
llvm-svn: 8102
2003-08-24 05:30:29 +00:00
Chris Lattner
851a6f8d37
Allow specifying the name for the newly split basic block
...
llvm-svn: 8097
2003-08-24 03:41:39 +00:00
Chris Lattner
028e23f032
Add period
...
llvm-svn: 8090
2003-08-23 23:15:10 +00:00
Chris Lattner
367cef7b75
Rename SwitchInst::dest_push_back -> addCase
...
Add new removeCase method
llvm-svn: 8088
2003-08-23 23:14:37 +00:00
Chris Lattner
035a14e67f
Of course, the copy ctor really should copy the operand as well
...
llvm-svn: 8077
2003-08-23 20:06:38 +00:00
Chris Lattner
2e682be3b2
Add more methods to be more value-like
...
llvm-svn: 8074
2003-08-23 19:51:10 +00:00
Chris Lattner
9b93eff8bb
Initial checkin of ValueHolder helper class
...
llvm-svn: 8073
2003-08-23 19:43:18 +00:00
Chris Lattner
8e9740071f
Add missing #include
...
llvm-svn: 8063
2003-08-22 23:08:55 +00:00
Chris Lattner
805dd2d1d7
Changes to work better with GCC3.4/LLVM G++
...
llvm-svn: 8054
2003-08-22 14:26:59 +00:00
Misha Brukman
cda7f97dbb
The word dependent' has no
a'.
...
llvm-svn: 8030
2003-08-21 22:14:26 +00:00
John Criswell
8bc390da1b
The JIT now passes the environment pointer to the main() function when it
...
starts a program. This allows the GNU env program to compile and JIT under
LLVM.
llvm-svn: 8022
2003-08-21 21:12:30 +00:00
Chris Lattner
e28c0bf667
Remove unused file
...
llvm-svn: 8021
2003-08-21 20:54:51 +00:00
Chris Lattner
5a88c2d371
Make assertion message more helpful in a case that might happen...
...
llvm-svn: 7975
2003-08-19 21:57:00 +00:00
Chris Lattner
2e6dfe808d
Add new methods, update comments
...
llvm-svn: 7962
2003-08-18 22:10:57 +00:00
Chris Lattner
2c6666efc6
Add intrinsics for the llvm.sig(set|long)jmp functions
...
llvm-svn: 7949
2003-08-18 15:41:24 +00:00
Misha Brukman
56f7db4178
Spell `necessary' correctly.
...
llvm-svn: 7944
2003-08-18 14:43:39 +00:00
Chris Lattner
0674b75f99
Fix bug: LoopPreheaders/2003-08-15-PreheadersFail.ll
...
llvm-svn: 7915
2003-08-16 20:57:16 +00:00
Brian Gaeke
294589d7f6
lib/Support/CommandLine.cpp:
...
Many changes suggested by Chris. It's okay, I'll recover from the emotional
damage...maybe someday. :-)
Collapse ParseCStringVector into ParseStringVector. Comment it.
Make it take a const input.
Use std::string::npos instead of -1 (what a mouthful!)
Make ParseEnvironmentOptions take const inputs.
Check its args at the very beginning.
Strdup all the contents of newArgv and free them all at the end.
include/Support/CommandLine.h:
Constify progName and envVar arguments to ParseEnvironmentOptions().
llvm-svn: 7905
2003-08-15 21:05:57 +00:00
Misha Brukman
52b0a71cee
hash_map and hash_set:
...
* Define HASH_NAMESPACE to `std' in the case of pre-3.0 GCC compilers
* Add comments to clarify the intent of all the #ifdef madness
* Add VIM directive to highlight files as C++
llvm-svn: 7903
2003-08-15 20:01:10 +00:00
Misha Brukman
2416155d3d
Reordered includes to be consistent with the LLVM style.
...
llvm-svn: 7887
2003-08-15 17:52:02 +00:00
Chris Lattner
09d58b8157
Remove extraneous #include
...
llvm-svn: 7881
2003-08-15 05:21:30 +00:00
Chris Lattner
d929db2450
Add support for basic blocks, unary/binary unspecs, conditional branches, ...
...
llvm-svn: 7874
2003-08-15 04:52:51 +00:00
Chris Lattner
6b9c20230f
Remove extraneous cl:: namespace qualifiers
...
llvm-svn: 7852
2003-08-14 22:04:41 +00:00
Brian Gaeke
1fea9addaa
Add support for reading command line arguments from an environment variable.
...
llvm-svn: 7851
2003-08-14 22:00:59 +00:00
Brian Gaeke
4651096037
Factory methods for function passes now return type FunctionPass *.
...
llvm-svn: 7839
2003-08-14 06:09:32 +00:00
Brian Gaeke
4d260a9317
Add new method to FunctionPassManager to add ImmutablePasses.
...
llvm-svn: 7838
2003-08-14 06:07:57 +00:00
Brian Gaeke
77c65be59e
Factory methods for FunctionPasses now return type FunctionPass *.
...
llvm-svn: 7823
2003-08-13 18:18:15 +00:00
Brian Gaeke
2e59087317
Deconstify parameter to getPointerToFunction().
...
llvm-svn: 7822
2003-08-13 18:17:54 +00:00
Brian Gaeke
299cf12f45
addPassesToJITCompile and addPassesToEmitMachineCode now take a
...
FunctionPassManager, to support function-at-a-time compilation and
emission of code.
llvm-svn: 7821
2003-08-13 18:17:27 +00:00
John Criswell
64631c7abe
Removing the pool allocator from the main CVS tree.
...
Use the poolalloc module in CVS from now on.
llvm-svn: 7810
2003-08-13 15:36:15 +00:00
Vikram S. Adve
1e41dd39ae
Make MInst2LVSetBI and MInst2LVSetAI be hash_maps instead of maps.
...
Add some comments and non-const methods to fix constness problems.
llvm-svn: 7797
2003-08-12 23:39:08 +00:00
Brian Gaeke
4243c7aa6a
Add FunctionPassManager - it's like a PassManager, but it only deals in
...
FunctionPasses.
llvm-svn: 7778
2003-08-12 17:22:39 +00:00
Brian Gaeke
0c25ceaba7
If we can't find INT64_MAX, set it to a reasonable default value,
...
instead of printing out an (incorrect) #error message.
llvm-svn: 7744
2003-08-11 20:04:57 +00:00
Chris Lattner
f918b0a5fc
Add support to the mangler for targets which require _'s on global symbols
...
llvm-svn: 7741
2003-08-11 19:34:29 +00:00
Chris Lattner
49f6244b56
Initial checkin of SelectionDAG header file
...
llvm-svn: 7716
2003-08-11 14:56:26 +00:00
Misha Brukman
ca83e0d56b
Remove references to `bugpoint' from the now-generic system utilities.
...
llvm-svn: 7693
2003-08-07 21:33:33 +00:00
Misha Brukman
1e83bc90b9
Moved removeFile() and getUniqueFilename() into FileUtilities.
...
llvm-svn: 7691
2003-08-07 21:28:50 +00:00
Sumant Kowshik
154c4b21ec
Added a flag which is set when all data structures are not pool allocated
...
llvm-svn: 7660
2003-08-07 04:37:52 +00:00
Chris Lattner
142e03de74
There was no reason for these to be bit-fields, they just need to be unique.
...
Also, add an isVoid item
llvm-svn: 7659
2003-08-07 00:17:00 +00:00
Chris Lattner
9d58af6fcf
Add a bunch of new Alpha Intrinsics for Rahul Joshi
...
llvm-svn: 7646
2003-08-06 20:08:25 +00:00
Chris Lattner
138a3fc9ab
Completely eliminate the per-machine-instruction regsUsed set.
...
This substantially shrinks the size of each machine instruction, which should
make allocation faster and the cache footprint of the machine code lighter.
Here are some timings for code generation of the larger benchmarks we have.
This are timings of code generation phases of the X86 JIT, when compiled in
debug mode:
Before After Diff
164.gzip:
InstSel 0.0878 0.0722 -21.6%
RegAlloc 0.2031 0.1757 -15.6%
TOTAL 0.5585 0.4999 -11.7%
Ptrdist-bc:
InstSel 0.0878 0.0722 -21.6%
RegAlloc 0.2070 0.1933 - 7.1%
TOTAL 0.6972 0.6464 - 7.9%
197.parser:
InstSel 0.2148 0.2148 - 0.0%
RegAlloc 0.4941 0.4277 -15.5%
TOTAL 1.3749 1.2851 - 7.0%
175.vpr:
InstSel 0.2519 0.2109 -19.4%
RegAlloc 0.5976 0.5663 - 5.5%
TOTAL 1.6933 1.6347 - 3.5%
254.gap:
InstSel 1.1328 0.9921 -14.2%
RegAlloc 2.6933 2.4804 - 8.6%
TOTAL 7.7871 7.2499 - 7.4%
llvm-svn: 7622
2003-08-05 22:39:13 +00:00
Chris Lattner
a826c8d485
Do not insert physical regsiters into the regsUsed set
...
llvm-svn: 7617
2003-08-05 21:55:20 +00:00
Chris Lattner
bd872cdaaf
Add a comment to the method decl
...
llvm-svn: 7609
2003-08-05 18:38:16 +00:00
Chris Lattner
8da1b00db6
Remove unused method
...
llvm-svn: 7608
2003-08-05 17:09:08 +00:00
Sumant Kowshik
9d60ea4810
Added declaration of mergeInGlobalsGraph
...
llvm-svn: 7607
2003-08-05 17:06:18 +00:00
Chris Lattner
b047a0d449
All callers of these methods actually wanted them to preserve the flags,
...
so get rid of the def/use parameters that were getting passed in.
**** This now changes the semantics of these methods to preserve the flags,
not clobber them!
llvm-svn: 7602
2003-08-05 16:58:46 +00:00
Sumant Kowshik
d0be623358
Added the declaration of InlineIndirectCalls
...
llvm-svn: 7601
2003-08-05 16:56:59 +00:00
Chris Lattner
4c675245b9
The NOOP instruction is no longer needed. Instead, use the
...
TargetInstrInfo::isNOPinstr method
llvm-svn: 7530
2003-08-03 18:52:15 +00:00
Chris Lattner
7ab0de6845
CVS, please don't tell us that we have a new config.h file, everyone knows that.
...
llvm-svn: 7527
2003-08-03 18:31:38 +00:00
Chris Lattner
1dd4e725c7
Move debugging support out of Statistic.h into Debug.h, implement the new DEBUG_TYPE facilities
...
llvm-svn: 7490
2003-08-01 22:12:40 +00:00
Chris Lattner
b3eb22c644
Including statistics into an anonymous namespace that gets #included into
...
every file is a bad idea.
llvm-svn: 7489
2003-08-01 22:12:07 +00:00
Chris Lattner
a1e4389087
New file
...
llvm-svn: 7482
2003-08-01 20:28:55 +00:00
Chris Lattner
2e42e72132
This file doesn't need this include
...
llvm-svn: 7479
2003-08-01 19:16:18 +00:00
Tanya Lattner
f3da6ac76f
Renamed trapping instruction function to be more consistent with other functions in the file.
...
llvm-svn: 7448
2003-07-31 05:08:02 +00:00
Tanya Lattner
8c2ac118ce
Added function to determine if an Instruction may trap.
...
llvm-svn: 7442
2003-07-31 04:05:50 +00:00
Chris Lattner
1fd37738b6
Code generation passes don't need access to raw LLVM types, this method is unnecessary.
...
llvm-svn: 7412
2003-07-30 05:29:45 +00:00
Vikram S. Adve
b73a1c0085
Unify all constant evaluations that depend on register size
...
in TargetInstrInfo::ConvertConstantToIntType.
llvm-svn: 7398
2003-07-29 20:30:20 +00:00
Vikram S. Adve
e02f966e3e
Moved insertCallerSavingCode() to PhyRegAlloc and
...
moved isRegVolatile and modifiedByCall here: they are all
machine independent. Remove all uses of PhyRegAlloc.
llvm-svn: 7387
2003-07-29 19:41:23 +00:00
Vikram S. Adve
37047489b7
Don't require a BB to look-up live variables, unless they may need to
...
be recomputed.
llvm-svn: 7384
2003-07-29 19:32:04 +00:00
John Criswell
b3b18df383
Enable JIT when the platform supports it.
...
Select /localhome/$USER when it exists.
Fix the checks for bidirectional and forward iterators so that they work with
version of GCC prior to 3.x.
llvm-svn: 7383
2003-07-29 19:11:58 +00:00
Chris Lattner
9b62a24451
Fix copy and paste-o
...
llvm-svn: 7378
2003-07-29 05:15:44 +00:00
Chris Lattner
396841f185
Move value type enums to CodeGen/ValueTypes.h
...
llvm-svn: 7376
2003-07-29 05:13:34 +00:00
Chris Lattner
337787e85b
Define target value types in a form usable by target-independent code
...
llvm-svn: 7375
2003-07-29 05:13:09 +00:00
Chris Lattner
f4b6e59dfa
Add alpha intrinsics, contributed by Rahul Joshi
...
llvm-svn: 7372
2003-07-28 21:18:21 +00:00
Misha Brukman
d36940e9ec
Lined things up in a more aesthetically pleasing way.
...
llvm-svn: 7365
2003-07-28 19:17:53 +00:00
Misha Brukman
88c077722e
Removed extra parenthesis and fixed spelling.
...
llvm-svn: 7359
2003-07-28 16:53:28 +00:00
Tanya Lattner
8a8e6e6ed3
Need to include <string> to fix compile error on Sun
...
llvm-svn: 7358
2003-07-28 16:42:33 +00:00
Chris Lattner
a522d0ebf9
Code generation phases are not allowed to modify the LLVM representation.
...
Because of this, we'll make the MBB->BB mapping const as it should be
llvm-svn: 7351
2003-07-26 23:30:37 +00:00
Chris Lattner
e99fa3f42e
Whoops, this one was needed
...
llvm-svn: 7346
2003-07-26 23:18:11 +00:00
Chris Lattner
9224631d6b
Remove extraneous #includes
...
llvm-svn: 7341
2003-07-26 23:00:29 +00:00
Chris Lattner
2bf24be50e
Remove #includes
...
llvm-svn: 7339
2003-07-26 22:56:46 +00:00
Vikram S. Adve
73f410f53f
Change the way unused regs. are marked and found to consider regType
...
info (since multiple reg types may share the same reg class).
Remove machine-specific regalloc. methods that are no longer needed.
llvm-svn: 7328
2003-07-25 21:01:43 +00:00
Vikram S. Adve
19309fca4b
Add an assertion.
...
llvm-svn: 7326
2003-07-25 20:58:57 +00:00
Brian Gaeke
2742a70083
Forward-declare class Module to make the header file self-contained.
...
llvm-svn: 7319
2003-07-25 20:20:53 +00:00
Chris Lattner
d68c05b473
More cassert inclusion for GCC 3.3
...
llvm-svn: 7318
2003-07-25 18:06:53 +00:00
Chris Lattner
be4a5081d1
#include <cassert> as necessary...
...
llvm-svn: 7315
2003-07-25 17:58:41 +00:00
Chris Lattner
a0b09ab5d9
Fix another accessibility problem illuminated by GCC 3.3
...
llvm-svn: 7314
2003-07-25 17:49:28 +00:00
Chris Lattner
715b7be844
Fix visibility problem exposed by GCC 3.3
...
llvm-svn: 7313
2003-07-25 17:46:25 +00:00
Chris Lattner
56c01f1a1e
Remove inline declarations that GCC 3.3 doesn't like without a body
...
llvm-svn: 7312
2003-07-25 17:39:33 +00:00
Chris Lattner
d776276bda
Regardless of whether C provides assert.h, C++ source can always include
...
<cassert>, making this header unneeded.
llvm-svn: 7311
2003-07-25 17:35:03 +00:00
Chris Lattner
9390472890
Use the C++ <cassert> header, not the C <assert.h> header
...
llvm-svn: 7310
2003-07-25 17:34:17 +00:00
Chris Lattner
1adb1fcb82
This header works with GCC 3.3
...
llvm-svn: 7309
2003-07-25 17:33:45 +00:00
Chris Lattner
754138fc7d
Add includes of assert
...
llvm-svn: 7307
2003-07-25 17:23:27 +00:00
Chris Lattner
63d911d12e
Fix accessibility problems GCC 3.3
...
llvm-svn: 7306
2003-07-25 17:23:13 +00:00
Chris Lattner
fa412837cb
Add assert.h include
...
llvm-svn: 7305
2003-07-25 16:47:07 +00:00
Chris Lattner
72684e9492
Convert to C++ style comments
...
llvm-svn: 7304
2003-07-25 15:08:08 +00:00
Vikram S. Adve
be5721dddb
Include vector into these two files to ensure that specializations like
...
stl_bvector.h are correctly included into *anything* that includes hash_map
or hash_set. ext/hash_map includes stl_vector.h directly and leaves
out the specializations, causing truly nasty bugs due to inconsistent
versions of vector<> being used for vector<bool> in different files.
llvm-svn: 7303
2003-07-25 14:06:13 +00:00
Brian Gaeke
d9979a5529
Cleanups:
...
Mangler.cpp: Constify parameter to makeNameProper, and use const_iterator.
Make Count an unsigned int, and use utostr().
Don't name parameters things that start with underscore.
Mangler.h: All of the above, and also: Add Emacs mode-line. Include <set>.
llvm-svn: 7301
2003-07-24 21:37:57 +00:00
Brian Gaeke
e5ae59ad05
Factor out name-mangling from X86/Printer, which is derived from CWriter,
...
into this new support class.
llvm-svn: 7300
2003-07-24 20:20:58 +00:00
Chris Lattner
04652336b2
Add support for ~ operator on constants
...
llvm-svn: 7258
2003-07-23 17:21:17 +00:00
Chris Lattner
1351c304dc
Remove redundant const qualifiers from cast<> expressions
...
llvm-svn: 7253
2003-07-23 15:30:06 +00:00
Chris Lattner
913c260d94
Add more doxygen comments, add new ConstantInt::getRawValue method
...
llvm-svn: 7244
2003-07-23 14:49:06 +00:00
Anand Shukla
351c0f6342
Added special consideration for instrumentation strategy
...
llvm-svn: 7208
2003-07-20 15:39:30 +00:00
Vikram S. Adve
2d617afa1a
(1) Added DSGraph::cloneReachableSubgraph and DSGraph::cloneReachableNodes
...
to clone the subgraph reachable from a set of root nodes, into the
current graph, merging the global nodes into those in the current graph.
(2) Added DSGraph::updateFromGlobalGraph() to rematerialize nodes from the
globals graph into the current graph in both BU and TD passes.
(3) Added hash_set<const GlobalValue*> InlinedGlobals: a set of globals to
track which globals have been inlined into the current graph from
callers or callees. In the TD pass, such globals are up-to-date and
do not need to be rematerialized from the GlobalsGraph.
(4) Added StripIncompleteBit/KeepIncompleteBit to remove incomplete bit
when cloning nodes into the globals graph.
llvm-svn: 7190
2003-07-16 21:45:15 +00:00
Misha Brukman
5de3e14206
The word separate' only has one
e'.
...
llvm-svn: 7173
2003-07-14 17:20:40 +00:00
Vikram S. Adve
d8b600cb85
Values stored in CallArgsDescriptor cannot be const.
...
llvm-svn: 7156
2003-07-10 19:46:15 +00:00
Vikram S. Adve
6aa3abf7fa
Change interface to MachineInstr::substituteValue to specify more precisely
...
which args can be substituted: defsOnly, defsAndUses or usesOnly.
llvm-svn: 7154
2003-07-10 19:45:07 +00:00
Misha Brukman
c12238543a
Lowercase versions of `occurrence' need to be spelled correctly, too.
...
llvm-svn: 7142
2003-07-10 17:05:26 +00:00
Misha Brukman
14194dcdae
Occurrence' has no
a' and the `r' is doubled.
...
llvm-svn: 7140
2003-07-10 16:49:51 +00:00
Chris Lattner
727a2aaf1e
INCLUDE_PARENT_GRAPH is required
...
llvm-svn: 7089
2003-07-02 23:57:21 +00:00
Chris Lattner
05ead58250
Remove dead method
...
llvm-svn: 7083
2003-07-02 23:43:06 +00:00
Chris Lattner
fd4af836c2
Add new methods
...
llvm-svn: 7057
2003-07-02 04:37:00 +00:00
Chris Lattner
9e36c26ed9
Disable the parent graph code when not compiled in DEBUG mode
...
llvm-svn: 7056
2003-07-02 04:33:55 +00:00
Vikram S. Adve
e133e7d852
Leak fix: delete old objects before reallocation in an assignment operator!
...
llvm-svn: 7055
2003-07-02 01:25:44 +00:00
Chris Lattner
a80bdacdce
TD pass keeps track of which functions have complete arguments
...
llvm-svn: 7048
2003-07-01 21:12:10 +00:00
Chris Lattner
215aabe53f
Add new operator= impl
...
llvm-svn: 7047
2003-07-01 21:11:59 +00:00
Chris Lattner
c5f892c867
Ok, I'm a moron. Fixed now
...
llvm-svn: 7035
2003-07-01 17:15:11 +00:00
Chris Lattner
c09d40c234
Fix major problem that was causing all kinds of nasty foldings
...
llvm-svn: 7034
2003-07-01 17:10:50 +00:00
Chris Lattner
e0dbd43e2f
Add new methods to BUDS for keeping track of a precise call graph
...
llvm-svn: 7028
2003-07-01 16:27:15 +00:00
John Criswell
258dfc0319
Merged in autoconf branch. This provides configuration via the autoconf
...
system.
llvm-svn: 7014
2003-06-30 21:59:07 +00:00
Chris Lattner
cb32be085b
Add new method
...
llvm-svn: 7007
2003-06-30 05:57:30 +00:00
Chris Lattner
6de58997b5
Be more const correct
...
llvm-svn: 7004
2003-06-30 05:27:05 +00:00
Chris Lattner
8ef5ebb1d7
Constness changes
...
llvm-svn: 7002
2003-06-30 05:10:09 +00:00
Chris Lattner
e6df85809f
Substantial revamp: DSGraphs now may contain the graphs for multiple functions
...
in the same graph
llvm-svn: 6991
2003-06-30 03:14:23 +00:00
Chris Lattner
e0e0686413
Add argument
...
llvm-svn: 6990
2003-06-30 03:13:36 +00:00
Chris Lattner
ff71b43ac7
Remove prototype for dead method
...
llvm-svn: 6989
2003-06-30 03:13:28 +00:00
Chris Lattner
4b3d2c7c90
Add support for gathering sets of must aliases
...
llvm-svn: 6971
2003-06-29 00:23:11 +00:00
Chris Lattner
c059f6cce9
Add new DSGraph::ScalarMapTy typedef to avoid pulling representation issues
...
into callers of getScalarMap
llvm-svn: 6944
2003-06-28 21:57:13 +00:00
Chris Lattner
3b60ccaedb
Add new 'isComplete' method
...
llvm-svn: 6943
2003-06-28 21:56:42 +00:00
Chris Lattner
4d3ee0f3b1
Add support for 'unsigned' command line arguments
...
llvm-svn: 6928
2003-06-28 15:47:20 +00:00
Brian Gaeke
6f2c46cd52
Nice tasty llc fixes. These should fix LLC for x86 for everything in
...
SingleSource except oopack and Oscar. (Sorry, Oscar.)
include/llvm/Target/TargetInstrInfo.h: Remove virtual print method. Add
accessors for ImplicitUses/Defs.
lib/Target/TargetInstrInfo.cpp: Remove virtual print method. If you
really wanted this, just use MI->print(O, TM); instead...
lib/Target/X86:
FloatingPoint.cpp: ...like this.
X86InstrInfo.h: Remove virtual print method. Define the PrintImplUses
target-specific flag bit.
X86InstrInfo.def: Add the PrintImplUses flag to all the instructions
which implicitly use CL, because the assembler needs to see the CL in
order to generate the right instruction.
Printer.cpp: Ditch fnIndex at Chris's request. Now we use CurrentFnName
to name constants in the constant pool for each function instead. This
avoids keeping state between runOnMachineFunction() invocations, which
is a no-no. Having MangledGlobals be global is a bogon I'd like to get
rid of too, but making it a static member of Printer causes link errors
(why???).
Make NumberForBB into a member of Printer instead of a global, too.
Make printOp and printMemReference into methods of Printer.
X86InstrInfo::print is now Printer::printMachineInstruction, because
TargetInstrInfo::print is history. (Because of this, we have to qualify
the names of some TargetInstrInfo methods we call.)
Print out the ImplicitUses field of any instruction we print that has
the PrintImplUses bit set.
llvm-svn: 6924
2003-06-27 00:00:48 +00:00
Chris Lattner
e3d0b99978
Add argument to DAE to allow operation on non-internal functions
...
llvm-svn: 6895
2003-06-25 04:12:49 +00:00
Chris Lattner
6c260f1c5c
Add prototype for tail-dup pass
...
llvm-svn: 6847
2003-06-22 20:10:42 +00:00
Chris Lattner
3f347a99a0
Get rid of WORDSIZE macro which can pollute untold numbers of translation units
...
llvm-svn: 6843
2003-06-22 03:09:10 +00:00
Chris Lattner
6c12776232
Remove a ton of extraneous #includes
...
llvm-svn: 6842
2003-06-22 03:08:05 +00:00
Chris Lattner
7a098ad5dc
Whoops, accidentally lost a #include
...
llvm-svn: 6841
2003-06-22 03:04:58 +00:00
Chris Lattner
ddfeef3d7a
Remove support for the MultiObject flag, which was just fundamentally broken
...
llvm-svn: 6839
2003-06-22 03:03:24 +00:00
Chris Lattner
d07e211972
Lots of changes to make the NodeType field private to DSNode.
...
Add new MultiObject flag
llvm-svn: 6793
2003-06-19 21:14:22 +00:00
Chris Lattner
b03ec62b2b
Update comments
...
llvm-svn: 6785
2003-06-19 17:03:00 +00:00
Chris Lattner
75e1e892a6
Detemplatize the PATypeHandle class, which was only really instantiated on 'Type'.
...
llvm-svn: 6774
2003-06-18 19:22:36 +00:00
Chris Lattner
67594b9975
* Add new CallSite::get factory method
...
* add new setCalledFunction method
* FIX arg_end method which was horribly broken!
llvm-svn: 6758
2003-06-17 22:16:59 +00:00
Chris Lattner
8903500053
Add new op_erase method
...
llvm-svn: 6757
2003-06-17 22:15:55 +00:00
Chris Lattner
5615d77ee1
Make sure accessor is properly doxygenized. It wants two lines
...
llvm-svn: 6756
2003-06-17 21:44:51 +00:00
Chris Lattner
260440f727
Add accessor
...
llvm-svn: 6755
2003-06-17 21:44:31 +00:00
Chris Lattner
8b6107ebf2
Make CallSite's default constructable, copyable, and assignable (explicitly)
...
llvm-svn: 6749
2003-06-17 19:50:28 +00:00
Brian Gaeke
e231d9ad37
Regularize the names of #include-guards.
...
llvm-svn: 6732
2003-06-17 00:35:55 +00:00
Brian Gaeke
4681b27a92
Isolate machine-dependent use of <alloca.h> in "Support/Alloca.h",
...
so that we can easily change its use to be conditional on the result of
an autoconf test later.
llvm-svn: 6723
2003-06-16 21:54:01 +00:00
Brian Gaeke
2bbe853b9c
Whoops. I didn't mean to step on John's changes.
...
llvm-svn: 6722
2003-06-16 21:18:20 +00:00
Brian Gaeke
3576ca2d21
This version supports FreeBSD.
...
llvm-svn: 6721
2003-06-16 21:14:57 +00:00
Chris Lattner
f6973b0f28
Add prototype for the new DAE pass
...
llvm-svn: 6703
2003-06-16 12:16:52 +00:00
John Criswell
7e0327045f
Changed the LITTLE_ENDIAN and BIG_ENDIAN macros to ENDIAN_LITTLE and ENDIAN_BIG.
...
This will prevent them from conflicting with macros defined by the system
header files.
When autoconf comes, this will look a lot nicer.
llvm-svn: 6684
2003-06-11 19:44:51 +00:00
John Criswell
4781723de6
Included assert.h so that the code compiles under newer versions of GCC.
...
llvm-svn: 6682
2003-06-11 14:01:36 +00:00
Sumant Kowshik
a961b3c083
Made changes suggested by Chris
...
llvm-svn: 6606
2003-06-04 08:03:57 +00:00
Sumant Kowshik
9336b0901b
Made changes suggested by Chris; Renamed 'union' function to unionSetsWith
...
llvm-svn: 6605
2003-06-04 08:00:05 +00:00
Chris Lattner
9bd4cfa823
Add new setCondition member
...
llvm-svn: 6603
2003-06-04 05:08:31 +00:00
Chris Lattner
7aaea42f1e
Minor cleanups:
...
* Document the MOTy namespace correctly for doxygen
* Eliminate usage of the MachineOpCode typedef, which should eventually
be eliminated entirely.
llvm-svn: 6584
2003-06-03 15:42:53 +00:00
Chris Lattner
846c593142
Remove use of enum
...
llvm-svn: 6582
2003-06-03 15:41:45 +00:00
Chris Lattner
b91ad88918
There are now no uses of NonCopyableV
...
llvm-svn: 6580
2003-06-03 15:30:48 +00:00
Chris Lattner
775ec2f5fe
Add doxygen comment for namespace
...
llvm-svn: 6579
2003-06-03 15:30:37 +00:00
Chris Lattner
b563188e45
Add comment for doxygen for namespace
...
llvm-svn: 6578
2003-06-03 15:30:13 +00:00
Chris Lattner
506de1c176
Minor cleanups:
...
* LLVM #include should use "", not <>
* Fix line wrapping
* Remove noncopyable base class to improve doxygen output
llvm-svn: 6577
2003-06-03 15:30:01 +00:00
Chris Lattner
b1c22980b1
Remove noncopyable base class as it was making the doxygen docs harder to read
...
llvm-svn: 6576
2003-06-03 15:29:12 +00:00
Chris Lattner
347bd5fb6f
Remove noncopyableV base classes, as they were confusing the doxygen documentation,
...
making it harder to read.
llvm-svn: 6575
2003-06-03 15:28:40 +00:00
Chris Lattner
68f1b02a60
Remove NonCopyable base class to clean up doxygen output
...
llvm-svn: 6551
2003-06-02 22:07:37 +00:00
Chris Lattner
d94534c537
Hack up MachineCodeEmitter to actually be target independent.
...
llvm-svn: 6514
2003-06-01 23:20:02 +00:00
Tanya Lattner
eaa01f0821
Fixed comment width, changed arg to be const, fixed indentation, removed unnecessary includes.
...
llvm-svn: 6476
2003-05-31 20:01:37 +00:00
Vikram S. Adve
9625e27034
Made a single common InvalidRegNum = -1.
...
llvm-svn: 6473
2003-05-31 07:44:07 +00:00
Vikram S. Adve
2c9fc5ded3
Renamed a variable.
...
llvm-svn: 6472
2003-05-31 07:43:41 +00:00
Vikram S. Adve
c40874054e
Support for annul/pred and other future flags on op codes.
...
Support for recording the physical register for implcit references.
llvm-svn: 6471
2003-05-31 07:43:01 +00:00
Vikram S. Adve
d43c10b583
Added MachineCodeForInstruction object as an argument to
...
TmpInstruction constructors because every TmpInstruction object has
to be registered with a MachineCodeForInstruction to prevent leaks.
This simplifies the user's code.
llvm-svn: 6469
2003-05-31 07:41:24 +00:00
Misha Brukman
c5a1e94883
Added saveBBreferences() for BasicBlock resolution.
...
llvm-svn: 6451
2003-05-30 20:32:45 +00:00
Tanya Lattner
ceefb5002a
Sorry, correcting small typo.
...
llvm-svn: 6433
2003-05-30 15:53:50 +00:00
Tanya Lattner
117f7c0082
Added support for cloning a trace.
...
llvm-svn: 6430
2003-05-30 15:48:23 +00:00
Sumant Kowshik
d26d2d9d2b
Implementation of Equivalence Classes
...
llvm-svn: 6422
2003-05-29 22:44:25 +00:00
Sumant Kowshik
f022bd6bf3
Changes to support function pointers
...
llvm-svn: 6421
2003-05-29 22:43:46 +00:00
Chris Lattner
d3eae6379d
Don't require the user to do something like isa<foo>(II->get()). The ->get
...
should be implicit.
llvm-svn: 6395
2003-05-29 15:08:33 +00:00
Chris Lattner
12d13d5751
dyn_cast_or_null should work just the same as dyn_cast does
...
llvm-svn: 6394
2003-05-29 15:07:48 +00:00
Chris Lattner
47842943a5
Doxygenify comments
...
llvm-svn: 6393
2003-05-29 15:06:40 +00:00
Misha Brukman
ef428e8dca
Fixed misspelling and broke a line that was wrapping.
...
llvm-svn: 6391
2003-05-29 05:00:14 +00:00
Misha Brukman
6e0ae68c05
Defines a pass-through debugging emitter -- it writes to a file for inspection
...
and to memory to test execution (using a passed-in code emitter).
llvm-svn: 6365
2003-05-27 21:46:56 +00:00
Misha Brukman
2f45624868
Allow allocation of a Sparc TargetMachine.
...
llvm-svn: 6364
2003-05-27 21:46:07 +00:00
Chris Lattner
593cb8cafe
Expose proto for SRoA pass.
...
llvm-svn: 6348
2003-05-27 15:52:45 +00:00
Vikram S. Adve
73ee5ff6b8
(1) Added special register class containing (for now) %fsr.
...
Fixed spilling of %fcc[0-3] which are part of %fsr.
(2) Moved some machine-independent reg-class code to class TargetRegInfo
from SparcReg{Class,}Info.
llvm-svn: 6343
2003-05-27 00:07:13 +00:00
Vikram S. Adve
ab50c0aee5
Renamed MachienOperand::opIsDef to MachineOperand::opIsDefOnly()
...
and related functions and flags. Fixed several bugs where only
"isDef" was being checked, not "isDefAndUse".
llvm-svn: 6342
2003-05-27 00:06:48 +00:00
Vikram S. Adve
e3af518f95
Make case of GetNumOfInt/FloatArgRegs functions to be use lower case
...
like all the other functions.
llvm-svn: 6326
2003-05-25 16:02:05 +00:00
Misha Brukman
6ffaa5b188
Reword to remove reference to how things worked in the past.
...
llvm-svn: 6323
2003-05-24 01:08:43 +00:00
Misha Brukman
151f7484ab
NOP instructions are pseudo-instructions. We should not have them explicitly in
...
our representation, since they are usually special cases of already-existing
instructions.
This abstracts away methods that let a pass create and verify a NOP instruction,
without relying on a `NOP' enum to be in existence in the target's instruction
info descriptor.
llvm-svn: 6319
2003-05-24 00:08:39 +00:00
Chris Lattner
9cdb6fdeaa
Remove some cruft, add some methods to allow implementation of bugfix for
...
Bug: Linker/2003-04-26-NullPtrLinkProblem.ll
llvm-svn: 6313
2003-05-23 20:02:05 +00:00
Chris Lattner
e7c3c48fb4
Minor rewording/cleanups
...
llvm-svn: 6311
2003-05-23 17:13:15 +00:00
Chris Lattner
aaf60fb906
Remove long dead code
...
llvm-svn: 6307
2003-05-22 22:00:54 +00:00
Chris Lattner
9581bba352
Add support for a new "CommaSeparated" modifier
...
llvm-svn: 6293
2003-05-22 20:25:57 +00:00
Chris Lattner
1358ad783e
New method
...
llvm-svn: 6259
2003-05-21 17:49:08 +00:00
Misha Brukman
825e174bf7
Hopefully, the final fix for `[Pp]ropogate'.
...
llvm-svn: 6251
2003-05-20 21:01:22 +00:00
Misha Brukman
74cf3f5246
s/convertable/convertible/g
...
llvm-svn: 6248
2003-05-20 18:45:36 +00:00
Misha Brukman
ecdaad27d6
The plural of `Pass' is Passes, not Pass's.
...
llvm-svn: 6247
2003-05-20 18:39:06 +00:00
Chris Lattner
435e5592a9
Add support for setjmp/longjmp primitives
...
Patch checked in for Bill Wendling :)
llvm-svn: 6241
2003-05-17 22:26:33 +00:00
Chris Lattner
0619ee9f39
Add some methods to make type safety a bit easier
...
llvm-svn: 6198
2003-05-14 17:49:52 +00:00
Chris Lattner
afc685b278
Beef up interface, move getVarInfo out-of-line.
...
llvm-svn: 6114
2003-05-12 14:23:04 +00:00
Chris Lattner
d06c47110a
Expand API for updating live var info.
...
Expose iterators, not const-iterators.
Rename method that was VERY misleading
llvm-svn: 6108
2003-05-12 03:51:30 +00:00
Chris Lattner
46f2fc75da
Make sure that globals are emitted AFTER the passmanager is set up for the JIT,
...
because the globals may refer to functions that need to be compiled!
llvm-svn: 6105
2003-05-12 02:14:34 +00:00
Joel Stanley
14866a103c
Fixed comment.
...
llvm-svn: 6072
2003-05-10 01:56:42 +00:00
Chris Lattner
c2861218f5
Update out of date comment
...
llvm-svn: 6070
2003-05-09 22:16:18 +00:00
Chris Lattner
8c98a8f5bd
Updates to match recent timer updates
...
llvm-svn: 6069
2003-05-09 20:44:22 +00:00
Chris Lattner
451890e365
Add new method to check to see if a global is available
...
llvm-svn: 6058
2003-05-09 03:29:03 +00:00
Chris Lattner
3160b1235e
Allow const functions
...
llvm-svn: 6056
2003-05-09 03:27:41 +00:00
Chris Lattner
836e8c1f2a
Fix bug in last checkin
...
llvm-svn: 6055
2003-05-08 22:00:52 +00:00
Chris Lattner
7c8bf633a5
Add new methods for stub generation
...
llvm-svn: 6053
2003-05-08 21:53:57 +00:00
Chris Lattner
ba9142280a
Add a pointersize/endianness safe load routine to match the store routine
...
llvm-svn: 6042
2003-05-08 16:52:16 +00:00
Chris Lattner
6b02f9dcc3
Initial support for intrinsic functions
...
llvm-svn: 6033
2003-05-08 03:34:12 +00:00
Chris Lattner
1ea6fe252b
Initial checkin for LLVM intrinsic functions
...
llvm-svn: 6032
2003-05-08 03:33:54 +00:00
Chris Lattner
1c7dcb91d4
Add support for the new VarArgInst instruction, reindent some stuff
...
llvm-svn: 6028
2003-05-08 02:43:06 +00:00
Chris Lattner
bb2a0102ae
Add new VarArgInst class for the va_arg instruction
...
llvm-svn: 6027
2003-05-08 02:42:50 +00:00
Chris Lattner
d2fae9f27c
Add comments, add a vector to keep track of which registers are allocatable
...
llvm-svn: 6014
2003-05-07 20:07:58 +00:00
Chris Lattner
ff78e3f3e4
Fix memory corruption problem
...
llvm-svn: 6003
2003-05-06 18:45:02 +00:00
Misha Brukman
0cd9e6371c
It's 'separate'. The 'i.e.' is kinda nit-picking, but think of it this way:
...
'separate' is the one causing you to recompile all your passes anyway.
llvm-svn: 5992
2003-05-03 03:31:06 +00:00
Chris Lattner
bbe1aba425
Remove two fields from TargetData which are target specific.
...
llvm-svn: 5963
2003-04-26 20:11:09 +00:00
Chris Lattner
97c9c55218
Revert last checkin. Note that PHI nodes can use basic blocks also!
...
llvm-svn: 5956
2003-04-26 17:38:26 +00:00
Chris Lattner
e833466012
Remove long-dead obsolete cruft
...
llvm-svn: 5955
2003-04-25 23:39:08 +00:00
Chris Lattner
a550ee6b5d
Fix method name type-o
...
llvm-svn: 5933
2003-04-25 05:23:27 +00:00
Chris Lattner
d9a8a29c6f
*** Huge: Make constantexprs be handled correctly, conservatively
...
llvm-svn: 5923
2003-04-25 02:51:46 +00:00
Chris Lattner
a106185aa1
Default ctor doesn't provide name
...
llvm-svn: 5921
2003-04-25 02:50:19 +00:00
Chris Lattner
55a4aea29b
Add new targetdata ctor to create a targetdata appropriate to the module
...
llvm-svn: 5902
2003-04-24 19:08:45 +00:00
Chris Lattner
9485cd4e9b
Remove support for "targetdata pass ctors"
...
llvm-svn: 5901
2003-04-24 18:41:30 +00:00
Chris Lattner
9c67ad476b
LevelRaise now gets TD from passmanager
...
llvm-svn: 5897
2003-04-24 18:25:42 +00:00
Chris Lattner
a568a9261a
Kill unneccesary &*
...
llvm-svn: 5870
2003-04-23 16:35:30 +00:00
Chris Lattner
0a9913935f
Add stub to create lowerSwitches pass
...
llvm-svn: 5866
2003-04-23 16:24:19 +00:00
Chris Lattner
d767c0847c
Allow autoconversion from ilist_iterator<T> to T* in a dyn_cast and friends
...
llvm-svn: 5862
2003-04-23 16:17:53 +00:00
Chris Lattner
e60fff42cc
Allow dyn_cast to operate on things that aren't OBVIOUSLY a pointer type.
...
These things can be converted to a pointer, like ilist_iterators
llvm-svn: 5861
2003-04-23 16:17:28 +00:00
Chris Lattner
85d01fed47
Add information about the module source
...
llvm-svn: 5837
2003-04-22 18:03:13 +00:00
Chris Lattner
b5fc5522fb
Add support for tracking whether a module is 64/32 bit and big/little endian
...
Also add a moduleID field which can be used for diagnostics
llvm-svn: 5834
2003-04-22 18:02:04 +00:00
Chris Lattner
a20c5c7083
Add prototype to read .a files
...
llvm-svn: 5821
2003-04-19 21:45:52 +00:00
Chris Lattner
17200af63c
Add prototype for new CloneBasicBlock function
...
llvm-svn: 5804
2003-04-18 03:49:22 +00:00
Chris Lattner
1add946814
Don't force a ConstantPointer to be returned
...
llvm-svn: 5799
2003-04-17 19:22:47 +00:00
Chris Lattner
bb00f755ed
Change the interface to constant expressions to allow automatic folding
...
llvm-svn: 5793
2003-04-16 22:40:51 +00:00
Chris Lattner
19e35f5a22
Revert modulo scheduling change that should be part of the modulo-sched pass itself,
...
not part of the Instruction class.
llvm-svn: 5787
2003-04-16 20:30:02 +00:00
Chris Lattner
fa4f750f3e
Add new linkage types to support a real frontend
...
llvm-svn: 5786
2003-04-16 20:28:45 +00:00
Misha Brukman
71aef01e7e
Must use std::pair instead of just 'pair'.
...
llvm-svn: 5767
2003-04-07 00:25:09 +00:00
Guochun Shi
59e61c4ce2
added a function and a member to the TargetSchedInfo class
...
which is used by Modulo Scheduling pass
llvm-svn: 5766
2003-04-07 00:00:36 +00:00
Guochun Shi
62370b42ad
added some memory for clone function
...
llvm-svn: 5765
2003-04-06 23:58:44 +00:00
Chris Lattner
190480ecfe
Add getAnalysisUsage method
...
llvm-svn: 5756
2003-03-31 17:29:18 +00:00
Chris Lattner
8696069d85
Add helper method
...
llvm-svn: 5753
2003-03-21 21:41:02 +00:00
Chris Lattner
f472a964a9
Update comment
...
llvm-svn: 5752
2003-03-21 21:40:39 +00:00
Chris Lattner
cf6eb5232a
Add more graph traits specializations for dominator tree nodes
...
llvm-svn: 5751
2003-03-20 21:21:05 +00:00
Chris Lattner
8c1c878dcb
Add new chunk type
...
llvm-svn: 5747
2003-03-19 20:48:27 +00:00
Chris Lattner
0381679b6e
Fix problems with BitSetVector that makes it not compile under GCC 3.0 and 2.95
...
llvm-svn: 5745
2003-03-17 18:11:27 +00:00
Chris Lattner
5e5950b7e0
Fix ConstantUInt::isAllOnesValue
...
llvm-svn: 5734
2003-03-10 22:39:02 +00:00
Chris Lattner
07a7a75331
Extend struct and array constants to support isNullValue
...
llvm-svn: 5719
2003-03-06 21:02:43 +00:00
Chris Lattner
a1d58f804e
Generalize interface a bit
...
llvm-svn: 5711
2003-03-06 16:50:21 +00:00
Chris Lattner
480507e92d
Add new getIncomingValueForBlock method
...
Relax a bit about constness
llvm-svn: 5709
2003-03-06 16:36:28 +00:00
Chris Lattner
92a316864d
Simplify some of the PHI node interfaces
...
llvm-svn: 5700
2003-03-05 21:15:12 +00:00
Chris Lattner
3e34da7458
Add a few new 'add' methods. Move the iterator around
...
llvm-svn: 5690
2003-03-03 23:27:52 +00:00
Chris Lattner
a49e96dda5
Change the mem2reg interface to accept a TargetData argument
...
llvm-svn: 5685
2003-03-03 17:25:18 +00:00
Chris Lattner
41e9bb787e
Don't apply type information to loads
...
llvm-svn: 5683
2003-03-03 17:13:22 +00:00
Chris Lattner
6046dda16e
Add dump method for loops
...
llvm-svn: 5670
2003-02-28 16:54:37 +00:00
Chris Lattner
cffe1c533c
Add graph traits specializations for loop nesting information...
...
llvm-svn: 5666
2003-02-28 03:05:15 +00:00
Chris Lattner
e6443c72fe
Add new Loop::hasExitBlock helper method
...
llvm-svn: 5663
2003-02-27 22:48:28 +00:00
Chris Lattner
c37308604f
Change behavior of changeExitBlock function to replace all instances of exit block
...
llvm-svn: 5661
2003-02-27 22:37:44 +00:00
Chris Lattner
db73d0ceab
Make the interface to update a little more efficient
...
llvm-svn: 5651
2003-02-27 20:24:17 +00:00
Chris Lattner
4efef545d2
* LoopInfo now keeps track of exit blocks from the loop
...
* New LoopInfo::isLoopHeader method
* Remove some #if 0 code
llvm-svn: 5649
2003-02-27 00:37:22 +00:00
Chris Lattner
5baf8bb966
Make the aliassettracker much more precise by actually tracking size
...
information for various accesses. What a concept.
llvm-svn: 5647
2003-02-26 22:11:00 +00:00
Chris Lattner
374168a56e
BasicAA doesn't need a public header
...
llvm-svn: 5639
2003-02-26 19:41:46 +00:00
Chris Lattner
f3a3d13d24
Tweak to work with new AA implementation
...
llvm-svn: 5632
2003-02-26 19:25:04 +00:00
Chris Lattner
8a8dc5b686
Checkin of new alias analysis interface:
...
* Takes into account the size of the memory reference to determine aliasing.
* Expose mod/ref information in a more consistent way
llvm-svn: 5631
2003-02-26 19:24:47 +00:00
Chris Lattner
7f0e8c4d31
* Un "protect" the getAnalysis<> functions
...
* Add a new initializePass() method to ImmutablePass
llvm-svn: 5629
2003-02-26 19:10:28 +00:00
Chris Lattner
38e874dd6e
Add new helper template function
...
llvm-svn: 5622
2003-02-25 00:00:50 +00:00
Chris Lattner
497c0d443c
Rename Instruction::hasSideEffects() -> mayWriteToMemory()
...
llvm-svn: 5620
2003-02-24 20:48:32 +00:00
Chris Lattner
f2009dbddb
This is a substantial rewrite of the AliasSetTracker class which now uses
...
a union-find based algorithm, is significantly faster, and is more general.
It will also scale to handle call instructions correctly, which is a nice
added bonus.
This includes a new pass -print-alias-sets which can be used to show how
alias sets are formed for a particular analysis.
llvm-svn: 5619
2003-02-24 20:37:56 +00:00
Chris Lattner
caba6cfcf5
Initial checkin of CallSite wrapper for Call/Invoke instructions
...
llvm-svn: 5618
2003-02-24 20:35:45 +00:00
Chris Lattner
a54b810eeb
Fix #endif
...
llvm-svn: 5615
2003-02-24 04:40:35 +00:00
Chris Lattner
e037ba8cde
Add support for the slist extension
...
llvm-svn: 5614
2003-02-24 04:31:49 +00:00
Chris Lattner
74aa1f8c03
Add a new interface file for the PromoteMemToReg interface in the Utils library
...
llvm-svn: 5609
2003-02-22 23:04:52 +00:00
Chris Lattner
120d135f05
Move node forwarding code from being inlined to being out-of-line.
...
This brings a 11.6% speedup to steens, and a 3.6 overall speedup to ds-aa
llvm-svn: 5552
2003-02-13 19:09:00 +00:00
Chris Lattner
522cb6d282
Implement a "union-findy" version of DS-Analysis, which eliminates the
...
Referrers list on DSNodes.
llvm-svn: 5536
2003-02-11 23:11:51 +00:00
Chris Lattner
d4faf8a5da
Fix uninitialized member problem
...
llvm-svn: 5534
2003-02-11 06:36:00 +00:00
Chris Lattner
fade2f7d18
Bugfix for calling dump() after the links vector has been cleared
...
llvm-svn: 5533
2003-02-10 22:46:47 +00:00
Chris Lattner
723795113f
Move getNode() out of line
...
llvm-svn: 5531
2003-02-10 18:19:41 +00:00
Chris Lattner
4528fd1e2a
Implement a new method "viewGraph" which can be used to instantly view a graph from GDB.
...
llvm-svn: 5529
2003-02-10 18:17:38 +00:00
Chris Lattner
b86f27cc1f
TD Pass now does not cause globals to mark nodes incomplete.
...
llvm-svn: 5512
2003-02-09 18:40:25 +00:00
Chris Lattner
5f3ef2f0e7
Implement optimization for direct function call case. This dramatically
...
reduces the number of function nodes created and speeds up analysis by
about 10% overall.
llvm-svn: 5495
2003-02-05 21:59:58 +00:00
Chris Lattner
93e9ec8bb1
Allow the addition of edge source labels
...
llvm-svn: 5493
2003-02-05 19:40:59 +00:00
Chris Lattner
e8381114ef
Add sanity check
...
llvm-svn: 5489
2003-02-04 00:03:57 +00:00
Chris Lattner
102e619864
Hack to work around deficiency in pass infrastructure
...
llvm-svn: 5485
2003-02-03 22:51:28 +00:00
Chris Lattner
b58c9c95d0
Eliminate unused resolving caller stuff
...
llvm-svn: 5475
2003-02-03 19:11:04 +00:00
Chris Lattner
1c12ad543d
* Add a bunch of stuff for checking the integrity of the graph
...
* remove the isNodeDead method
llvm-svn: 5474
2003-02-03 19:10:24 +00:00
Chris Lattner
4bb510896d
Remove pool alloc accessor
...
llvm-svn: 5473
2003-02-03 19:08:33 +00:00
Chris Lattner
cfae77498b
Expose information about pool allocation
...
llvm-svn: 5471
2003-02-03 19:07:46 +00:00
Chris Lattner
58fa654380
Allow modifying a global variables constness property
...
llvm-svn: 5468
2003-02-02 16:40:40 +00:00
Chris Lattner
7aec6c471b
Change DSGraph stuff to use hash_(set|map) instead of std::(set|map)
...
This change provides a small (3%) but consistent speedup
llvm-svn: 5460
2003-02-01 04:52:08 +00:00
Chris Lattner
d0a6d1c807
Add hash_multimap support
...
llvm-svn: 5457
2003-02-01 04:14:28 +00:00
Chris Lattner
d6b11d83a3
Add new composition mask
...
llvm-svn: 5454
2003-02-01 03:28:26 +00:00
Joel Stanley
b867c1f059
Added protos for two alternate, convenient CallInst constructors.
...
llvm-svn: 5453
2003-02-01 00:41:27 +00:00
Chris Lattner
14cc7b4231
Add new function to allow removal of typed named elements
...
llvm-svn: 5442
2003-01-30 20:54:03 +00:00
Chris Lattner
3acf20f0da
New API for traversing graph
...
llvm-svn: 5430
2003-01-29 21:09:59 +00:00
Chris Lattner
36e25fbd8f
Initial checking: defult the make_vector function
...
llvm-svn: 5424
2003-01-28 20:01:16 +00:00
Chris Lattner
37a2301f9e
New helper header
...
llvm-svn: 5423
2003-01-27 22:08:52 +00:00
Chris Lattner
77e422543e
* Eliminate boolean arguments in favor of using enums
...
llvm-svn: 5420
2003-01-23 22:06:33 +00:00
Chris Lattner
1d35ac61ce
Print machine frame objects with the frame offset intrinsic to the machine
...
llvm-svn: 5329
2003-01-16 18:35:57 +00:00
Chris Lattner
301e1307d2
Move sparc specific code into the Sparc backend
...
llvm-svn: 5317
2003-01-15 21:36:50 +00:00
Chris Lattner
eac243c414
Simplify the interface
...
llvm-svn: 5313
2003-01-15 21:13:32 +00:00
Chris Lattner
30fbd2d1fe
Move private headers into private regalloc directory
...
llvm-svn: 5308
2003-01-15 20:26:32 +00:00
Chris Lattner
7f85810349
Move private header to private dir
...
llvm-svn: 5304
2003-01-15 19:50:32 +00:00
Chris Lattner
cfa7a8f9a2
Remove obsolete ctor
...
llvm-svn: 5301
2003-01-15 19:47:02 +00:00
Chris Lattner
7a5291a0c9
Remove internal helper fn
...
llvm-svn: 5300
2003-01-15 19:46:39 +00:00
Chris Lattner
d06cd53a81
ADd support for CC registers for Sparc BE
...
llvm-svn: 5297
2003-01-15 19:22:23 +00:00
Chris Lattner
f254db43cd
Add support for the CC registers for Sparc BE
...
llvm-svn: 5296
2003-01-15 19:22:06 +00:00
Chris Lattner
8c56dc23a5
Remove more unused methods
...
llvm-svn: 5295
2003-01-15 19:21:50 +00:00
Chris Lattner
e6fb373c01
Remove a ton of functions that are no longer used, instead using BuildMI
...
llvm-svn: 5290
2003-01-15 17:35:44 +00:00
Chris Lattner
856c3ad41c
Add new helper method addRegDef
...
llvm-svn: 5289
2003-01-15 17:18:22 +00:00
Chris Lattner
14021140c0
* Eliminate a bunch of inline functions.
...
* Convert callers to use BuildMI instead
llvm-svn: 5286
2003-01-15 00:02:41 +00:00
Chris Lattner
bfd37d4da8
Move to include/llvm/CodeGen
...
llvm-svn: 5285
2003-01-14 23:05:31 +00:00
Chris Lattner
57b5e8891e
Move llvm/Analysis/LiveVar/ValueSet.h to CodeGen/ValueSet.h
...
llvm-svn: 5282
2003-01-14 22:56:37 +00:00
Chris Lattner
e70dc51f5c
New header
...
llvm-svn: 5280
2003-01-14 22:37:41 +00:00
Chris Lattner
bdf60b4ad8
Move to Instrumentation.h
...
llvm-svn: 5279
2003-01-14 22:36:15 +00:00
Chris Lattner
1af4a99c43
REmove unused header file
...
llvm-svn: 5275
2003-01-14 22:29:57 +00:00
Chris Lattner
3fdec63d85
Remove unused header
...
llvm-svn: 5274
2003-01-14 22:28:22 +00:00
Chris Lattner
b27d60ccf1
Rename MachineInstrInfo -> TargetInstrInfo
...
llvm-svn: 5272
2003-01-14 22:00:31 +00:00
Chris Lattner
832d7f387d
Move llvm/Annotation.h to Support/Annotation.h
...
llvm-svn: 5271
2003-01-14 21:39:04 +00:00
Chris Lattner
ab69d9da2f
Move annotation to support library
...
llvm-svn: 5268
2003-01-14 21:29:58 +00:00
Chris Lattner
247a13f8d7
Must #include assert.h
...
llvm-svn: 5267
2003-01-14 21:29:52 +00:00
Chris Lattner
fb1bfc8cde
Add new files
...
llvm-svn: 5259
2003-01-13 01:01:31 +00:00
Chris Lattner
8decb3e453
Rename MachineInstrInfo -> TargetInstrInfo
...
llvm-svn: 5214
2003-01-13 00:21:32 +00:00
Chris Lattner
5fd0d8f44b
* Start renaming MachineInstrInfo -> TargetInstrInfo
...
* Add new M_TERMINATOR_FLAG
llvm-svn: 5213
2003-01-13 00:21:19 +00:00
Chris Lattner
2117077d8f
Add new getName method
...
llvm-svn: 5212
2003-01-13 00:19:44 +00:00
Chris Lattner
2edf53b7c0
Simplify interface to creating a register
...
llvm-svn: 5211
2003-01-13 00:19:18 +00:00
Chris Lattner
9d9b72a2c2
* Add support for new types of operands
...
llvm-svn: 5210
2003-01-13 00:18:44 +00:00
Chris Lattner
1f29ca49c7
* Add 3 new types of MachineOperand: ConstantPoolIndex ExternalSymbol and GlobalAddress's
...
* Add new isPCRelative modifier flag which should be used in place of MO_PCRelativeDisp type.
* Fix a bug in isPhysicalRegister
* Add new setOpcode and RemoveOperand methods
llvm-svn: 5209
2003-01-13 00:18:17 +00:00
Chris Lattner
abdcdcb67c
* Add a constant pool to hold per-function constants which must be spilled to memory
...
llvm-svn: 5208
2003-01-13 00:16:10 +00:00
Chris Lattner
4eda5395e8
* Add utility methods which make common cases easier
...
llvm-svn: 5207
2003-01-13 00:15:24 +00:00
Chris Lattner
a17e5baf63
* Add support for values in the constant pool
...
* Add support for functions referenced by name
llvm-svn: 5206
2003-01-13 00:14:55 +00:00
Chris Lattner
dfa3c21f1c
More renamings of Target/Machine*Info to Target/Target*Info
...
llvm-svn: 5204
2002-12-29 03:13:05 +00:00
Chris Lattner
bff4411f3a
Rename MachineOptInfo to TargetoptInfo
...
Rename MachineCacheInfo to TargetCacheInfo
llvm-svn: 5203
2002-12-29 02:50:35 +00:00
Chris Lattner
ea33ca1e96
Rename FunctionFrameInfo to MachineFrameInfo
...
llvm-svn: 5201
2002-12-28 21:08:28 +00:00
Chris Lattner
c3dbf62971
* doxygenize comment
...
* rename MachineFrameInfo to TargetFrameInfo
llvm-svn: 5170
2002-12-28 20:13:29 +00:00
Chris Lattner
90d1ea29ab
Sparc specific methods default to abort rather than being pure virtual
...
llvm-svn: 5169
2002-12-28 20:12:54 +00:00
Chris Lattner
51c7c172db
Expose some very simple information about the frame, rather than in-depth
...
target specific information. Rename MachineFrameInfo to TargetFrameInfo
llvm-svn: 5168
2002-12-28 20:12:10 +00:00
Chris Lattner
b525ce97cc
* Keep track of register alignment as well as register size
...
* Add comments
* Add a new allocation_order iterator for register classes which targets may
use to control the register order and available registers based on properties
of the function being compiled.
* Remove access to FP and SP registers
* Add new callframe setup opcode support
* Eliminate moveImm2Reg method
* Revamp frame offset handling and prolog/epilog code generation
llvm-svn: 5167
2002-12-28 20:10:23 +00:00
Chris Lattner
e1f68f8e08
Descriptor object used to manage abstract frame references
...
llvm-svn: 5166
2002-12-28 20:07:47 +00:00
Chris Lattner
6c1ee16321
State for frame and constant pool information pulled out of MachineFunction
...
llvm-svn: 5165
2002-12-28 20:07:33 +00:00
Chris Lattner
84cb1f5dbc
* Frame indices are signed
...
* Cluster modification methods together
llvm-svn: 5164
2002-12-28 20:05:44 +00:00
Chris Lattner
59c301a15a
* Pull a bunch of frame and constant pool state out into a new
...
MachineFunctionInfo class
* Add a new FunctionFrameInfo object
llvm-svn: 5163
2002-12-28 20:04:31 +00:00
Chris Lattner
db5cd8b071
Initial check in of MachineFunctionPass.h
...
llvm-svn: 5162
2002-12-28 20:03:01 +00:00
Chris Lattner
881ffece47
Simplify spill interface methods
...
llvm-svn: 5142
2002-12-25 05:02:00 +00:00
Chris Lattner
b44ebe2588
Add comment
...
llvm-svn: 5141
2002-12-25 05:01:46 +00:00
Chris Lattner
47e342f4bf
Add abstract frame index capability
...
llvm-svn: 5140
2002-12-25 05:01:18 +00:00
Chris Lattner
b898c53b42
Remove default ctor
...
llvm-svn: 5139
2002-12-25 05:01:05 +00:00
Chris Lattner
aea2f8e9da
*** empty log message ***
...
llvm-svn: 5138
2002-12-25 05:00:49 +00:00
Chris Lattner
a5ba3d9b3d
Remove dependency on SSARegMap.h
...
llvm-svn: 5137
2002-12-25 05:00:16 +00:00
Chris Lattner
bc5e71ef2f
Allow the target machines to specify endianness and pointer size
...
llvm-svn: 5128
2002-12-24 00:02:17 +00:00
Chris Lattner
5fe4097f52
Initial checkin of new LLI with JIT compiler
...
llvm-svn: 5126
2002-12-24 00:01:05 +00:00
Chris Lattner
2af84f79e3
New files for miscompilation detection
...
llvm-svn: 5120
2002-12-23 23:50:16 +00:00
Chris Lattner
079d149fbd
Simplify interface to remove virtual function references
...
llvm-svn: 5100
2002-12-17 04:20:39 +00:00
Chris Lattner
3b7f709ebd
Add support for register alias set description
...
llvm-svn: 5080
2002-12-16 16:39:14 +00:00
Chris Lattner
07cc730ddd
Export well known instruction opcodes usable by target independant passes
...
llvm-svn: 5063
2002-12-15 22:16:08 +00:00
Chris Lattner
7ac77c761c
Add new opIsUse method
...
llvm-svn: 5062
2002-12-15 22:05:02 +00:00
Chris Lattner
4214ac384a
Simplify interfaces used by regalloc to insert code
...
llvm-svn: 5052
2002-12-15 20:06:35 +00:00
Chris Lattner
9b1957fd1e
Simplify TargetRegisterClass a bit, also eliminating virtual function call
...
overhead
llvm-svn: 5049
2002-12-15 19:29:14 +00:00
Chris Lattner
51cf15cf12
* Rename const_regclass_begin/end to just regclass_begin/end
...
* Regclass iterators need an extra level of pointerness to work right
* Pull inverse mapping code out of target description files
llvm-svn: 5046
2002-12-15 18:40:01 +00:00
Chris Lattner
026fa9948b
Add capability to have a MachineBasicBlock as an operand to a MachineInstr
...
Add a bunch of methods to MachineOperand is* to reduce usage of MO_foo
llvm-svn: 5032
2002-12-15 08:01:02 +00:00
Misha Brukman
fb02408496
Added moveReg2Reg() and moveImm2Reg() to accomodate moving data around due to
...
PHI nodes.
llvm-svn: 5001
2002-12-13 09:54:12 +00:00
Chris Lattner
74e9df0627
Final version of BuildMI for symmetry and because I want to use it
...
llvm-svn: 5000
2002-12-13 09:33:06 +00:00
Chris Lattner
329956d9f9
Get rid of deprecated function
...
llvm-svn: 4997
2002-12-13 07:30:45 +00:00
Misha Brukman
bc60f65211
Define the 2-address flag used by X86 instructions (add,sub,and,or,xor) that
...
need to be declared as such.
llvm-svn: 4975
2002-12-12 23:19:51 +00:00
Chris Lattner
4e607715ce
Make a release build compile. This field is not really an enum, it's really a bitfield
...
llvm-svn: 4971
2002-12-12 05:31:26 +00:00
Misha Brukman
9fbca4e8ea
No need to specify the class if the method is within the class declaration.
...
llvm-svn: 4969
2002-12-12 05:28:39 +00:00
Chris Lattner
8911afb9c1
Fix header
...
llvm-svn: 4966
2002-12-12 03:43:30 +00:00
Vikram S. Adve
8ea96d8162
This file provides the function DemoteRegToStack(), which takes a
...
virtual register computed by an Instruction& X and replaces it with
a slot in the stack frame, allocated via alloca.
llvm-svn: 4963
2002-12-10 13:07:12 +00:00
Vikram S. Adve
c8ea11cf8e
The pass Parallelize automatically parallelizes a program using the
...
Cilk multi-threaded runtime system to execute parallel code. This file
exposes some routines needed for code generation for that pass.
llvm-svn: 4961
2002-12-10 00:42:22 +00:00
Vikram S. Adve
c9617fde54
Iterator that enumerates the ProgramDependenceGraph (PDG) for a function,
...
i.e., enumerates all data and control dependences for the function.
llvm-svn: 4958
2002-12-08 14:13:19 +00:00
Vikram S. Adve
90bc3110b6
An explicit representation of dependence graphs, and a pass that
...
computes a dependence graph for data dependences on memory locations
using interprocedural Mod/Ref information.
llvm-svn: 4957
2002-12-08 13:26:29 +00:00
Chris Lattner
93f7326092
Give better error message if two passes of the same argument are registered
...
llvm-svn: 4950
2002-12-07 04:41:22 +00:00
Vikram S. Adve
183ea76dc4
Stronger assertion in getNodeId(): node id must exist in the map.
...
llvm-svn: 4949
2002-12-06 21:19:07 +00:00
Vikram S. Adve
ef10713b0e
Added static helper method MergeNodes(). See DataStructure.cpp for more.
...
llvm-svn: 4946
2002-12-06 21:10:17 +00:00
Vikram S. Adve
c8e0378317
Bug fix in operator==() and in method fini().
...
llvm-svn: 4945
2002-12-06 15:02:22 +00:00
Chris Lattner
da374a0ade
Make sure to print indirect node again
...
llvm-svn: 4943
2002-12-06 06:40:00 +00:00
Misha Brukman
32ec427192
Added prototypes for emitting prologue and epilogue for function code
...
generation.
llvm-svn: 4927
2002-12-04 23:55:56 +00:00
Misha Brukman
101076f586
storeReg2RegOffset() and loadRegOffset2Reg() now take the iterator by value
...
instead of by reference, since they return the modified iterator.
llvm-svn: 4914
2002-12-04 17:14:13 +00:00
Misha Brukman
6e1c4851ea
Moved buildReg2RegClassMap() into from X86RegisterInfo to MRegisterInfo, since
...
it is target-independent.
llvm-svn: 4911
2002-12-04 16:47:04 +00:00
Chris Lattner
d0a42dbe95
Add support for direct global references
...
llvm-svn: 4905
2002-12-04 06:44:27 +00:00
Chris Lattner
aeb454c30e
Expose target data through a method for uniformity
...
llvm-svn: 4901
2002-12-04 05:20:12 +00:00
Misha Brukman
6b9cb74fdc
RegisterInfo now supports handing out caller- and callee-save registers, as
...
well as building a map from a physical register to its register class.
llvm-svn: 4896
2002-12-03 23:09:53 +00:00
Chris Lattner
af812d279c
Add virtual dtor, expose a debug impl
...
llvm-svn: 4892
2002-12-03 20:56:20 +00:00
Chris Lattner
866d635098
Add entries to track information about implicit uses and definitions of
...
the instructions
llvm-svn: 4875
2002-12-03 05:41:32 +00:00
Chris Lattner
2ebb6f1a57
More support
...
llvm-svn: 4873
2002-12-02 21:56:28 +00:00
Chris Lattner
ce514e232d
Start adding to the meat of MachineCodeEmitter
...
llvm-svn: 4869
2002-12-02 21:44:13 +00:00
Chris Lattner
54d6377268
Initial version of MachineCodeEmitter interface: empty
...
llvm-svn: 4864
2002-12-02 21:21:36 +00:00
Chris Lattner
920d619d39
The hopefully final version of addPassesToEmitMachineCode which does not
...
have any question about ownership
llvm-svn: 4863
2002-12-02 21:15:42 +00:00
Chris Lattner
b7073c8c07
Add comment about ownership semantics
...
llvm-svn: 4859
2002-12-02 21:13:45 +00:00
Chris Lattner
9872f53512
Add stub to emit machine code for JIT
...
llvm-svn: 4856
2002-12-02 21:00:50 +00:00
Vikram S. Adve
b5bdad135e
Several fixes:
...
(1) Applied patch from Casey to implement iterator::operator= correctly:
it should use a pointer, not a reference.
(2) Added operators == and !=, and method all().
(3) Important bug fix: excess bits need to be ignored in operations
like ==, count(), and all(). We do this by ensuring excess bits
in the last bitset are always 0.
llvm-svn: 4837
2002-11-27 17:46:38 +00:00
Vikram S. Adve
2d712e9ff6
Added flags to CloneFlags to strip/keep Mod/Ref bits when cloning a graph.
...
llvm-svn: 4835
2002-11-27 17:39:37 +00:00
Vikram S. Adve
98df15e927
No longer need local graph to find call sites.
...
Also some major fixes within IPModRef.cpp.
llvm-svn: 4834
2002-11-27 17:38:56 +00:00
Misha Brukman
32d007461d
Added virtual functions for storing and retrieving values from the stack.
...
llvm-svn: 4824
2002-11-22 22:41:23 +00:00
Misha Brukman
940cfa8597
Instead of checking op.getType() against MO_VirtualRegister and
...
MO_MachineRegister, we no longer distinguish Virtual vs. Machine registers
externally, they're ALL registers, all equal.
Registers are only differentiated whether they are >=
MRegisterInfo::FirstVirtual or not.
llvm-svn: 4823
2002-11-22 22:40:52 +00:00
Misha Brukman
0f0cc54805
Set SSARegMap to NULL after deleting it.
...
llvm-svn: 4822
2002-11-22 22:32:15 +00:00
Chris Lattner
29c4cbb5a5
Cloning stuff doesn't modify the source module
...
llvm-svn: 4787
2002-11-20 20:22:58 +00:00
Misha Brukman
45b9648b91
MRegisterInfo.h - Added prototypes for functions we need to map a register to
...
an appropriate TargetRegisterClass, also adds TargetRegisterClass definition.
TargetMachine.h - speling.
llvm-svn: 4781
2002-11-20 18:54:53 +00:00
Chris Lattner
b5027095e5
- Eliminated the deferred symbol table stuff in Module & Function, it really
...
wasn't an optimization and it was causing lots of bugs.
llvm-svn: 4779
2002-11-20 18:36:02 +00:00
Chris Lattner
46b6e30fef
Eliminate the concept of a deferred symbol table. The optimization really isn't,
...
and it causes obscure bugs to show up in passes.
llvm-svn: 4777
2002-11-20 18:07:48 +00:00
Misha Brukman
fbaf9e7ad0
SSARegMap -- the mapping between SSARegisters and their RegisterClasses, which
...
imply types of SSA Registers. This is on a per-function basis, so the
MachineFunction contains the SSARegMap, and has accessor functions to it.
llvm-svn: 4774
2002-11-20 00:53:10 +00:00
Chris Lattner
e5a05ec13b
Minor changes to cloning interface
...
llvm-svn: 4770
2002-11-19 22:54:01 +00:00
Chris Lattner
01ce78b4e1
Extend function cloning interface to support inlining
...
llvm-svn: 4767
2002-11-19 21:54:38 +00:00
Chris Lattner
5165195254
This file is supersumed by Utils/Cloning.h
...
llvm-svn: 4765
2002-11-19 21:00:33 +00:00
Chris Lattner
697f2aac86
Merge cloning and inlining utilities
...
llvm-svn: 4763
2002-11-19 20:58:38 +00:00
Chris Lattner
6423477181
Move inlining pass to IPO.h
...
llvm-svn: 4761
2002-11-19 20:43:24 +00:00
Chris Lattner
adea9960ab
Move the function extractor pass from tools/extract into lib/Xform/IPO
...
llvm-svn: 4759
2002-11-19 18:42:59 +00:00
Chris Lattner
bd2cbecb05
Add a new Module::getNamedFunction method
...
llvm-svn: 4758
2002-11-19 18:41:44 +00:00
Chris Lattner
2253ec7ec9
Ignore options that are ""
...
llvm-svn: 4757
2002-11-19 17:10:14 +00:00
Chris Lattner
30684f53a9
Add facility to compute peak memory usage
...
llvm-svn: 4752
2002-11-18 21:45:55 +00:00
Chris Lattner
b094535fdf
Inline DSTypeRec stuff into DSNode
...
llvm-svn: 4751
2002-11-18 21:45:30 +00:00
Chris Lattner
e66e649733
Inline DSTypeRec into DSNode
...
llvm-svn: 4750
2002-11-18 21:45:07 +00:00
Chris Lattner
80445dfe2e
Templatize graph traits and iterator to work with const and non-const clients
...
llvm-svn: 4746
2002-11-18 21:42:19 +00:00
Chris Lattner
6315957999
Add helper method
...
llvm-svn: 4744
2002-11-18 06:57:05 +00:00
Chris Lattner
3afc487fba
Print is const!
...
llvm-svn: 4737
2002-11-17 23:22:13 +00:00
Chris Lattner
e138d4fbc8
Make sure that print gets a targetmachine
...
CVS: ----------------------------------------------------------------------
llvm-svn: 4735
2002-11-17 23:21:45 +00:00
Chris Lattner
18cdae7e54
Omit the indirect node when printing call graphs
...
llvm-svn: 4733
2002-11-17 23:10:27 +00:00
Chris Lattner
9971426ca0
Add machine independant printer interface
...
llvm-svn: 4729
2002-11-17 22:54:55 +00:00
Chris Lattner
b51a2857f2
Finish enumating code
...
llvm-svn: 4726
2002-11-17 22:33:54 +00:00
Chris Lattner
4bc444f503
Remove unused methods
...
llvm-svn: 4720
2002-11-17 22:14:22 +00:00
Chris Lattner
16b1ec97f0
Convert to use an enum to access def/use/use&def information. These make
...
reading code much easier than just seeing "true, false" especially when
default parameters default one but not both arguments.
llvm-svn: 4717
2002-11-17 21:56:10 +00:00
Chris Lattner
dcfed3413d
Return const refefrences to enable default construction
...
llvm-svn: 4713
2002-11-17 21:02:42 +00:00
Chris Lattner
18d810d9af
Fix warning
...
llvm-svn: 4708
2002-11-15 18:04:16 +00:00
Brian Gaeke
492e05ba01
include/llvm/CodeGen/MachineInstrBuilder.h: Add addClobber() inline
...
convenience method. Fix typo in comment.
lib/Target/X86/InstSelectSimple.cpp: Explicitly specify some implicit uses.
Use MOVZX/MOVSX instead of MOV instructions with sign extend instructions.
Take out LEAVE instructions.
32-bit IDIV and DIV use CDQ, not CWQ (CWQ is a typo).
Fix typo in comment and remove some FIXME comments.
lib/Target/X86/Printer.cpp: Include X86InstrInfo.h and llvm/Function.h.
Add some simple code to Printer::runOnFunction to iterate over
MachineBasicBlocks and call X86InstrInfo::print().
lib/Target/X86/X86InstrInfo.def: Make some more instructions with
implicit defs "Void". Add more sign/zero extending "move" insns
(movsx, movzx).
lib/Target/X86/X86RegisterInfo.def: Add EFLAGS as a register.
llvm-svn: 4707
2002-11-14 22:32:30 +00:00
Chris Lattner
57e3d39384
Remove dead method, add new method
...
llvm-svn: 4700
2002-11-12 15:57:28 +00:00
Chris Lattner
2ecb91e1c1
Almost complete rewrite of BU closure code
...
llvm-svn: 4693
2002-11-11 21:34:34 +00:00
Chris Lattner
47457c43f4
add method
...
llvm-svn: 4686
2002-11-10 23:47:02 +00:00
Chris Lattner
aaabf591d2
Add code to be able to merge two call sites
...
llvm-svn: 4685
2002-11-10 23:46:51 +00:00
Chris Lattner
f088bcac1c
Add tarj_end() method
...
llvm-svn: 4684
2002-11-10 23:46:31 +00:00
Chris Lattner
db1822a429
Add hasGraph() methods to all of the passes for the printer
...
llvm-svn: 4676
2002-11-10 06:53:19 +00:00
Chris Lattner
7cb6ecd396
Implement swapping
...
llvm-svn: 4674
2002-11-10 06:48:24 +00:00
Chris Lattner
fbfba19b2f
Implement support for swapping. Callsites now sort by callee
...
llvm-svn: 4673
2002-11-10 06:48:11 +00:00
Chris Lattner
667b09146f
Add capability to set a preference of what call vector is printed to dot files
...
llvm-svn: 4672
2002-11-10 06:47:35 +00:00
Chris Lattner
58a8339c03
Fix a problem where bad graphs could be generated
...
llvm-svn: 4671
2002-11-10 06:47:03 +00:00
Chris Lattner
1fe76d2385
eliminate the ability to remove global nodes from deadNodeElminate... for now.
...
This slows stuff down a bit, but it should get much better before it gets any
worse.
llvm-svn: 4666
2002-11-09 22:07:02 +00:00
Chris Lattner
0752756a6a
Add globals graphs to all three passes
...
llvm-svn: 4663
2002-11-09 21:12:07 +00:00
Chris Lattner
c2eca7c7bc
Move maskNodeTypes from cpp file
...
llvm-svn: 4662
2002-11-09 21:02:30 +00:00
Chris Lattner
e726eb5ea7
Clean up DSGraph::removeDeadNodes interface
...
llvm-svn: 4660
2002-11-09 21:00:49 +00:00
Chris Lattner
f17ffc0cc5
Make removeTriviallyDeadNodes a private interface
...
llvm-svn: 4658
2002-11-09 20:55:04 +00:00
Chris Lattner
1c5c03d6f7
Add initial support for a globals graph
...
llvm-svn: 4656
2002-11-09 20:01:01 +00:00
Chris Lattner
0db8dff751
Remove unneccesary #include
...
llvm-svn: 4653
2002-11-09 19:24:41 +00:00
Chris Lattner
a81c52f557
Remove GlobalDSGraph delcaration
...
llvm-svn: 4652
2002-11-09 19:21:56 +00:00
Chris Lattner
fa3cdfdcf7
Fix release build
...
llvm-svn: 4647
2002-11-09 00:48:52 +00:00
Chris Lattner
15e2b6ddb9
Add new methods
...
llvm-svn: 4646
2002-11-08 23:22:48 +00:00
Chris Lattner
a6520dea5c
Add another option to cloneGraph
...
llvm-svn: 4641
2002-11-08 22:28:55 +00:00
Chris Lattner
5f0b273a70
- Add support for an "auxillary" call site list
...
- Original call sites are now never modified after construction by the local
pass.
- DSGraph::cloneInto can now optionally not clone the call sites
- BUDataStructures no longer has a ton of book-keeping info for a broken
implementation of the TD data structures
llvm-svn: 4631
2002-11-08 21:24:51 +00:00
Chris Lattner
2698f71007
Add a method "getMainFunction()" that efficiently locates 'main' in a module
...
llvm-svn: 4629
2002-11-08 20:34:02 +00:00
Vikram S. Adve
0d0e044514
Include HashExtras.h since it is almost always needed anyway.
...
llvm-svn: 4626
2002-11-08 14:07:33 +00:00
Chris Lattner
de23b0e031
Use DSNodeHandle for persistent maps
...
llvm-svn: 4623
2002-11-08 05:03:37 +00:00
Chris Lattner
9330d88b02
Add flag that may be used to determine if dead nodes are used. It's temporary
...
llvm-svn: 4620
2002-11-08 01:22:26 +00:00
Vikram S. Adve
8ad057e4ec
Restore a #include because this header file needs the definitions
...
of DSCallSite::~DSCallSite and DSNodeHandle::~DSNodeHandle.
llvm-svn: 4616
2002-11-08 00:23:23 +00:00
Chris Lattner
adac673c17
Add interfaces for ResolveCallSiteModRefInfo
...
llvm-svn: 4601
2002-11-07 07:11:49 +00:00
Chris Lattner
450e1fbc76
Instead of using a bool that constant has to be explained, use a self
...
explanitory enum instead.
llvm-svn: 4600
2002-11-07 07:06:20 +00:00
Chris Lattner
aa7b1a3e3a
Add new method
...
llvm-svn: 4598
2002-11-07 06:30:17 +00:00
Chris Lattner
48a0cb745d
Expose isPointerType to clients of dsanalysis
...
llvm-svn: 4597
2002-11-07 05:21:15 +00:00
Chris Lattner
9bcd1e1b61
Add a comment
...
llvm-svn: 4586
2002-11-06 23:26:21 +00:00
Chris Lattner
9870fb032e
Allow the ResolveCallSiteModRefInfo method to return a mapping of nodes,
...
implement the mod/ref bit masking
llvm-svn: 4578
2002-11-06 19:59:33 +00:00
Chris Lattner
f7e839f435
Add a stub to implement the context sensitive mod/ref info for call sites
...
llvm-svn: 4577
2002-11-06 19:38:43 +00:00
Chris Lattner
00de4338dc
Give a back pointer to the IPModRef object to the FunctionModRefInfo object
...
llvm-svn: 4576
2002-11-06 19:07:13 +00:00