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
Chris Lattner
2274c71150
Allow const functions
...
llvm-svn: 6056
2003-05-09 03:27:41 +00:00
Chris Lattner
f7c402c42f
Fix bug in last checkin
...
llvm-svn: 6055
2003-05-08 22:00:52 +00:00
Chris Lattner
e79e4c8147
Add new methods for stub generation
...
llvm-svn: 6053
2003-05-08 21:53:57 +00:00
Chris Lattner
7f389e8cf9
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
940ebf64d6
Initial support for intrinsic functions
...
llvm-svn: 6033
2003-05-08 03:34:12 +00:00
Chris Lattner
708d608ba3
Initial checkin for LLVM intrinsic functions
...
llvm-svn: 6032
2003-05-08 03:33:54 +00:00
Chris Lattner
e10061e202
Add support for the new VarArgInst instruction, reindent some stuff
...
llvm-svn: 6028
2003-05-08 02:43:06 +00:00
Chris Lattner
d625272e45
Add new VarArgInst class for the va_arg instruction
...
llvm-svn: 6027
2003-05-08 02:42:50 +00:00
Chris Lattner
b0888bfaca
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
afcc4b9f1c
Fix memory corruption problem
...
llvm-svn: 6003
2003-05-06 18:45:02 +00:00
Misha Brukman
f4c7d206a3
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
4f6cdbdf81
Remove two fields from TargetData which are target specific.
...
llvm-svn: 5963
2003-04-26 20:11:09 +00:00
Chris Lattner
91e0564f75
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
201b4b9c88
Remove long-dead obsolete cruft
...
llvm-svn: 5955
2003-04-25 23:39:08 +00:00
Chris Lattner
d6df41d389
Fix method name type-o
...
llvm-svn: 5933
2003-04-25 05:23:27 +00:00
Chris Lattner
a2f7d23e9a
*** Huge: Make constantexprs be handled correctly, conservatively
...
llvm-svn: 5923
2003-04-25 02:51:46 +00:00
Chris Lattner
06aa504555
Default ctor doesn't provide name
...
llvm-svn: 5921
2003-04-25 02:50:19 +00:00
Chris Lattner
02378422a4
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
4ca84cbbde
Remove support for "targetdata pass ctors"
...
llvm-svn: 5901
2003-04-24 18:41:30 +00:00
Chris Lattner
6e646f1377
LevelRaise now gets TD from passmanager
...
llvm-svn: 5897
2003-04-24 18:25:42 +00:00
Chris Lattner
1d724408d0
Kill unneccesary &*
...
llvm-svn: 5870
2003-04-23 16:35:30 +00:00
Chris Lattner
1dd9185996
Add stub to create lowerSwitches pass
...
llvm-svn: 5866
2003-04-23 16:24:19 +00:00
Chris Lattner
ecb0bac0ec
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
215b00589f
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
085ca7d3ed
Add information about the module source
...
llvm-svn: 5837
2003-04-22 18:03:13 +00:00
Chris Lattner
c3f6e00011
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
56b9eb9cc1
Add prototype to read .a files
...
llvm-svn: 5821
2003-04-19 21:45:52 +00:00
Chris Lattner
55cdd161f8
Add prototype for new CloneBasicBlock function
...
llvm-svn: 5804
2003-04-18 03:49:22 +00:00
Chris Lattner
37a2e2185a
Don't force a ConstantPointer to be returned
...
llvm-svn: 5799
2003-04-17 19:22:47 +00:00
Chris Lattner
46b3d30bf6
Change the interface to constant expressions to allow automatic folding
...
llvm-svn: 5793
2003-04-16 22:40:51 +00:00
Chris Lattner
0d2d871e80
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
379a8d2d1c
Add new linkage types to support a real frontend
...
llvm-svn: 5786
2003-04-16 20:28:45 +00:00
Misha Brukman
61a9e7c901
Must use std::pair instead of just 'pair'.
...
llvm-svn: 5767
2003-04-07 00:25:09 +00:00
Guochun Shi
2c6ad22962
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
09abd1aeaf
added some memory for clone function
...
llvm-svn: 5765
2003-04-06 23:58:44 +00:00
Chris Lattner
73410f84f7
Add getAnalysisUsage method
...
llvm-svn: 5756
2003-03-31 17:29:18 +00:00
Chris Lattner
9ad7757e7c
Add helper method
...
llvm-svn: 5753
2003-03-21 21:41:02 +00:00
Chris Lattner
3628607140
Update comment
...
llvm-svn: 5752
2003-03-21 21:40:39 +00:00
Chris Lattner
91f136847e
Add more graph traits specializations for dominator tree nodes
...
llvm-svn: 5751
2003-03-20 21:21:05 +00:00
Chris Lattner
65c9fb07b0
Add new chunk type
...
llvm-svn: 5747
2003-03-19 20:48:27 +00:00
Chris Lattner
9c19c07e8b
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
83e5d39566
Fix ConstantUInt::isAllOnesValue
...
llvm-svn: 5734
2003-03-10 22:39:02 +00:00
Chris Lattner
187c39b6d0
Extend struct and array constants to support isNullValue
...
llvm-svn: 5719
2003-03-06 21:02:43 +00:00
Chris Lattner
c429eee86a
Generalize interface a bit
...
llvm-svn: 5711
2003-03-06 16:50:21 +00:00
Chris Lattner
d5c4ef5456
Add new getIncomingValueForBlock method
...
Relax a bit about constness
llvm-svn: 5709
2003-03-06 16:36:28 +00:00
Chris Lattner
fbb7739b13
Simplify some of the PHI node interfaces
...
llvm-svn: 5700
2003-03-05 21:15:12 +00:00
Chris Lattner
12f3ec7d10
Add a few new 'add' methods. Move the iterator around
...
llvm-svn: 5690
2003-03-03 23:27:52 +00:00
Chris Lattner
e27406eb59
Change the mem2reg interface to accept a TargetData argument
...
llvm-svn: 5685
2003-03-03 17:25:18 +00:00
Chris Lattner
e2d58f2065
Don't apply type information to loads
...
llvm-svn: 5683
2003-03-03 17:13:22 +00:00
Chris Lattner
a6de793baa
Add dump method for loops
...
llvm-svn: 5670
2003-02-28 16:54:37 +00:00
Chris Lattner
915e1a4854
Add graph traits specializations for loop nesting information...
...
llvm-svn: 5666
2003-02-28 03:05:15 +00:00
Chris Lattner
9eaef21f1f
Add new Loop::hasExitBlock helper method
...
llvm-svn: 5663
2003-02-27 22:48:28 +00:00
Chris Lattner
72a9854584
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
079cd2acf1
Make the interface to update a little more efficient
...
llvm-svn: 5651
2003-02-27 20:24:17 +00:00
Chris Lattner
9ce4a2bb96
* 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
b5b0b7a934
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
ddfe676e71
BasicAA doesn't need a public header
...
llvm-svn: 5639
2003-02-26 19:41:46 +00:00
Chris Lattner
7b5727a400
Tweak to work with new AA implementation
...
llvm-svn: 5632
2003-02-26 19:25:04 +00:00
Chris Lattner
c6bf7ec5e0
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
daaf2982e7
* 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
a5dc1ec0a4
Add new helper template function
...
llvm-svn: 5622
2003-02-25 00:00:50 +00:00
Chris Lattner
4869f3700e
Rename Instruction::hasSideEffects() -> mayWriteToMemory()
...
llvm-svn: 5620
2003-02-24 20:48:32 +00:00
Chris Lattner
7606fb65c0
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
a65cd08dd8
Initial checkin of CallSite wrapper for Call/Invoke instructions
...
llvm-svn: 5618
2003-02-24 20:35:45 +00:00
Chris Lattner
940863bd22
Fix #endif
...
llvm-svn: 5615
2003-02-24 04:40:35 +00:00
Chris Lattner
af9598f6a8
Add support for the slist extension
...
llvm-svn: 5614
2003-02-24 04:31:49 +00:00
Chris Lattner
6dbd10c760
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
a17866894a
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
7127d7db7a
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
1cc14aa2ba
Fix uninitialized member problem
...
llvm-svn: 5534
2003-02-11 06:36:00 +00:00
Chris Lattner
242d685332
Bugfix for calling dump() after the links vector has been cleared
...
llvm-svn: 5533
2003-02-10 22:46:47 +00:00
Chris Lattner
e170f0db13
Move getNode() out of line
...
llvm-svn: 5531
2003-02-10 18:19:41 +00:00
Chris Lattner
f4122de179
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
ed8dbc90a5
TD Pass now does not cause globals to mark nodes incomplete.
...
llvm-svn: 5512
2003-02-09 18:40:25 +00:00
Chris Lattner
80614ee5ef
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
6a9307866c
Allow the addition of edge source labels
...
llvm-svn: 5493
2003-02-05 19:40:59 +00:00
Chris Lattner
a0e9e6ec8c
Add sanity check
...
llvm-svn: 5489
2003-02-04 00:03:57 +00:00
Chris Lattner
390cec0c77
Hack to work around deficiency in pass infrastructure
...
llvm-svn: 5485
2003-02-03 22:51:28 +00:00
Chris Lattner
6662cbc510
Eliminate unused resolving caller stuff
...
llvm-svn: 5475
2003-02-03 19:11:04 +00:00
Chris Lattner
d39eca41b8
* 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
ddcd02e8db
Remove pool alloc accessor
...
llvm-svn: 5473
2003-02-03 19:08:33 +00:00
Chris Lattner
45914783ad
Expose information about pool allocation
...
llvm-svn: 5471
2003-02-03 19:07:46 +00:00
Chris Lattner
b57f4b7b72
Allow modifying a global variables constness property
...
llvm-svn: 5468
2003-02-02 16:40:40 +00:00
Chris Lattner
c44c04af44
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
2c5b6a0021
Add hash_multimap support
...
llvm-svn: 5457
2003-02-01 04:14:28 +00:00
Chris Lattner
fae1291852
Add new composition mask
...
llvm-svn: 5454
2003-02-01 03:28:26 +00:00
Joel Stanley
a801c7bae5
Added protos for two alternate, convenient CallInst constructors.
...
llvm-svn: 5453
2003-02-01 00:41:27 +00:00
Chris Lattner
26a1fe3494
Add new function to allow removal of typed named elements
...
llvm-svn: 5442
2003-01-30 20:54:03 +00:00
Chris Lattner
d43c53abbc
New API for traversing graph
...
llvm-svn: 5430
2003-01-29 21:09:59 +00:00
Chris Lattner
aa6b2bfd78
Initial checking: defult the make_vector function
...
llvm-svn: 5424
2003-01-28 20:01:16 +00:00
Chris Lattner
6ffcdb5bef
New helper header
...
llvm-svn: 5423
2003-01-27 22:08:52 +00:00
Chris Lattner
38c5e417a7
* Eliminate boolean arguments in favor of using enums
...
llvm-svn: 5420
2003-01-23 22:06:33 +00:00
Chris Lattner
eb45c982ae
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
dea36ca100
Move sparc specific code into the Sparc backend
...
llvm-svn: 5317
2003-01-15 21:36:50 +00:00
Chris Lattner
79f8a6e5fb
Simplify the interface
...
llvm-svn: 5313
2003-01-15 21:13:32 +00:00
Chris Lattner
8e3df8ea34
Move private headers into private regalloc directory
...
llvm-svn: 5308
2003-01-15 20:26:32 +00:00
Chris Lattner
99f2dfd673
Move private header to private dir
...
llvm-svn: 5304
2003-01-15 19:50:32 +00:00
Chris Lattner
5da071b265
Remove obsolete ctor
...
llvm-svn: 5301
2003-01-15 19:47:02 +00:00
Chris Lattner
5d0a644b63
Remove internal helper fn
...
llvm-svn: 5300
2003-01-15 19:46:39 +00:00
Chris Lattner
067bf7b949
ADd support for CC registers for Sparc BE
...
llvm-svn: 5297
2003-01-15 19:22:23 +00:00
Chris Lattner
109d114e4c
Add support for the CC registers for Sparc BE
...
llvm-svn: 5296
2003-01-15 19:22:06 +00:00
Chris Lattner
637de4abee
Remove more unused methods
...
llvm-svn: 5295
2003-01-15 19:21:50 +00:00
Chris Lattner
11f883813f
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
3db143a92b
Add new helper method addRegDef
...
llvm-svn: 5289
2003-01-15 17:18:22 +00:00
Chris Lattner
87c859211d
* 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
717fbaf92c
Move to include/llvm/CodeGen
...
llvm-svn: 5285
2003-01-14 23:05:31 +00:00
Chris Lattner
de1d729747
Move llvm/Analysis/LiveVar/ValueSet.h to CodeGen/ValueSet.h
...
llvm-svn: 5282
2003-01-14 22:56:37 +00:00
Chris Lattner
ebe979693d
New header
...
llvm-svn: 5280
2003-01-14 22:37:41 +00:00
Chris Lattner
4d0d75ef88
Move to Instrumentation.h
...
llvm-svn: 5279
2003-01-14 22:36:15 +00:00
Chris Lattner
37ac1c4df3
REmove unused header file
...
llvm-svn: 5275
2003-01-14 22:29:57 +00:00
Chris Lattner
ca4903a35d
Remove unused header
...
llvm-svn: 5274
2003-01-14 22:28:22 +00:00
Chris Lattner
b4d58d7f9e
Rename MachineInstrInfo -> TargetInstrInfo
...
llvm-svn: 5272
2003-01-14 22:00:31 +00:00
Chris Lattner
73a8c81c40
Move llvm/Annotation.h to Support/Annotation.h
...
llvm-svn: 5271
2003-01-14 21:39:04 +00:00
Chris Lattner
4fd26cc90e
Move annotation to support library
...
llvm-svn: 5268
2003-01-14 21:29:58 +00:00
Chris Lattner
67229e4bff
Must #include assert.h
...
llvm-svn: 5267
2003-01-14 21:29:52 +00:00
Chris Lattner
7b55045858
Add new files
...
llvm-svn: 5259
2003-01-13 01:01:31 +00:00
Chris Lattner
b63ba57411
Rename MachineInstrInfo -> TargetInstrInfo
...
llvm-svn: 5214
2003-01-13 00:21:32 +00:00
Chris Lattner
deca2b5272
* Start renaming MachineInstrInfo -> TargetInstrInfo
...
* Add new M_TERMINATOR_FLAG
llvm-svn: 5213
2003-01-13 00:21:19 +00:00
Chris Lattner
936402bbb2
Add new getName method
...
llvm-svn: 5212
2003-01-13 00:19:44 +00:00
Chris Lattner
5d72e6cb69
Simplify interface to creating a register
...
llvm-svn: 5211
2003-01-13 00:19:18 +00:00
Chris Lattner
6cd144e676
* Add support for new types of operands
...
llvm-svn: 5210
2003-01-13 00:18:44 +00:00
Chris Lattner
c32a3ba53d
* 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
ea1f103e5c
* 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
55f00fa00f
* Add utility methods which make common cases easier
...
llvm-svn: 5207
2003-01-13 00:15:24 +00:00
Chris Lattner
5d4b55f69f
* 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
f9781b59ab
More renamings of Target/Machine*Info to Target/Target*Info
...
llvm-svn: 5204
2002-12-29 03:13:05 +00:00
Chris Lattner
42d59219c7
Rename MachineOptInfo to TargetoptInfo
...
Rename MachineCacheInfo to TargetCacheInfo
llvm-svn: 5203
2002-12-29 02:50:35 +00:00
Chris Lattner
26c23467c5
Rename FunctionFrameInfo to MachineFrameInfo
...
llvm-svn: 5201
2002-12-28 21:08:28 +00:00
Chris Lattner
69f10f32cc
* doxygenize comment
...
* rename MachineFrameInfo to TargetFrameInfo
llvm-svn: 5170
2002-12-28 20:13:29 +00:00
Chris Lattner
8da6184be0
Sparc specific methods default to abort rather than being pure virtual
...
llvm-svn: 5169
2002-12-28 20:12:54 +00:00
Chris Lattner
6ed67d7ac5
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
a4f3329bc9
* 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
840af613be
Descriptor object used to manage abstract frame references
...
llvm-svn: 5166
2002-12-28 20:07:47 +00:00
Chris Lattner
00436009f6
State for frame and constant pool information pulled out of MachineFunction
...
llvm-svn: 5165
2002-12-28 20:07:33 +00:00
Chris Lattner
30cd247441
* Frame indices are signed
...
* Cluster modification methods together
llvm-svn: 5164
2002-12-28 20:05:44 +00:00
Chris Lattner
f1230afc0e
* 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
343ad0d65c
Initial check in of MachineFunctionPass.h
...
llvm-svn: 5162
2002-12-28 20:03:01 +00:00
Chris Lattner
f2dc9d9cea
Simplify spill interface methods
...
llvm-svn: 5142
2002-12-25 05:02:00 +00:00
Chris Lattner
52d325b494
Add comment
...
llvm-svn: 5141
2002-12-25 05:01:46 +00:00
Chris Lattner
05ec1f9369
Add abstract frame index capability
...
llvm-svn: 5140
2002-12-25 05:01:18 +00:00
Chris Lattner
9d8350939a
Remove default ctor
...
llvm-svn: 5139
2002-12-25 05:01:05 +00:00
Chris Lattner
21d48e8f2c
*** empty log message ***
...
llvm-svn: 5138
2002-12-25 05:00:49 +00:00
Chris Lattner
6e6c6eda24
Remove dependency on SSARegMap.h
...
llvm-svn: 5137
2002-12-25 05:00:16 +00:00
Chris Lattner
a4d7e4f203
Allow the target machines to specify endianness and pointer size
...
llvm-svn: 5128
2002-12-24 00:02:17 +00:00
Chris Lattner
996fe01028
Initial checkin of new LLI with JIT compiler
...
llvm-svn: 5126
2002-12-24 00:01:05 +00:00
Chris Lattner
de4aa4cf8c
New files for miscompilation detection
...
llvm-svn: 5120
2002-12-23 23:50:16 +00:00
Chris Lattner
5629397d28
Simplify interface to remove virtual function references
...
llvm-svn: 5100
2002-12-17 04:20:39 +00:00
Chris Lattner
b74c150efc
Add support for register alias set description
...
llvm-svn: 5080
2002-12-16 16:39:14 +00:00
Chris Lattner
050d0ce094
Export well known instruction opcodes usable by target independant passes
...
llvm-svn: 5063
2002-12-15 22:16:08 +00:00
Chris Lattner
432447fed1
Add new opIsUse method
...
llvm-svn: 5062
2002-12-15 22:05:02 +00:00
Chris Lattner
e2533336f5
Simplify interfaces used by regalloc to insert code
...
llvm-svn: 5052
2002-12-15 20:06:35 +00:00
Chris Lattner
df1f77207a
Simplify TargetRegisterClass a bit, also eliminating virtual function call
...
overhead
llvm-svn: 5049
2002-12-15 19:29:14 +00:00
Chris Lattner
663cd4fc2e
* 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
0345ea6908
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
78401cbb3c
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
34cd32d42a
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
a8d8e0d9dd
Get rid of deprecated function
...
llvm-svn: 4997
2002-12-13 07:30:45 +00:00
Misha Brukman
eedcef4f92
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
c1ba0cddd6
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
0d19db3c34
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
5bd7897ac2
Fix header
...
llvm-svn: 4966
2002-12-12 03:43:30 +00:00
Vikram S. Adve
5fb974b74a
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
41aab86c40
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
775e51d87a
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
8975afdfc4
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
906eea0e43
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
d1665d2bab
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
00ca82dbd2
Added static helper method MergeNodes(). See DataStructure.cpp for more.
...
llvm-svn: 4946
2002-12-06 21:10:17 +00:00
Vikram S. Adve
80cac479bd
Bug fix in operator==() and in method fini().
...
llvm-svn: 4945
2002-12-06 15:02:22 +00:00
Chris Lattner
bf10511db7
Make sure to print indirect node again
...
llvm-svn: 4943
2002-12-06 06:40:00 +00:00
Misha Brukman
25e6ed4ec1
Added prototypes for emitting prologue and epilogue for function code
...
generation.
llvm-svn: 4927
2002-12-04 23:55:56 +00:00
Misha Brukman
1af9bebcda
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
0d28502c32
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
418b77ef4b
Add support for direct global references
...
llvm-svn: 4905
2002-12-04 06:44:27 +00:00
Chris Lattner
4843ebc4ba
Expose target data through a method for uniformity
...
llvm-svn: 4901
2002-12-04 05:20:12 +00:00
Misha Brukman
9e4163539f
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
8f520dfa9c
Add virtual dtor, expose a debug impl
...
llvm-svn: 4892
2002-12-03 20:56:20 +00:00
Chris Lattner
aa0d2c5fb3
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
f24e2a748f
More support
...
llvm-svn: 4873
2002-12-02 21:56:28 +00:00
Chris Lattner
d5eadf6aa4
Start adding to the meat of MachineCodeEmitter
...
llvm-svn: 4869
2002-12-02 21:44:13 +00:00
Chris Lattner
b0a750cf39
Initial version of MachineCodeEmitter interface: empty
...
llvm-svn: 4864
2002-12-02 21:21:36 +00:00
Chris Lattner
23f0e10a9a
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
e992ff49bd
Add comment about ownership semantics
...
llvm-svn: 4859
2002-12-02 21:13:45 +00:00
Chris Lattner
7b6411c3c0
Add stub to emit machine code for JIT
...
llvm-svn: 4856
2002-12-02 21:00:50 +00:00
Vikram S. Adve
cb8b5af572
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
0b5b784922
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
9409087108
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
ec6b8e9fad
Added virtual functions for storing and retrieving values from the stack.
...
llvm-svn: 4824
2002-11-22 22:41:23 +00:00
Misha Brukman
5bed2faf6b
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
31457f066d
Set SSARegMap to NULL after deleting it.
...
llvm-svn: 4822
2002-11-22 22:32:15 +00:00