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