Chris Lattner
ea9891311a
As it turns out, things will be simpler than I first expected. We no longer
...
need any exception handling intrinsics beyond llvm.unwind. (yaay)
llvm-svn: 8145
2003-08-25 22:35:01 +00:00
Chris Lattner
4d4f424f0c
Targets now configure themselves based on the source module, not on the
...
ad-hoc "Config" flags
llvm-svn: 8134
2003-08-24 19:50:53 +00:00
Chris Lattner
0a7b79cf85
Targets should configure themselves based on the module, not some wierd flags
...
llvm-svn: 8131
2003-08-24 19:49:07 +00:00
Chris Lattner
fc5aa1c93c
Allow modules to have 'any' pointer size and endianness.
...
llvm-svn: 8117
2003-08-24 13:46:37 +00:00
Chris Lattner
0c5eaf7e84
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
88e7d59316
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
ade9410c99
Initial support for recognizing LLVM exception handling intrinsics
...
llvm-svn: 8102
2003-08-24 05:30:29 +00:00
Chris Lattner
6d5693566f
Allow specifying the name for the newly split basic block
...
llvm-svn: 8097
2003-08-24 03:41:39 +00:00
Chris Lattner
4f9247c937
Add period
...
llvm-svn: 8090
2003-08-23 23:15:10 +00:00
Chris Lattner
180e14cb87
Rename SwitchInst::dest_push_back -> addCase
...
Add new removeCase method
llvm-svn: 8088
2003-08-23 23:14:37 +00:00
Chris Lattner
a476e2d30b
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
18fca71f8e
Add more methods to be more value-like
...
llvm-svn: 8074
2003-08-23 19:51:10 +00:00
Chris Lattner
ca009fe280
Initial checkin of ValueHolder helper class
...
llvm-svn: 8073
2003-08-23 19:43:18 +00:00
Chris Lattner
716b1fea7f
Add missing #include
...
llvm-svn: 8063
2003-08-22 23:08:55 +00:00
Chris Lattner
23edbf25f4
Changes to work better with GCC3.4/LLVM G++
...
llvm-svn: 8054
2003-08-22 14:26:59 +00:00
Misha Brukman
be372b91e1
The word `dependent' has no `a'.
...
llvm-svn: 8030
2003-08-21 22:14:26 +00:00
John Criswell
71c3e6236f
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
e08478eb59
Remove unused file
...
llvm-svn: 8021
2003-08-21 20:54:51 +00:00
Chris Lattner
9a4dbf6da0
Make assertion message more helpful in a case that might happen...
...
llvm-svn: 7975
2003-08-19 21:57:00 +00:00
Chris Lattner
dfada99650
Add new methods, update comments
...
llvm-svn: 7962
2003-08-18 22:10:57 +00:00
Chris Lattner
748e9e143b
Add intrinsics for the llvm.sig(set|long)jmp functions
...
llvm-svn: 7949
2003-08-18 15:41:24 +00:00
Misha Brukman
7eb05a170a
Spell `necessary' correctly.
...
llvm-svn: 7944
2003-08-18 14:43:39 +00:00
Chris Lattner
7a991010d6
Fix bug: LoopPreheaders/2003-08-15-PreheadersFail.ll
...
llvm-svn: 7915
2003-08-16 20:57:16 +00:00
Brian Gaeke
497216dc00
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
c98ef9aeb7
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
2d0a292edc
Reordered includes to be consistent with the LLVM style.
...
llvm-svn: 7887
2003-08-15 17:52:02 +00:00
Chris Lattner
2aae234ead
Remove extraneous #include
...
llvm-svn: 7881
2003-08-15 05:21:30 +00:00
Chris Lattner
a9ed3a52cb
Add support for basic blocks, unary/binary unspecs, conditional branches, ...
...
llvm-svn: 7874
2003-08-15 04:52:51 +00:00
Chris Lattner
e58e442e20
Remove extraneous cl:: namespace qualifiers
...
llvm-svn: 7852
2003-08-14 22:04:41 +00:00
Brian Gaeke
ca782d9fe6
Add support for reading command line arguments from an environment variable.
...
llvm-svn: 7851
2003-08-14 22:00:59 +00:00
Brian Gaeke
8c14ba96ca
Factory methods for function passes now return type FunctionPass *.
...
llvm-svn: 7839
2003-08-14 06:09:32 +00:00
Brian Gaeke
2cc4b9dd2c
Add new method to FunctionPassManager to add ImmutablePasses.
...
llvm-svn: 7838
2003-08-14 06:07:57 +00:00
Brian Gaeke
89207943a1
Factory methods for FunctionPasses now return type FunctionPass *.
...
llvm-svn: 7823
2003-08-13 18:18:15 +00:00
Brian Gaeke
aa58664639
Deconstify parameter to getPointerToFunction().
...
llvm-svn: 7822
2003-08-13 18:17:54 +00:00
Brian Gaeke
845b5af4d4
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
35364c8408
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
26a1f5fe87
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
b7a8388b8c
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
e2fe394f6f
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
ce200422d4
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
963e822148
Initial checkin of SelectionDAG header file
...
llvm-svn: 7716
2003-08-11 14:56:26 +00:00
Misha Brukman
b02e413f65
Remove references to `bugpoint' from the now-generic system utilities.
...
llvm-svn: 7693
2003-08-07 21:33:33 +00:00
Misha Brukman
3581f8542d
Moved removeFile() and getUniqueFilename() into FileUtilities.
...
llvm-svn: 7691
2003-08-07 21:28:50 +00:00
Sumant Kowshik
b2d3c8e805
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
74bc5c7147
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
4159fdaef2
Add a bunch of new Alpha Intrinsics for Rahul Joshi
...
llvm-svn: 7646
2003-08-06 20:08:25 +00:00
Chris Lattner
385a6b2589
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
020b544cbc
Do not insert physical regsiters into the regsUsed set
...
llvm-svn: 7617
2003-08-05 21:55:20 +00:00
Chris Lattner
44309a112f
Add a comment to the method decl
...
llvm-svn: 7609
2003-08-05 18:38:16 +00:00
Chris Lattner
3df51d517c
Remove unused method
...
llvm-svn: 7608
2003-08-05 17:09:08 +00:00
Sumant Kowshik
766e284526
Added declaration of mergeInGlobalsGraph
...
llvm-svn: 7607
2003-08-05 17:06:18 +00:00
Chris Lattner
cd4f4320b0
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
e815b78deb
Added the declaration of InlineIndirectCalls
...
llvm-svn: 7601
2003-08-05 16:56:59 +00:00
Chris Lattner
23f7128e1f
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
1a063e7aee
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
bb54f6fcad
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
2a5dae05e6
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
d32fe2e592
New file
...
llvm-svn: 7482
2003-08-01 20:28:55 +00:00
Chris Lattner
607eaaba5f
This file doesn't need this include
...
llvm-svn: 7479
2003-08-01 19:16:18 +00:00
Tanya Lattner
aab262210c
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
a93c7aeb7e
Added function to determine if an Instruction may trap.
...
llvm-svn: 7442
2003-07-31 04:05:50 +00:00
Chris Lattner
a8f5df593b
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
f128c11bdd
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
fa31c92f8e
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
44119ac56e
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
4f37692a80
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
e8c59958d3
Fix copy and paste-o
...
llvm-svn: 7378
2003-07-29 05:15:44 +00:00
Chris Lattner
c1e3827de6
Move value type enums to CodeGen/ValueTypes.h
...
llvm-svn: 7376
2003-07-29 05:13:34 +00:00
Chris Lattner
91ea759ad9
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
8c48a098a5
Add alpha intrinsics, contributed by Rahul Joshi
...
llvm-svn: 7372
2003-07-28 21:18:21 +00:00
Misha Brukman
2befe71a04
Lined things up in a more aesthetically pleasing way.
...
llvm-svn: 7365
2003-07-28 19:17:53 +00:00
Misha Brukman
a626a9e4df
Removed extra parenthesis and fixed spelling.
...
llvm-svn: 7359
2003-07-28 16:53:28 +00:00
Tanya Lattner
db908a22c8
Need to include <string> to fix compile error on Sun
...
llvm-svn: 7358
2003-07-28 16:42:33 +00:00
Chris Lattner
dec94b36d3
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
e63edd73e2
Whoops, this one was needed
...
llvm-svn: 7346
2003-07-26 23:18:11 +00:00
Chris Lattner
981e585021
Remove extraneous #includes
...
llvm-svn: 7341
2003-07-26 23:00:29 +00:00
Chris Lattner
25dc00904c
Remove #includes
...
llvm-svn: 7339
2003-07-26 22:56:46 +00:00
Vikram S. Adve
a33b1d1d74
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
51fca80cc5
Add an assertion.
...
llvm-svn: 7326
2003-07-25 20:58:57 +00:00
Brian Gaeke
bc1f6f59a1
Forward-declare class Module to make the header file self-contained.
...
llvm-svn: 7319
2003-07-25 20:20:53 +00:00
Chris Lattner
980e4253bc
More cassert inclusion for GCC 3.3
...
llvm-svn: 7318
2003-07-25 18:06:53 +00:00
Chris Lattner
29e525a33f
#include <cassert> as necessary...
...
llvm-svn: 7315
2003-07-25 17:58:41 +00:00
Chris Lattner
33d5102f54
Fix another accessibility problem illuminated by GCC 3.3
...
llvm-svn: 7314
2003-07-25 17:49:28 +00:00
Chris Lattner
659ad62df1
Fix visibility problem exposed by GCC 3.3
...
llvm-svn: 7313
2003-07-25 17:46:25 +00:00
Chris Lattner
e66e7d75bf
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
0c09a89bda
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
7a8412cc95
Use the C++ <cassert> header, not the C <assert.h> header
...
llvm-svn: 7310
2003-07-25 17:34:17 +00:00
Chris Lattner
88ee89f4a9
This header works with GCC 3.3
...
llvm-svn: 7309
2003-07-25 17:33:45 +00:00
Chris Lattner
b917db15f1
Add includes of assert
...
llvm-svn: 7307
2003-07-25 17:23:27 +00:00
Chris Lattner
8918af9b0f
Fix accessibility problems GCC 3.3
...
llvm-svn: 7306
2003-07-25 17:23:13 +00:00
Chris Lattner
893d0b86df
Add assert.h include
...
llvm-svn: 7305
2003-07-25 16:47:07 +00:00
Chris Lattner
707ececebc
Convert to C++ style comments
...
llvm-svn: 7304
2003-07-25 15:08:08 +00:00
Vikram S. Adve
49155b50ba
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
356f3289fe
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
d4dff190a4
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
0fa0e3f2ea
Add support for ~ operator on constants
...
llvm-svn: 7258
2003-07-23 17:21:17 +00:00
Chris Lattner
f26a8ee580
Remove redundant const qualifiers from cast<> expressions
...
llvm-svn: 7253
2003-07-23 15:30:06 +00:00
Chris Lattner
dc4016b44c
Add more doxygen comments, add new ConstantInt::getRawValue method
...
llvm-svn: 7244
2003-07-23 14:49:06 +00:00
Anand Shukla
bd2d0577fb
Added special consideration for instrumentation strategy
...
llvm-svn: 7208
2003-07-20 15:39:30 +00:00
Vikram S. Adve
d3bf70c006
(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
7fdaab4f68
The word `separate' only has one `e'.
...
llvm-svn: 7173
2003-07-14 17:20:40 +00:00
Vikram S. Adve
e2e50f2880
Values stored in CallArgsDescriptor cannot be const.
...
llvm-svn: 7156
2003-07-10 19:46:15 +00:00
Vikram S. Adve
689adb19b0
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
c18333ac0a
Lowercase versions of `occurrence' need to be spelled correctly, too.
...
llvm-svn: 7142
2003-07-10 17:05:26 +00:00
Misha Brukman
069e6b5be0
`Occurrence' has no `a' and the `r' is doubled.
...
llvm-svn: 7140
2003-07-10 16:49:51 +00:00
Chris Lattner
79c2e891c0
INCLUDE_PARENT_GRAPH is required
...
llvm-svn: 7089
2003-07-02 23:57:21 +00:00
Chris Lattner
10bcbf402a
Remove dead method
...
llvm-svn: 7083
2003-07-02 23:43:06 +00:00
Chris Lattner
60321c2c49
Add new methods
...
llvm-svn: 7057
2003-07-02 04:37:00 +00:00
Chris Lattner
b10e385c01
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
9a8f8e3e95
Leak fix: delete old objects before reallocation in an assignment operator!
...
llvm-svn: 7055
2003-07-02 01:25:44 +00:00
Chris Lattner
afede5d65b
TD pass keeps track of which functions have complete arguments
...
llvm-svn: 7048
2003-07-01 21:12:10 +00:00
Chris Lattner
931978ab2b
Add new operator= impl
...
llvm-svn: 7047
2003-07-01 21:11:59 +00:00
Chris Lattner
972e76f00d
Ok, I'm a moron. Fixed now
...
llvm-svn: 7035
2003-07-01 17:15:11 +00:00
Chris Lattner
31f1db746b
Fix major problem that was causing all kinds of nasty foldings
...
llvm-svn: 7034
2003-07-01 17:10:50 +00:00
Chris Lattner
0c770cd936
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
3ef61afb76
Merged in autoconf branch. This provides configuration via the autoconf
...
system.
llvm-svn: 7014
2003-06-30 21:59:07 +00:00
Chris Lattner
bfce1115e3
Add new method
...
llvm-svn: 7007
2003-06-30 05:57:30 +00:00
Chris Lattner
53f4dd7f22
Be more const correct
...
llvm-svn: 7004
2003-06-30 05:27:05 +00:00
Chris Lattner
a7630bdc06
Constness changes
...
llvm-svn: 7002
2003-06-30 05:10:09 +00:00
Chris Lattner
34bdfbf903
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
1fecb674e0
Add argument
...
llvm-svn: 6990
2003-06-30 03:13:36 +00:00
Chris Lattner
13cb5ae4ff
Remove prototype for dead method
...
llvm-svn: 6989
2003-06-30 03:13:28 +00:00
Chris Lattner
16e9212e2e
Add support for gathering sets of must aliases
...
llvm-svn: 6971
2003-06-29 00:23:11 +00:00
Chris Lattner
fb9e684f5c
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
1ad22dedd1
Add new 'isComplete' method
...
llvm-svn: 6943
2003-06-28 21:56:42 +00:00
Chris Lattner
719c715639
Add support for 'unsigned' command line arguments
...
llvm-svn: 6928
2003-06-28 15:47:20 +00:00
Brian Gaeke
c1e4ee0f50
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
2ab04f7a41
Add argument to DAE to allow operation on non-internal functions
...
llvm-svn: 6895
2003-06-25 04:12:49 +00:00
Chris Lattner
decc3639c1
Add prototype for tail-dup pass
...
llvm-svn: 6847
2003-06-22 20:10:42 +00:00
Chris Lattner
bd3837b1b2
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
52de05c6b3
Remove a ton of extraneous #includes
...
llvm-svn: 6842
2003-06-22 03:08:05 +00:00
Chris Lattner
c7031d0244
Whoops, accidentally lost a #include
...
llvm-svn: 6841
2003-06-22 03:04:58 +00:00
Chris Lattner
09ede5c936
Remove support for the MultiObject flag, which was just fundamentally broken
...
llvm-svn: 6839
2003-06-22 03:03:24 +00:00
Chris Lattner
065162a250
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
989fddebf0
Update comments
...
llvm-svn: 6785
2003-06-19 17:03:00 +00:00
Chris Lattner
8826647168
Detemplatize the PATypeHandle class, which was only really instantiated on 'Type'.
...
llvm-svn: 6774
2003-06-18 19:22:36 +00:00
Chris Lattner
95881f6234
* 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
908ffe346d
Add new op_erase method
...
llvm-svn: 6757
2003-06-17 22:15:55 +00:00
Chris Lattner
32cbae3320
Make sure accessor is properly doxygenized. It wants two lines
...
llvm-svn: 6756
2003-06-17 21:44:51 +00:00
Chris Lattner
f42ca71f34
Add accessor
...
llvm-svn: 6755
2003-06-17 21:44:31 +00:00
Chris Lattner
ce5ee39319
Make CallSite's default constructable, copyable, and assignable (explicitly)
...
llvm-svn: 6749
2003-06-17 19:50:28 +00:00
Brian Gaeke
a7a50133ef
Regularize the names of #include-guards.
...
llvm-svn: 6732
2003-06-17 00:35:55 +00:00
Brian Gaeke
7a719ed20c
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
3350651851
Whoops. I didn't mean to step on John's changes.
...
llvm-svn: 6722
2003-06-16 21:18:20 +00:00
Brian Gaeke
eb505aab08
This version supports FreeBSD.
...
llvm-svn: 6721
2003-06-16 21:14:57 +00:00
Chris Lattner
4ff07067db
Add prototype for the new DAE pass
...
llvm-svn: 6703
2003-06-16 12:16:52 +00:00
John Criswell
ec382b6a64
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
cfac736363
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
c318ca1a51
Made changes suggested by Chris
...
llvm-svn: 6606
2003-06-04 08:03:57 +00:00
Sumant Kowshik
061d15551f
Made changes suggested by Chris; Renamed 'union' function to unionSetsWith
...
llvm-svn: 6605
2003-06-04 08:00:05 +00:00
Chris Lattner
d1f91d0660
Add new setCondition member
...
llvm-svn: 6603
2003-06-04 05:08:31 +00:00
Chris Lattner
9109b41a00
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
a87bab4e4c
Remove use of enum
...
llvm-svn: 6582
2003-06-03 15:41:45 +00:00
Chris Lattner
be9cef8af4
There are now no uses of NonCopyableV
...
llvm-svn: 6580
2003-06-03 15:30:48 +00:00
Chris Lattner
46a1892c68
Add doxygen comment for namespace
...
llvm-svn: 6579
2003-06-03 15:30:37 +00:00
Chris Lattner
f3dce0882f
Add comment for doxygen for namespace
...
llvm-svn: 6578
2003-06-03 15:30:13 +00:00
Chris Lattner
cee7ced058
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
58f2b4c5bc
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
fb29f4e173
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
befbece2c6
Remove NonCopyable base class to clean up doxygen output
...
llvm-svn: 6551
2003-06-02 22:07:37 +00:00
Chris Lattner
aad566da80
Hack up MachineCodeEmitter to actually be target independent.
...
llvm-svn: 6514
2003-06-01 23:20:02 +00:00
Tanya Lattner
e2d74c1c81
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
ef56a0fb6a
Made a single common InvalidRegNum = -1.
...
llvm-svn: 6473
2003-05-31 07:44:07 +00:00
Vikram S. Adve
12067b6598
Renamed a variable.
...
llvm-svn: 6472
2003-05-31 07:43:41 +00:00
Vikram S. Adve
1a06ec6655
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
ad83684c77
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
94908b010e
Added saveBBreferences() for BasicBlock resolution.
...
llvm-svn: 6451
2003-05-30 20:32:45 +00:00
Tanya Lattner
e996d0a3cd
Sorry, correcting small typo.
...
llvm-svn: 6433
2003-05-30 15:53:50 +00:00
Tanya Lattner
84e5004a78
Added support for cloning a trace.
...
llvm-svn: 6430
2003-05-30 15:48:23 +00:00
Sumant Kowshik
2618272dad
Implementation of Equivalence Classes
...
llvm-svn: 6422
2003-05-29 22:44:25 +00:00
Sumant Kowshik
32d1b6e7ac
Changes to support function pointers
...
llvm-svn: 6421
2003-05-29 22:43:46 +00:00
Chris Lattner
308bf23be0
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
d670b086c4
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
2ca11ed598
Doxygenify comments
...
llvm-svn: 6393
2003-05-29 15:06:40 +00:00
Misha Brukman
05ff42617a
Fixed misspelling and broke a line that was wrapping.
...
llvm-svn: 6391
2003-05-29 05:00:14 +00:00
Misha Brukman
d8403447f4
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
26a5537e9d
Allow allocation of a Sparc TargetMachine.
...
llvm-svn: 6364
2003-05-27 21:46:07 +00:00
Chris Lattner
b022bed018
Expose proto for SRoA pass.
...
llvm-svn: 6348
2003-05-27 15:52:45 +00:00
Vikram S. Adve
11fc2f6885
(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
6bbfe341dd
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
52d5ae62e5
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
e2402c65d0
Reword to remove reference to how things worked in the past.
...
llvm-svn: 6323
2003-05-24 01:08:43 +00:00
Misha Brukman
23d15a71b8
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
f2e299ca68
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
5d4589ff34
Minor rewording/cleanups
...
llvm-svn: 6311
2003-05-23 17:13:15 +00:00
Chris Lattner
84d0ed920d
Remove long dead code
...
llvm-svn: 6307
2003-05-22 22:00:54 +00:00
Chris Lattner
5eb85148bd
Add support for a new "CommaSeparated" modifier
...
llvm-svn: 6293
2003-05-22 20:25:57 +00:00
Chris Lattner
885cd623c3
New method
...
llvm-svn: 6259
2003-05-21 17:49:08 +00:00
Misha Brukman
373086db75
Hopefully, the final fix for `[Pp]ropogate'.
...
llvm-svn: 6251
2003-05-20 21:01:22 +00:00
Misha Brukman
e5838c4d72
s/convertable/convertible/g
...
llvm-svn: 6248
2003-05-20 18:45:36 +00:00
Misha Brukman
656304bb6c
The plural of `Pass' is Passes, not Pass's.
...
llvm-svn: 6247
2003-05-20 18:39:06 +00:00
Chris Lattner
192623ec93
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
f2bef422e4
Add some methods to make type safety a bit easier
...
llvm-svn: 6198
2003-05-14 17:49:52 +00:00
Chris Lattner
e24ae25363
Beef up interface, move getVarInfo out-of-line.
...
llvm-svn: 6114
2003-05-12 14:23:04 +00:00
Chris Lattner
065eadeb8a
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
b78244f9e1
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
1bf4750f8d
Fixed comment.
...
llvm-svn: 6072
2003-05-10 01:56:42 +00:00
Chris Lattner
3d017b8797
Update out of date comment
...
llvm-svn: 6070
2003-05-09 22:16:18 +00:00
Chris Lattner
36a38730c6
Updates to match recent timer updates
...
llvm-svn: 6069
2003-05-09 20:44:22 +00:00
Chris Lattner
3223099757
Add new method to check to see if a global is available
...
llvm-svn: 6058
2003-05-09 03:29:03 +00:00