Chris Lattner
4c00b1bb14
Rename opCodeString to Name, add new getName() method
...
llvm-svn: 4388
2002-10-29 17:35:09 +00:00
Chris Lattner
4cb6ebc9a1
Rename MachineInstrInfo::getDescriptor to MachineInstrInfo::get
...
llvm-svn: 4387
2002-10-29 17:26:26 +00:00
Chris Lattner
b4ee80190b
Remove old entrypoint
...
llvm-svn: 4385
2002-10-29 17:15:01 +00:00
Chris Lattner
8feac53561
Remove unneeded #include
...
llvm-svn: 4384
2002-10-29 17:14:10 +00:00
Chris Lattner
0493b81eef
De-inline methods
...
llvm-svn: 4379
2002-10-29 16:50:33 +00:00
Chris Lattner
4aba455989
Remove unneeded #include
...
llvm-svn: 4377
2002-10-29 16:50:06 +00:00
Chris Lattner
0cff6f7e16
Make assertIGNode be private to the InterferenceGraph.cpp file
...
llvm-svn: 4375
2002-10-29 16:42:34 +00:00
Chris Lattner
54eff4bcba
Remove unneccesary #include
...
llvm-svn: 4374
2002-10-29 16:34:12 +00:00
Chris Lattner
0a2b3a9a7b
Delete unused header file
...
llvm-svn: 4373
2002-10-29 16:32:08 +00:00
Chris Lattner
8869c9be36
MachineInstrInfo doesn't need a TargetMachine member
...
llvm-svn: 4371
2002-10-29 15:44:40 +00:00
Chris Lattner
d5faf681bb
Minor cleanups, remove noncopyable so dot doesn't cluster unrelated stuff
...
llvm-svn: 4365
2002-10-28 23:54:23 +00:00
Chris Lattner
dce27e5927
Strip a bunch of #includes from the file, move some virtual functions to
...
.cpp file
llvm-svn: 4364
2002-10-28 23:53:56 +00:00
Chris Lattner
d5953f5c63
Inline some code from the cpp file
...
llvm-svn: 4363
2002-10-28 23:53:32 +00:00
Chris Lattner
be89ca4b5a
Minor comment updates
...
llvm-svn: 4361
2002-10-28 21:43:42 +00:00
Chris Lattner
8727a8f2d1
Initial checkin of MachineInstrBuilder class
...
llvm-svn: 4360
2002-10-28 21:31:48 +00:00
Chris Lattner
566b2147f9
Remove all traces of the "Opcode Mask" field in the MachineInstr class
...
llvm-svn: 4359
2002-10-28 21:17:20 +00:00
Chris Lattner
11f52470a0
Remove more default arguments that are never used
...
llvm-svn: 4358
2002-10-28 21:02:40 +00:00
Chris Lattner
990e074c2e
Remove default operands that are never used
...
llvm-svn: 4357
2002-10-28 20:59:49 +00:00
Chris Lattner
de6ac9b0ff
* Make MachineOperand ctors private, so MachineOperand can only be created
...
by MachineInstr.
* Add a bunch of new methods to allow incremental addition of operands to the
machine instr instance.
llvm-svn: 4356
2002-10-28 20:48:39 +00:00
Misha Brukman
0daac26c02
Iterator functions now line up together.
...
llvm-svn: 4350
2002-10-28 19:58:38 +00:00
Chris Lattner
74f9160190
Remove two arguments that are never specified
...
llvm-svn: 4348
2002-10-28 19:46:59 +00:00
Chris Lattner
f2cd0a8266
s/method/function
...
llvm-svn: 4338
2002-10-28 05:58:46 +00:00
Chris Lattner
7cdc2977f0
Change MachineBasicBlock's to not be Annotations, instead they are kept as
...
part of a linked list tracked by MachineFunction. MachineBasicBlock::get
is now linear time instead of constant time, and thus is deprecated!
llvm-svn: 4337
2002-10-28 05:30:46 +00:00
Chris Lattner
c32337fb08
* s/unsigned int/unsigned
...
* Make MachineInstrDescriptor only keep a const char * instead of a string
for the opcode name.
llvm-svn: 4335
2002-10-28 04:55:56 +00:00
Chris Lattner
ec393ff469
Make scheduling class variables be 'unsigned' instead of 'int'
...
llvm-svn: 4334
2002-10-28 04:53:18 +00:00
Chris Lattner
a215fe71ce
Remove typedef that is unneccesary
...
llvm-svn: 4332
2002-10-28 04:50:01 +00:00
Chris Lattner
e309cdbc95
Rename the redundant MachineOperand::getOperandType() to MachineOperand::getType()
...
llvm-svn: 4331
2002-10-28 04:45:29 +00:00
Chris Lattner
a7cfe8ccb5
Add new getOperandType(i) method to MachineInstr
...
llvm-svn: 4330
2002-10-28 04:30:20 +00:00
Chris Lattner
7000bbb63f
Fairly major overhaul of MachineInstr & Operand classes
...
- Inline methods that are mostly a single line anyway
- Eliminate several methods that were never called
- Group methods a bit more consistently
llvm-svn: 4329
2002-10-28 04:24:49 +00:00
Chris Lattner
824d112715
Make MachineInstr.h not #include MachineInstrInfo.h
...
llvm-svn: 4328
2002-10-28 02:29:46 +00:00
Chris Lattner
10a01c1620
Remvoe a bunch of unneeded forward decls
...
llvm-svn: 4326
2002-10-28 02:27:07 +00:00
Chris Lattner
a7e9d3e90f
Don't #include <Support/*>, #include "Support/*"
...
llvm-svn: 4325
2002-10-28 02:11:53 +00:00
Chris Lattner
daf162b45a
Add BasicBlock list to MchineFunction that will eventually be the only
...
way to access MachineBasicBlocks. For now, it is never filled.
llvm-svn: 4324
2002-10-28 02:08:43 +00:00
Chris Lattner
2b2fbdf33c
MachineFunction.h now includes MachineBasicBlock.h in preparation for
...
list changes.
llvm-svn: 4321
2002-10-28 02:01:06 +00:00
Chris Lattner
85e7d46739
Remvoe dead fixme and typedef
...
llvm-svn: 4320
2002-10-28 01:55:26 +00:00
Chris Lattner
46509e42f8
MachineBasicBlock doesn't need basicblock.h, it needs Annotation.h
...
llvm-svn: 4319
2002-10-28 01:53:00 +00:00
Chris Lattner
cd476842d3
Rename file to MachineBasicBlock.h
...
llvm-svn: 4316
2002-10-28 01:39:21 +00:00
Chris Lattner
384e13e39c
Add note about state that should be removed when time permits
...
llvm-svn: 4315
2002-10-28 01:27:51 +00:00
Chris Lattner
310d9124e3
Fixes to previous checkin
...
llvm-svn: 4314
2002-10-28 01:27:30 +00:00
Chris Lattner
4f2c612b21
Inline some methods from .cpp files into .h files, minor cleanups
...
llvm-svn: 4313
2002-10-28 01:21:55 +00:00
Chris Lattner
d711c00823
Add prototypes for creation/destruction passes
...
llvm-svn: 4309
2002-10-28 01:11:58 +00:00
Chris Lattner
8e5f672533
* Doxygenify comments
...
* Move addPassesToEmitAssembly back to Sparc.cpp because it really is
sparc specific
llvm-svn: 4306
2002-10-28 01:02:24 +00:00
Chris Lattner
ecbd9d640d
This header is renamed to MachineFunction.h
...
llvm-svn: 4304
2002-10-28 00:45:06 +00:00
Chris Lattner
778ffa3786
We don't need the forwarding typedef
...
llvm-svn: 4303
2002-10-28 00:44:09 +00:00
Misha Brukman
142795fd17
Changed MachineCodeForMethod' to
MachineFunction'.
...
llvm-svn: 4301
2002-10-28 00:28:31 +00:00
Chris Lattner
e9a1ab1e0a
Add support or other operand types
...
llvm-svn: 4298
2002-10-27 21:17:45 +00:00
Chris Lattner
2bc0fd8115
Prune #includes
...
llvm-svn: 4295
2002-10-27 20:49:47 +00:00
Chris Lattner
f0e3a35094
Add neccesary #include
...
llvm-svn: 4294
2002-10-27 19:16:27 +00:00
Chris Lattner
e6c5f2019f
Old GCC's don't have an <ostream>
...
llvm-svn: 4293
2002-10-27 19:12:37 +00:00
Chris Lattner
8f38efd9dd
Add #include
...
llvm-svn: 4291
2002-10-27 19:08:03 +00:00
Chris Lattner
4eae2fc3ad
Initial checkin of target support for X86 backend.
...
llvm-svn: 4287
2002-10-25 23:00:40 +00:00
Chris Lattner
65c82a0310
Initial checkin of Machine Code representation for X86 backend. This will
...
eventually be merged with the sparc backend.
llvm-svn: 4286
2002-10-25 23:00:13 +00:00
Chris Lattner
7a26bbcc83
Fix typo
...
llvm-svn: 4281
2002-10-25 22:53:56 +00:00
Chris Lattner
5ae74dd3ef
* Remove unneccesary #includes
...
* Fix typeo in the (unused) MachineInstrInfo::isArith method
llvm-svn: 4275
2002-10-24 22:34:41 +00:00
Chris Lattner
e68a9a15dd
Minor cleanups
...
llvm-svn: 4267
2002-10-23 01:11:51 +00:00
Chris Lattner
dfc8fbf16b
- Two minor improvements to the MachineInstr class to reduce footprint and
...
overhead: Merge 3 parallel vectors into 1, change regsUsed hash_set to be a
bitvector. Sped up LLC a little less than 10% in a debug build!
llvm-svn: 4261
2002-10-22 23:16:21 +00:00
Chris Lattner
58781838b7
We need to know the call sites each function hosts
...
llvm-svn: 4258
2002-10-22 15:58:23 +00:00
Chris Lattner
535d54ef22
Allow modification of callee
...
llvm-svn: 4257
2002-10-22 15:57:58 +00:00
Chris Lattner
1fb6129889
Small space optimization: Make MachineOperands take 16 bytes instead of
...
20 on intel or 24 on sparc
llvm-svn: 4256
2002-10-22 00:15:13 +00:00
Chris Lattner
b565d3ac5b
- Rename AnalysisUsage::preservesAll to getPreservesAll & preservesCFG to
...
setPreservesCFG to be less confusing.
llvm-svn: 4255
2002-10-21 20:00:28 +00:00
Chris Lattner
1157e5dafb
Delete unused arguments to DSGraph::cloneInto method
...
llvm-svn: 4253
2002-10-21 19:50:29 +00:00
Chris Lattner
4410178282
- Add "ResolvingCaller" to the CallSite record. This keeps track of which
...
function was finally able to resolve the function call. Adding this allows
the TD pass to actually work right!
- Temporarily disable dead node pruning. This will be reenabled soon.
llvm-svn: 4252
2002-10-21 19:47:18 +00:00
Chris Lattner
7588e35aa8
Add another copy ctor form
...
llvm-svn: 4251
2002-10-21 15:32:34 +00:00
Chris Lattner
1276c50e7b
As it turns out, we don't need a fully generic mapping copy ctor, we just need
...
something that maps through a std::map. Since this simplified the client and
implementation code, do so now.
llvm-svn: 4250
2002-10-21 15:04:18 +00:00
Chris Lattner
f8b59c1c75
Make sure to initialize isArray member
...
llvm-svn: 4247
2002-10-21 13:38:07 +00:00
Chris Lattner
eed53d4b81
Remove a 'using' directives from a header file. Using directives cause
...
global changes, so aren't good for headers.
llvm-svn: 4245
2002-10-21 13:24:50 +00:00
Chris Lattner
cd13b5e27f
Add a missing std:: qualifier
...
llvm-svn: 4244
2002-10-21 13:23:42 +00:00
Chris Lattner
ca982e6b42
Two callsites are equivalent even if they are from two completely different
...
call instructions
llvm-svn: 4241
2002-10-21 02:09:03 +00:00
Chris Lattner
2914391ab6
- Make DSCallSite not inherit from std::vector. Renamed methods slightly.
...
Make copy ctor have two versions to avoid dealing with conditional template
argument. DSCallSite ctor now takes all arguments instead of taking one
and being populated later.
llvm-svn: 4240
2002-10-21 02:08:03 +00:00
Vikram S. Adve
85a358583f
Remove spurious caller pointer in DSCallSite.
...
Also add functions to access pointer argument nodes cleanly.
llvm-svn: 4235
2002-10-20 21:41:02 +00:00
Chris Lattner
9c264543b5
Add isArray flag
...
llvm-svn: 4230
2002-10-20 20:28:35 +00:00
Vikram S. Adve
32689f8214
Added a first-class representation for each call site that can be
...
used in the DS graphs in DSGraph.h. With that, the special-purpose
class BUDataStructure::CallSite is no longer needed here.
llvm-svn: 4229
2002-10-20 18:08:55 +00:00
Vikram S. Adve
2a6ec82970
Added a first-class representation for each call site that can be used
...
in the DS graphs.
llvm-svn: 4227
2002-10-20 18:04:43 +00:00
Chris Lattner
efc251af3d
Convert typerec to be a structure instead of a pair
...
llvm-svn: 4226
2002-10-18 18:22:46 +00:00
Chris Lattner
3e2fb69b49
Don't emit braces around something without outgoing edges
...
llvm-svn: 4225
2002-10-18 14:55:44 +00:00
Chris Lattner
d9b76794a0
Add interface for mod/ref info to be captures by dsgraphs
...
llvm-svn: 4222
2002-10-17 21:03:49 +00:00
Chris Lattner
68ac171c62
* Add data structures to BU pass to keep track of call sites for functions
...
* Reenable the TD analysis
llvm-svn: 4212
2002-10-17 04:23:05 +00:00
Chris Lattner
bb28060fb4
* Remove a lot of obsolete #if 0'd code
...
* Add a simple getNodeForValue method to access the ValueMap.
llvm-svn: 4211
2002-10-17 04:22:16 +00:00
Chris Lattner
80332e579c
Use the forward declaration for GraphTraits instead of #including
...
the header
llvm-svn: 4210
2002-10-17 01:36:08 +00:00
Chris Lattner
df9733a0a1
Be const correct. Handle both DSGraph* and const DSGraph*'s
...
llvm-svn: 4208
2002-10-17 01:01:06 +00:00
Chris Lattner
7bada92698
Break up the GraphWriter into smaller chunks to be used in different ways
...
llvm-svn: 4207
2002-10-17 00:59:59 +00:00
Chris Lattner
e62bace6cb
As wierd as it feels to type it, const void* is more generic than void*
...
llvm-svn: 4206
2002-10-17 00:16:39 +00:00
Joel Stanley
128e78631f
Added partial specialization of GraphTraits for the DominatorTree class.
...
llvm-svn: 4205
2002-10-16 23:26:00 +00:00
Chris Lattner
2d213be550
Allow simple nodes to have outgoing edges
...
llvm-svn: 4202
2002-10-16 20:15:38 +00:00
Chris Lattner
d79ee46ac2
* Factor printing code again, add emitSimpleNode method
...
llvm-svn: 4198
2002-10-16 02:03:18 +00:00
Chris Lattner
102fb03846
* Add new DOTGraphTraits::addCustomGraphFeatures method
...
llvm-svn: 4197
2002-10-16 01:44:59 +00:00
Chris Lattner
3702063ff3
The second element of the iterator is really an offset, not a link
...
llvm-svn: 4196
2002-10-16 01:43:11 +00:00
Chris Lattner
c83c9a41fc
* Significantly refactor GraphWriter into a class.
...
llvm-svn: 4194
2002-10-16 01:34:18 +00:00
Chris Lattner
8845b7da14
- Generic graph printing infrastructure changes:
...
* Only print outgoing edges from a cell if the destination isn't null.
This is important for DSGraphs, which have sources with no edges.
* Allow Node attributes to override shape of the node
llvm-svn: 4192
2002-10-16 01:18:14 +00:00
Chris Lattner
d135a2b550
Allow direct access to mergemap for printing
...
llvm-svn: 4191
2002-10-16 01:17:16 +00:00
Chris Lattner
7be670ef4b
- Eliminate SymbolTable::ParentSymTab, ST::localLookup, and
...
Function::ParentSymTab. These aren't needed at all.
llvm-svn: 4186
2002-10-15 21:26:29 +00:00
Chris Lattner
294eae6735
- Add an endianness field to the TargetData datastructure
...
llvm-svn: 4174
2002-10-14 22:41:13 +00:00
Vikram S. Adve
3cb2d3379d
Removed misleading const keyword.
...
llvm-svn: 4169
2002-10-14 16:32:24 +00:00
Chris Lattner
5b41b28fb6
- Dramatically simplify the Constant::mutateReferences implementation,
...
allowing it to be called on all constant types (structures/arrays)
llvm-svn: 4160
2002-10-14 03:30:23 +00:00
Chris Lattner
fdf2ca9468
- Rename Instruction::First*Op to *OpsBegin, and Num*Ops to *OpsEnd to
...
reflect the fact that it's a range being defined.
llvm-svn: 4147
2002-10-13 19:39:16 +00:00
Chris Lattner
54905ed38c
First crack at reimplementing graph traits for DSGraphs
...
llvm-svn: 4145
2002-10-13 19:31:34 +00:00
Chris Lattner
48417f0143
disable the unused "pointer" member
...
llvm-svn: 4144
2002-10-13 19:30:44 +00:00
Chris Lattner
8447baa002
Add dummy entries to document what members can be added
...
llvm-svn: 4141
2002-10-13 17:12:05 +00:00
Vikram S. Adve
7387d96d6a
Use vectors instead of hash_maps for issueGaps and conflictLists.
...
These hash lookups were a major sink of time because they happen so often!
llvm-svn: 4136
2002-10-13 00:37:46 +00:00
Misha Brukman
b4940744de
Added capability to get execution count of a loop if it is a predictable
...
number of iterations.
llvm-svn: 4113
2002-10-11 05:34:32 +00:00
Misha Brukman
d55cfa6b94
Added helper functions in LoopInfo: isLoopExit and numBackEdges.
...
llvm-svn: 4112
2002-10-11 05:31:10 +00:00
Chris Lattner
0df2058775
Expose API to graph library to allow iteration over all nodes, even unreachable ones
...
llvm-svn: 4111
2002-10-10 22:31:31 +00:00
Chris Lattner
cbfb5d1eca
Change reference
...
llvm-svn: 4110
2002-10-10 22:31:02 +00:00
Chris Lattner
dbf01f86a7
* Don't only print out reachable nodes in the graph.
...
* use new api to get all nodes in the graph
* Allow custom graph traits
llvm-svn: 4109
2002-10-10 22:29:51 +00:00
Chris Lattner
6be061bacc
Add new getGraphProperties that may be specialized by graphs
...
llvm-svn: 4108
2002-10-10 22:29:10 +00:00
Chris Lattner
2fd0924282
Rename DataStructureGraph.h to DSGraphTraits.h
...
llvm-svn: 4107
2002-10-10 20:36:37 +00:00
Chris Lattner
0acdba0025
- Add new Constant::replaceUsesOfWithOnConstant which has an end result
...
similar to User::replaceUsesOfWith but actually does the right thing for
constants.
llvm-svn: 4102
2002-10-09 23:12:25 +00:00
Chris Lattner
7c1989dead
Make isExtern() be a virtual function inherited from GlobalValue
...
llvm-svn: 4101
2002-10-09 23:11:33 +00:00
Chris Lattner
f4a42d7fb9
- Detemplatize UseTy<> in Value.h, because it's only instantiated for one
...
type!
llvm-svn: 4093
2002-10-09 00:42:03 +00:00
Chris Lattner
bdb409390d
- Remove Value::use_push_back & Value::use_remove
...
llvm-svn: 4089
2002-10-09 00:25:01 +00:00
Chris Lattner
aa8b6d047c
By default PHINode::removeIncomingValue will delete the phi node if the last
...
incoming value is deleted!
llvm-svn: 4076
2002-10-08 21:31:56 +00:00
Chris Lattner
3cf20c3f14
Expose isCriticalEdge & SplitCriticalEdge methods from crit-edges pass
...
llvm-svn: 4075
2002-10-08 21:06:27 +00:00
Chris Lattner
b9f59f1533
Expose new "recalculate" method from dominatorset
...
llvm-svn: 4074
2002-10-08 19:12:08 +00:00
Chris Lattner
b7590d8595
Don't rotate paper.
...
llvm-svn: 4066
2002-10-07 22:37:03 +00:00
Chris Lattner
2378135686
- Allow printing generic LLVM graphs to 'dot' files, so they can be
...
visualized easily.
llvm-svn: 4061
2002-10-07 18:37:10 +00:00
Chris Lattner
a79cd8735c
Fix bug in last checkin
...
llvm-svn: 4058
2002-10-07 17:13:22 +00:00
Chris Lattner
a186714d74
Implement operator= for SuccIterators
...
llvm-svn: 4055
2002-10-07 16:53:22 +00:00
Chris Lattner
3deb0bdf6c
- Add new isExternal() method to GlobalVariable to mirror Function.
...
- doxygenize comments and add new comments
llvm-svn: 4046
2002-10-06 22:29:58 +00:00
Chris Lattner
267eb7dc67
The wall clock timer (implementing using the RTC or cycle counter on x86) is
...
so much more accurate than the per process timers that we get better results
(less noise) by sorting according to wall time than process time.
llvm-svn: 4034
2002-10-03 21:08:20 +00:00
Chris Lattner
bcb0197fe3
Remove commented out stuff
...
DataStructure.h doesn't include DSGraph.h now
llvm-svn: 4028
2002-10-02 22:14:17 +00:00
Chris Lattner
668457ea05
Move GlobalDSGraph class defn to the end of the file
...
llvm-svn: 4027
2002-10-02 21:55:52 +00:00
Chris Lattner
801fcdd060
This file doesn't need Pass.h
...
llvm-svn: 4026
2002-10-02 21:55:24 +00:00
Chris Lattner
858642be4c
* Implement fully general merging of array subscripts on demand! This
...
does not handle the initial pointer index case yet though.
llvm-svn: 4011
2002-10-02 06:24:29 +00:00
Chris Lattner
0851fb32b7
Checkin the "meat" of the Data structure graph itself. I forgot to check
...
this in before. :(
llvm-svn: 4009
2002-10-02 04:58:12 +00:00
Chris Lattner
5ee67379d9
- Remove the User::eraseOperand method which is never used, really
...
dangerous, and not something we want to expose.
llvm-svn: 4007
2002-10-01 23:41:17 +00:00
Chris Lattner
c2322d5fac
- Rework Statistics:
...
* Renamed StatisticReporter.h/cpp to Statistic.h/cpp
* Broke constructor to take two const char * arguments instead of one, so
that indendation can be taken care of automatically.
* Sort the list by pass name when printing
* Make sure to print all statistics as a group, instead of randomly when
the statistics dtors are called.
llvm-svn: 3999
2002-10-01 22:35:45 +00:00
Chris Lattner
7f0db9917a
Check in DataStructure rewrite so far.
...
llvm-svn: 3998
2002-10-01 22:34:45 +00:00
Chris Lattner
9b38808792
Checkin generic interval timer support
...
llvm-svn: 3992
2002-10-01 19:36:54 +00:00
Vikram S. Adve
dddfcdc478
Added several more helper functions for construction MachineInstrs.
...
llvm-svn: 3983
2002-09-29 22:55:45 +00:00
Vikram S. Adve
0ab2587056
Minor change to interface for Create{Zero,Sign}ExtensionsInstructions.
...
llvm-svn: 3979
2002-09-29 21:53:31 +00:00
Chris Lattner
5c3fdd02af
Simplify code a bit, add an assertion
...
llvm-svn: 3974
2002-09-29 21:37:08 +00:00
Vikram S. Adve
7e39b876eb
Fixed method getReturnValue(): it should return NULL if the
...
callee does not return a value.
llvm-svn: 3968
2002-09-28 17:03:54 +00:00
Vikram S. Adve
1aed35b2e5
Simplified code that handles call args and rets, so it no longer
...
needs the RegClass list to be passed in.
llvm-svn: 3964
2002-09-28 16:56:59 +00:00
Chris Lattner
a9bc408104
First try at implementing the AliasSetTracker class. I'm sure it will need
...
revision as I start to use it though.
llvm-svn: 3954
2002-09-26 21:49:07 +00:00
Chris Lattner
9a954d1bc1
Checkin new loop-preheader insertion pass.
...
llvm-svn: 3943
2002-09-26 16:17:33 +00:00
Chris Lattner
51dd965704
- Fix bug in LoopInfo causing ParentLoop to be garbage
...
llvm-svn: 3940
2002-09-26 16:15:19 +00:00
Chris Lattner
dee21da2c0
- Add methods to ImmediateDominators & DominatorTree to allow updates
...
- Make DominatorTree::Node not inherit from std::vector
llvm-svn: 3938
2002-09-26 16:14:37 +00:00
Chris Lattner
aebc47d30a
Add a new "DominatorSet::addDominator" method to allow updates
...
llvm-svn: 3937
2002-09-26 05:42:47 +00:00
Chris Lattner
4dddc16c8c
- Add new methods to LoopInfo: getLoopPreheader, addBasicBlockToLoop.
...
These allow extra information to be easily gathered, and loopinfo to be
updated.
llvm-svn: 3935
2002-09-26 05:32:43 +00:00
Chris Lattner
06076d8d3e
- Add new ctor to BasicBlock to allow insertion before any BB, not just at
...
the end of the function.
llvm-svn: 3933
2002-09-26 05:03:17 +00:00
Chris Lattner
cbdfa73706
Converted SimpleStructMutation to take TargetData as a required pass.
...
llvm-svn: 3931
2002-09-26 00:17:18 +00:00
Chris Lattner
4b838cd6b5
Change LowerAllocations pass to 'require' TargetData instead of it being
...
passed in.
llvm-svn: 3930
2002-09-25 23:47:49 +00:00
Chris Lattner
8cbeb6c60a
Convert TargetData to be an ImmutablePass
...
llvm-svn: 3928
2002-09-25 23:46:56 +00:00
Chris Lattner
941c5c9a70
ImmutablePass's don't need a runOnFunction, nor do they need to explicitly say
...
that they preserve all xforms
llvm-svn: 3925
2002-09-25 22:27:54 +00:00
Chris Lattner
8c104c3afa
Convert BasicAA to be an immutable pass instead of a FunctionPass
...
llvm-svn: 3922
2002-09-25 22:00:18 +00:00
Chris Lattner
e7d8ee84e7
Add support for ImmutablePasses, which are not run, and cannot be
...
invalidated.
llvm-svn: 3921
2002-09-25 21:59:11 +00:00
Chris Lattner
59bfff25cb
Checkin stub for Misha to implement
...
llvm-svn: 3919
2002-09-25 19:10:06 +00:00
Chris Lattner
442d220996
- Do not expose Critical Edge breaking mechanics outside the BCE pass, thus
...
removing it from Transforms/Local.h and from Transforms/Utils/*
llvm-svn: 3909
2002-09-24 15:51:54 +00:00
Chris Lattner
63940ae296
Expose passinfo from BreakCriticalEdges pass so that it may be "Required" by
...
other passes
llvm-svn: 3906
2002-09-24 15:42:27 +00:00
Chris Lattner
cd247490cd
Add new BreakCriticalEdges pass
...
llvm-svn: 3902
2002-09-24 00:08:37 +00:00
Chris Lattner
c424fd7af2
There are no implicit gep forms of load and store anymore
...
llvm-svn: 3901
2002-09-24 00:08:01 +00:00
Chris Lattner
fba5394cf3
Make users of FindUsedTypes not have problems with linkage. This fixes
...
cwriter.
llvm-svn: 3899
2002-09-24 00:07:17 +00:00
Chris Lattner
8e66cea1a7
Group #includes better
...
llvm-svn: 3887
2002-09-23 17:45:52 +00:00
Anand Shukla
508121e5d9
Initial version: it adds 2 empty slots at the top of stack
...
llvm-svn: 3872
2002-09-21 04:58:26 +00:00
Vikram S. Adve
43881f46b0
Peephole optimization pass on final machine code.
...
llvm-svn: 3863
2002-09-20 16:33:03 +00:00
Vikram S. Adve
248e623726
Add erase() method for a single element.
...
llvm-svn: 3849
2002-09-20 00:55:57 +00:00
Vikram S. Adve
ed466a713a
Added class MachineOptInfo as interface to target-specific
...
routines supporting machine code optimization.
Also added method MachineInstrInfo::getNOPOpCode().
llvm-svn: 3845
2002-09-20 00:52:09 +00:00
Vikram S. Adve
8d0bcb9568
Interface to target-specific routines that support machine code optimization.
...
llvm-svn: 3844
2002-09-20 00:49:21 +00:00
Vikram S. Adve
47303cde2d
Add method MachineInstr::replace to rewrite a machine instruction in place.
...
llvm-svn: 3843
2002-09-20 00:47:49 +00:00
Chris Lattner
31516613bd
Workaround for bug in GCC 3.1.1 iostreams library on sparc. It apprarently
...
isn't flushing an ostream when it is deleted.
llvm-svn: 3834
2002-09-19 20:49:25 +00:00
Chris Lattner
af94e5bd3b
Fix ambiguity problem due to builtin log2(double) function
...
llvm-svn: 3800
2002-09-17 23:56:50 +00:00
Chris Lattner
2cef6041d2
Fix namespace correctness bug
...
llvm-svn: 3798
2002-09-17 23:48:02 +00:00
Chris Lattner
3bc4b5c35c
Add support for gcc 3.2
...
llvm-svn: 3795
2002-09-17 23:38:38 +00:00
Chris Lattner
ccf0fe57bc
Remove extra #include
...
llvm-svn: 3776
2002-09-17 17:18:12 +00:00
Vikram S. Adve
da78de96b2
Fix typo in comment.
...
llvm-svn: 3773
2002-09-17 11:09:59 +00:00
Chris Lattner
45298a4ef3
Fix compile problem on linux. Noone should ever #include <inttypes.h>
...
directly. Instead, include Support/DataTypes.h
llvm-svn: 3766
2002-09-16 20:44:19 +00:00
Vikram S. Adve
feebe5999b
New preselection pass that specializes LLVM code for a target machine,
...
while remaining in legal portable LLVM form and preserving type
information and type safety.
llvm-svn: 3759
2002-09-16 18:08:17 +00:00
Vikram S. Adve
c7947c2cdc
Add ilist_iterator constructor from a node reference.
...
llvm-svn: 3756
2002-09-16 16:46:17 +00:00
Vikram S. Adve
5a92d517b0
Allow transformation DecomposeArrayRef(GetElementPtrInst* GEP) to
...
be invoked on a single instruction at a time, for use in other passes.
llvm-svn: 3751
2002-09-16 16:07:19 +00:00
Vikram S. Adve
9226baa6bc
Add routines to update or erase operands (and to do so without external
...
assumptions about which operand number stores what operand).
llvm-svn: 3750
2002-09-16 16:06:12 +00:00
Vikram S. Adve
4045ba355d
*** empty log message ***
...
llvm-svn: 3749
2002-09-16 16:01:41 +00:00
Vikram S. Adve
359bfe3943
Add support for passes that use a TargetMachine object.
...
llvm-svn: 3748
2002-09-16 16:01:39 +00:00
Vikram S. Adve
37d1a733b1
Add method MachineOperand::hasAllocatedReg().
...
llvm-svn: 3747
2002-09-16 15:58:54 +00:00
Vikram S. Adve
ef1f7d3e42
Add a version of ChooseRegOrImmed to handle numerical constants
...
introduced by InstrSelection.
llvm-svn: 3746
2002-09-16 15:58:34 +00:00
Vikram S. Adve
4aad6090ae
Add method adjustAlignment so that stack slot alignments can be computed
...
in a target-dependent manner (because of the dang OFFSET in Sparc v9).
llvm-svn: 3745
2002-09-16 15:57:43 +00:00
Vikram S. Adve
59b3b6c07b
Add methods to query about the representation of LLVM quantities (e.g.,
...
constants). Useful for target-dependent LLVM transformations like
Preselection.
llvm-svn: 3743
2002-09-16 15:56:01 +00:00
Vikram S. Adve
354fc692dc
*** empty log message ***
...
llvm-svn: 3741
2002-09-16 15:39:35 +00:00
Vikram S. Adve
8d2a9260ef
Remove unnecessary include.
...
llvm-svn: 3723
2002-09-14 23:04:52 +00:00
Vikram S. Adve
263de0387d
Break RA_DEBUG option into several levels to get better output.
...
llvm-svn: 3722
2002-09-14 22:18:37 +00:00
Chris Lattner
148529e5cd
Fix to work correctly under linux
...
llvm-svn: 3720
2002-09-14 19:52:49 +00:00
Vikram S. Adve
7cad54b354
Moving to lib/CodeGen/RegAlloc.
...
llvm-svn: 3718
2002-09-14 11:57:17 +00:00
Vikram S. Adve
3f24ec2530
Add support for MacOS and (hopefully) other BSD derivatives.
...
llvm-svn: 3717
2002-09-14 10:42:59 +00:00
Chris Lattner
547be87c13
Change the MallocInst & AllocaInst ctors to take the allocated type, not the
...
pointer type returned.
llvm-svn: 3711
2002-09-13 22:28:50 +00:00
Chris Lattner
afdf20f4ad
Tighten up sanity checking
...
llvm-svn: 3706
2002-09-13 22:18:26 +00:00
Chris Lattner
d7ccee7961
Try to work well on multiple platforms.
...
llvm-svn: 3704
2002-09-13 21:51:25 +00:00
Chris Lattner
984b568588
Add better linux support by using the right macro. This still should be
...
autoconfiscated, but for now this is sufficient.
llvm-svn: 3701
2002-09-13 15:37:58 +00:00
Chris Lattner
3ddb1c6597
Checkin patch written by Casey Carter, enabling support for the redhat GCC 2.96
...
compiler.
llvm-svn: 3697
2002-09-13 14:33:39 +00:00
Chris Lattner
b270065c97
Add a new BasicBlockPass::doInitialization/Finalization(Function &) pair of
...
methods that may be useful for BasicBlockPasses.
llvm-svn: 3689
2002-09-12 17:06:43 +00:00
Chris Lattner
2d1e19f9e2
Convert index type for getelementptr instruction from uint to long
...
llvm-svn: 3678
2002-09-11 01:16:19 +00:00
Chris Lattner
67487b291c
Add convenience ctor to BranchInst
...
llvm-svn: 3675
2002-09-10 23:54:56 +00:00
Chris Lattner
7636598d94
Implement support for inserting an instruction into a basic block right when it
...
is created.
llvm-svn: 3651
2002-09-10 15:36:11 +00:00
Chris Lattner
9cf88346b6
Eliminate the GenericBinaryInst class
...
llvm-svn: 3649
2002-09-10 15:35:23 +00:00
Chris Lattner
01faec5813
* Eliminate GenericBinaryInst class
...
* Allow specifying where to insert a newly created SetCondInst
llvm-svn: 3648
2002-09-10 15:34:41 +00:00
Chris Lattner
303a74440f
Eliminate the GenericBinaryInst class.
...
llvm-svn: 3647
2002-09-10 15:27:31 +00:00
Chris Lattner
9146e3b8e4
Eliminate setType method
...
Now the only way to set the type of a value is in the ctor for an object
llvm-svn: 3646
2002-09-10 15:26:27 +00:00
Chris Lattner
2550723883
Move TmpInstruction ctor to InstrSelection.cpp file
...
llvm-svn: 3622
2002-09-08 21:07:51 +00:00
Chris Lattner
15ac530194
Checkin initial support for automatic memory leak detection routines
...
llvm-svn: 3617
2002-09-08 18:51:12 +00:00
Chris Lattner
85cf7de5b9
* Clean up some comments
...
* Move code out of header file to .cpp files, to make future changes easier
* Add arguments to classes so that they can be automatically inserted into their
parent structure upon creation.
llvm-svn: 3604
2002-09-06 21:31:57 +00:00
Chris Lattner
1de93e0830
* Clean up indentation a bit
...
* Fix broken comments (copy and pasto)
* Remove irrelevant comment
* Add extra argument to function that causes it to get inserted into a module
automatically.
llvm-svn: 3601
2002-09-06 20:47:31 +00:00
Chris Lattner
1cf6da5815
Include stub for correlated expression elimination pass
...
llvm-svn: 3597
2002-09-06 18:39:29 +00:00