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
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