1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-26 14:33:02 +02:00
Commit Graph

875 Commits

Author SHA1 Message Date
Vikram S. Adve
6ac730799c Add method getCallInstIndirectAddrVal() to add call interference
for this value.

llvm-svn: 2072
2002-03-31 18:58:49 +00:00
Vikram S. Adve
c2c33ba3fd Include temp. values when computing max. size of stack frame!
llvm-svn: 2070
2002-03-31 18:57:49 +00:00
Chris Lattner
0a70c8a163 * Allow access to DSNode iterator as DSNode::iterator/begin/end
* Add debugging "dump" method to DSNode
* Fix bugs in DSNode iterator

llvm-svn: 2060
2002-03-31 07:11:20 +00:00
Chris Lattner
c3b299b9ba Initial checkin of file:
Define an iterator to operate over data structure outgoing links and
graph implementation so generic graph functions can be used.

llvm-svn: 2057
2002-03-30 09:13:23 +00:00
Chris Lattner
06ffc5b249 Add accessors and a method to get all the outgoing links for ALL nodes
llvm-svn: 2055
2002-03-30 09:07:51 +00:00
Chris Lattner
fb50c702c4 Add an accessor
llvm-svn: 2054
2002-03-30 04:02:41 +00:00
Chris Lattner
289f7690fe Add a hook to allow the datastructure to keep naturally up to date, even
though it's not entirely fleshed out.

llvm-svn: 2051
2002-03-29 21:23:29 +00:00
Chris Lattner
c8291c9eb1 Add more accessors
llvm-svn: 2047
2002-03-29 19:04:19 +00:00
Chris Lattner
4e65b19a54 Checkin new useful routine
llvm-svn: 2046
2002-03-29 19:04:08 +00:00
Chris Lattner
4e79dc8099 Rename getCalledMethod to getCalledFunction
llvm-svn: 2042
2002-03-29 17:08:01 +00:00
Chris Lattner
01affcf43e Remove getCalledMethod. Use getCalledFunction instead
llvm-svn: 2041
2002-03-29 17:07:34 +00:00
Chris Lattner
18cc6a9277 Add an insert method to VAlueHolder to allow batch insertion
llvm-svn: 2038
2002-03-29 05:49:37 +00:00
Chris Lattner
474495e742 Add new addTypeName method to Module class
llvm-svn: 2037
2002-03-29 04:48:40 +00:00
Chris Lattner
8c98acc07f s/Method/Function
llvm-svn: 2035
2002-03-29 03:51:11 +00:00
Chris Lattner
084601e6f4 s/Method/Function
llvm-svn: 2034
2002-03-29 03:44:36 +00:00
Chris Lattner
ca2c7dbf7c Expose more information to clients
llvm-svn: 2027
2002-03-29 03:35:30 +00:00
Chris Lattner
33ff5dc7e7 Add getOrInsertFunction and getFunction methods to Module. This simplifies
some code in the transformations.

llvm-svn: 2026
2002-03-29 03:32:29 +00:00
Chris Lattner
0cc345f1d3 Add #define for MethodType
llvm-svn: 2025
2002-03-29 03:32:00 +00:00
Chris Lattner
597198838d s/Method/Function/
llvm-svn: 2024
2002-03-29 03:30:59 +00:00
Chris Lattner
4823b956bc Rename MethodType to FunctionType, provide a #define
llvm-svn: 2023
2002-03-29 03:15:32 +00:00
Chris Lattner
ab9cc61ceb Remove the reduceApply functions they are obsolete things from the days before
we had a reasonable pass system

llvm-svn: 2022
2002-03-28 22:49:49 +00:00
Chris Lattner
cab0ce8244 Implement getEscapingAllocations & getNonEscapingAllocations
llvm-svn: 2021
2002-03-28 19:33:00 +00:00
Chris Lattner
2f9f87a984 * Remove RemoveUnreachableShadowNodes & UnlinkUndistinguishableShadowNodes
to reflect the fact that they actually operate on arbitrary nodes
* Clean up public interface of FunctionDSGraph
* add getEscapingAllocations & getNonEscapingAllocations

llvm-svn: 2019
2002-03-28 19:15:38 +00:00
Chris Lattner
9f9685197c New file for new pass
llvm-svn: 2012
2002-03-28 18:01:22 +00:00
Chris Lattner
4054edc567 * Define some operators on PointerVal and PVS's
* Nodes can determine whether they are foldable with another node
* Rename NewDSNode to AllocDSNode
* The Function graph breaks up all of the node types into individual
  vectors to alloc fast access when you are looking for a particular type
  of node.  Simplifies much code.

llvm-svn: 2009
2002-03-28 17:48:41 +00:00
Cameron Buschardt
6ca2f4e859 Rename constructor function
llvm-svn: 2006
2002-03-27 23:27:45 +00:00
Chris Lattner
4defbc34ff * Add a nice utility method to DSNode
* Export interface to tell whether an alloc node represent a malloc or alloca
* Add the concept of a "critical" shadow node

llvm-svn: 2000
2002-03-27 19:41:45 +00:00
Chris Lattner
e01e339e93 Allow isa<DSNode>(..)
Simplification routines return true on change

llvm-svn: 1996
2002-03-27 00:52:57 +00:00
Chris Lattner
1026adab40 New header file for datastructure analysis
llvm-svn: 1993
2002-03-26 22:38:45 +00:00
Chris Lattner
fecabeab3c Change uses of Method to Function
Change uses of methodArgument to FunctionArgument

llvm-svn: 1988
2002-03-26 17:49:55 +00:00
Chris Lattner
5295e0fdcc Remove unneccesary forward declarations for classes
llvm-svn: 1987
2002-03-26 17:49:00 +00:00
Chris Lattner
a874026838 Transform uses of Method into uses of Function.
Rename MethodArgument to FunctionArgument
Fix some _really_ out of date comments

llvm-svn: 1986
2002-03-26 17:48:08 +00:00
Chris Lattner
9e84a283e3 Allow clients to use FunctionType as well as MethodType for now
llvm-svn: 1985
2002-03-26 17:46:41 +00:00
Vikram S. Adve
9722a4b6e9 Refix bug: Add back method MachineCodeForInstruction::dropAllReferences.
llvm-svn: 1980
2002-03-24 03:58:02 +00:00
Vikram S. Adve
0a68a60e95 Fix padding when allocating local variables on stack.
llvm-svn: 1979
2002-03-24 03:57:38 +00:00
Vikram S. Adve
aaad217cc1 Add methods to support type inquiry. Rename TmpInstruction values.
llvm-svn: 1978
2002-03-24 03:56:55 +00:00
Vikram S. Adve
463af87e8c Change treeRoots data structure to make enumeration deterministic.
Also, add a flag to marked nodes that do not need code because they
have been folded into the user (parent in the BURG tree).

llvm-svn: 1963
2002-03-24 03:25:17 +00:00
Vikram S. Adve
1f5e8f93cc Major overhaul to support arbitrary mixed array and structure indices.
Also moved to the Scalar/ directory and renamed to "MultiDim".

llvm-svn: 1961
2002-03-24 03:21:18 +00:00
Chris Lattner
c481e92886 Rename Method to Function
llvm-svn: 1957
2002-03-23 22:51:58 +00:00
Chris Lattner
6298cccfb9 Remove extranous forward decl
llvm-svn: 1956
2002-03-23 22:48:21 +00:00
Chris Lattner
418a519513 Remove unneccesary forward definitions
llvm-svn: 1955
2002-03-23 22:48:07 +00:00
Chris Lattner
9bb81deeb2 Add transition header file
llvm-svn: 1954
2002-03-23 22:47:43 +00:00
Chris Lattner
6cfb9cf484 Update documentation, rename Method to Function, move typedef to Value.h for now.
llvm-svn: 1953
2002-03-23 22:47:28 +00:00
Chris Lattner
e57136e0bf Change Method to Function
llvm-svn: 1952
2002-03-23 22:46:51 +00:00
Chris Lattner
1ff9888023 Add transition typedef to Function
llvm-svn: 1951
2002-03-23 21:59:53 +00:00
Vikram S. Adve
d0e5520726 New pass to convert Convert multi-dimensional
array references into 1-D references.

llvm-svn: 1950
2002-03-23 20:46:18 +00:00
Vikram S. Adve
cae64b9e24 Moved to Scalar/ directory.
llvm-svn: 1949
2002-03-23 20:44:37 +00:00
Chris Lattner
e8057176ec * Make AllocationInst ctor protected
* Move AllocationInst ctor to iMemory.cpp
* AllocationInst's always have one operand, even if it is a uint 1

llvm-svn: 1938
2002-03-21 22:37:01 +00:00
Chris Lattner
7b3dc0948b Remove a misguided API extension
llvm-svn: 1926
2002-03-21 05:46:43 +00:00
Chris Lattner
e3bca2be3b Allow implementation of all HANDLE_*_INST macros at once by defining HANDLE_INST
llvm-svn: 1919
2002-03-19 05:51:18 +00:00
Vikram S. Adve
2587f1aca7 New pass to convert Convert multi-dimensional
array references into 1-D references.

llvm-svn: 1918
2002-03-19 02:10:34 +00:00
Vikram S. Adve
aae5fcc0ca Big bug fix: killed uses were being inserted instead of erased!
Also added a set of debug options.

llvm-svn: 1917
2002-03-19 00:59:08 +00:00
Chris Lattner
456d7bea78 Initial checkin of InstVisitor class
llvm-svn: 1916
2002-03-18 19:07:42 +00:00
Chris Lattner
4af1704877 Add isa,cast,dyncast support for AllocationInst.
llvm-svn: 1915
2002-03-18 05:00:51 +00:00
Vikram S. Adve
6ea96e596c Added function computeOffsetforLocalVar to check how big the
offset-from-FP will be before allocating space for a local variable.

llvm-svn: 1900
2002-03-18 03:23:29 +00:00
Vikram S. Adve
abd6592e16 Use vector for machine instructions in GetInstructionsByRule.
llvm-svn: 1899
2002-03-18 03:20:46 +00:00
Vikram S. Adve
6e25a66e75 Added machine-independent value for INVALID_MACHINE_OPCODE.
Just cosmetic changes otherwise.

llvm-svn: 1898
2002-03-18 03:19:38 +00:00
Vikram S. Adve
4d3248ddc4 Add function getRegClassIDOfType.
getRegClassIDOfValue is now just a wrapper around this.

llvm-svn: 1897
2002-03-18 03:18:28 +00:00
Vikram S. Adve
778410c47a Bug fix in setting CC register.
Also use distinct names for the three types of SetMachineOperand
to avoid painful overloading problems and errors.

llvm-svn: 1894
2002-03-18 03:10:17 +00:00
Chris Lattner
4f4609a284 Convert the top line of the header from .cpp style to .h style.
llvm-svn: 1884
2002-03-17 21:16:22 +00:00
Chris Lattner
889b1e5b00 Fix bug: test/Regression/Other/2002-03-11-ConstPropCrash.ll
llvm-svn: 1858
2002-03-11 22:11:07 +00:00
Chris Lattner
b44f81b987 * Add new method localLookup
* SymbolTable::remove(Value *N) checks to see if we are internally
  inconsistent before looking for a type plane (caused a crash)
* insertEntry now does a local lookup instead of a global lookup, which was
  causing an infinite loop in the renamer logic.
* Added assertions to make sure stuff stays happy
* Now the linker correctly links the SPECINT2000 mcf benchmark

llvm-svn: 1840
2002-03-08 20:26:17 +00:00
Chris Lattner
e7204f3c24 Fix typo in comment
llvm-svn: 1834
2002-03-08 18:38:08 +00:00
Chris Lattner
0f0ed63279 Clean up call graph, add comments, and fix test/Regression/Other/2002-01-31-CallGraph.ll
llvm-svn: 1828
2002-03-06 20:19:35 +00:00
Chris Lattner
5cea52a4d5 Move callgraph printing out of writer.h into callgraph.h
llvm-svn: 1824
2002-03-06 17:59:45 +00:00
Chris Lattner
4830f16b6e Pull Callgraph out of the cfg namespace
llvm-svn: 1821
2002-03-06 17:39:28 +00:00
Chris Lattner
962e012ad5 Take CallGraph out of the CFG namespace. It has nothing to do with CFGs
llvm-svn: 1820
2002-03-06 17:16:43 +00:00
Chris Lattner
e2383e8592 Change over to use new style pass mechanism, now passes only expose small
creation functions in their public header file, unless they can help it.

llvm-svn: 1816
2002-02-26 21:46:54 +00:00
Chris Lattner
3ca03295c4 Expose verifier for method and module, and accept constant structures
llvm-svn: 1814
2002-02-26 21:38:48 +00:00
Chris Lattner
1b9b843452 Move ProfilePaths class into ProfilePaths library, only expose a creation function
llvm-svn: 1812
2002-02-26 20:04:59 +00:00
Anand Shukla
47588b8119 Initial check in of header file for profile-paths pass
llvm-svn: 1801
2002-02-26 18:43:03 +00:00
Chris Lattner
b10862d793 Make it compile with GCC 3.0.4
llvm-svn: 1786
2002-02-24 23:01:21 +00:00
Chris Lattner
9942a79fcd Modernize verifier interface
llvm-svn: 1780
2002-02-20 17:54:35 +00:00
Chris Lattner
aa07d741cb Fix isArrayAllocation() to be correct
llvm-svn: 1779
2002-02-19 21:24:17 +00:00
Chris Lattner
650f6653a6 Minor cleanups I missed
llvm-svn: 1778
2002-02-19 19:36:56 +00:00
Chris Lattner
780a3ae146 These constructors are for internal use only. These should have been
protected a long time ago :)

llvm-svn: 1777
2002-02-19 19:22:45 +00:00
Chris Lattner
34bdf4dda4 * Pull BasicBlock::pred_* and BasicBlock::succ_* out of BasicBlock.h and into
llvm/Support/CFG.h

llvm-svn: 1749
2002-02-12 22:35:32 +00:00
Chris Lattner
c88d936415 * Pull BasicBlock::pred_* and BasicBlock::succ_* out of BasicBlock.h and into
llvm/Support/CFG.h
* Make pred & succ iterators for intervals global functions

llvm-svn: 1748
2002-02-12 22:35:27 +00:00
Chris Lattner
e0aa81ad1b Pull BasicBlock::pred_* and BasicBlock::succ_* out of BasicBlock.h and into
llvm/Support/CFG.h

llvm-svn: 1747
2002-02-12 22:35:06 +00:00
Chris Lattner
3a1bc64866 Method.h no longer includes BasicBlock.h
Method::inst_* is now in llvm/Support/InstIterator.h

llvm-svn: 1745
2002-02-12 21:04:35 +00:00
Chris Lattner
a4bf6af614 * Move BasicBlock and Method graph stuff to new "llvm/Support/CFG.h" file
* Move Method::inst_* to new "llvm/Support/InstIterator.h" file
* inst_iterator no longer permits resync'ing

llvm-svn: 1744
2002-02-12 21:02:53 +00:00
Chris Lattner
bde317b67d * Move BasicBlock and Method graph stuff to new "llvm/Support/CFG.h" file
* Move Method::inst_* to new "llvm/Support/InstIterator.h" file
* Method.h no longer #includes BasicBlock.h

llvm-svn: 1743
2002-02-12 21:02:38 +00:00
Chris Lattner
326b548cd4 Initial checkin of new memory -> register promotion pass
llvm-svn: 1739
2002-02-12 17:16:22 +00:00
Chris Lattner
3b3ee75819 Convert BBLiveVar to be a BasicBlock annotation, this removes the BB2BBLVMap from MethodLiveVarInfo.
llvm-svn: 1721
2002-02-05 06:52:25 +00:00
Chris Lattner
e282c0b592 Convert operand iterator over to work like an STL iterator
llvm-svn: 1720
2002-02-05 06:02:59 +00:00
Chris Lattner
5337fbec40 Minor change: Methods that return ValueSet's that are guaranteed to be valid
return references instead of pointers.

llvm-svn: 1719
2002-02-05 04:20:12 +00:00
Chris Lattner
c77877fb46 Remove generic routines to Support/SetOperations.h
llvm-svn: 1715
2002-02-05 03:35:31 +00:00
Chris Lattner
6c0cbc3009 Remove empty files
llvm-svn: 1713
2002-02-05 02:52:53 +00:00
Chris Lattner
dc3aec7a90 * Eliminate the LiveVarSet class, making applyTranferFuncForMInst a static
function in the one .cpp file that uses it.  Use ValueSet's instead.
* Prepare to delete LiveVarSet.h & LiveVarSet.cpp
* Eliminate the ValueSet class, making all old member functions into global
  templates that will eventually be moved to Support.

llvm-svn: 1711
2002-02-05 02:51:01 +00:00
Chris Lattner
a8170f0944 * Code Cleanups
* Introduce RAV to allow stream I/O instead of using printValue

llvm-svn: 1710
2002-02-05 01:43:49 +00:00
Chris Lattner
80c1109e8e Remove empty file
llvm-svn: 1708
2002-02-05 00:35:59 +00:00
Chris Lattner
1181768743 * Big cleanups.
* Make BBLiveVar.h effectively an internal header file
* Prepare LiveVarMap.h for deletion

llvm-svn: 1705
2002-02-05 00:33:19 +00:00
Chris Lattner
62860d4c3d Clean up MethodLiveVarInfo
llvm-svn: 1703
2002-02-04 20:49:04 +00:00
Chris Lattner
b4e0d0424c Turn live variable analysis into a real MethodPass.
llvm-svn: 1699
2002-02-04 20:00:08 +00:00
Chris Lattner
5726b834cd Instruction scheduling is a real pass now.
llvm-svn: 1698
2002-02-04 19:59:22 +00:00
Chris Lattner
8a76e0e37e Remove Obsolete LoopDepthCalculator. All users should use LoopInfo directly.
llvm-svn: 1697
2002-02-04 17:49:01 +00:00
Chris Lattner
faeb3c85f9 Remvoe big hack that was used by the register allocator
llvm-svn: 1692
2002-02-04 17:38:03 +00:00
Chris Lattner
0c04c60975 eliminate the add and remove methods, clients must use insert and erase directly.
llvm-svn: 1686
2002-02-04 16:33:18 +00:00
Chris Lattner
140f09f8cc Remove tons of include pollution
Remove frivolous const's
Make use of the -> operator

llvm-svn: 1685
2002-02-04 16:32:40 +00:00
Chris Lattner
c6d2d0f12e Use generic pointer hashes instead of custom ones.
llvm-svn: 1684
2002-02-04 16:31:42 +00:00
Chris Lattner
8bfb48c8d3 Convert RegisterAllocator interface to opaque pass type, so that users do not
need to know _anything_ about RegAlloc to use it.  Well in the end maybe.

llvm-svn: 1681
2002-02-04 15:54:09 +00:00
Chris Lattner
4f37a90fda Eliminate ModuleAnalyzer. It's old code that is not going to be used in the near future
llvm-svn: 1679
2002-02-04 06:47:17 +00:00
Chris Lattner
65e91cf86a * Minor cleanups
* Reduce number of #includes
* Delete blank lines at end of files
* Remove blatently misleading qualifiers (how do you have an inlined pure virtual function?)
* Remove unnecesary & ignored qualifiers (const int argument vs int argument)
* Remove LARGE chunks of "inline" code out to .cpp file
* s/unsigned int/unsigned/

llvm-svn: 1673
2002-02-04 05:55:10 +00:00
Chris Lattner
009faad8e4 * Minor cleanups
* Reduce number of #includes, sometimes drastically (LiveRangeInfo.h lost _7_)
* Move instrIsFeasible() from InstrScheduling.h to SchedPriorities.h
* Delete blank lines at end of files

llvm-svn: 1672
2002-02-04 05:52:08 +00:00
Chris Lattner
45cdd0fb0c * Move command line parsing debug stuff to InstrScheduling internal header file
SchedPriorities.h

llvm-svn: 1669
2002-02-04 02:44:20 +00:00
Chris Lattner
9a8ff2595a Split RegisterAllocation stuff OUT of Sparc.cpp into a well defined pass
that has a very minimal interface (like it should have).

llvm-svn: 1667
2002-02-04 00:33:08 +00:00
Chris Lattner
41ef705b10 Revamp compilation to be pass based instead of being monolithic so that
backend's can customize compilation as much as they want

llvm-svn: 1661
2002-02-03 23:40:22 +00:00
Chris Lattner
e1289c8b71 Code pulled out of MAchineInstr.(h|cpp)
llvm-svn: 1660
2002-02-03 07:54:50 +00:00
Chris Lattner
703fff6f92 Add methods to TargetMachine to:
* Output assembly code a method at a time instead of building it all up then emitting it as a whole module
* Release memory contained in various annotations.

llvm-svn: 1641
2002-02-03 07:24:05 +00:00
Chris Lattner
3284ca6af7 * Trim #includes
llvm-svn: 1640
2002-02-03 07:20:47 +00:00
Chris Lattner
71af76aa1d Remove #include
move typedefs here

llvm-svn: 1639
2002-02-03 07:17:37 +00:00
Chris Lattner
4fe48ea510 Remove extranous #include
llvm-svn: 1638
2002-02-03 07:15:36 +00:00
Chris Lattner
4ea2b76dee * Prune many #includes
* Remove MachineCodeForVMInstr -> MachineCodeForInstruction.h
* Remove MachineCodeForMethod  -> MachineCodeForMethod.h

llvm-svn: 1636
2002-02-03 07:11:59 +00:00
Chris Lattner
e2680a01fd * Remove TMP_INSTRUCTION_OPCODE silliness
* Fix TmpInstruction copy ctor to not read uninitialized memory
* Fix TmpInstruction copy ctor to not copy 2 operands if there is only one
* Inline Initialize method into ctors

llvm-svn: 1635
2002-02-03 07:07:16 +00:00
Chris Lattner
c98336111d Remove extraneous #includes
llvm-svn: 1634
2002-02-03 07:03:13 +00:00
Chris Lattner
fcc2cfec1f * Inline destructor
* Remove MachineCodeForVMInstr support (it's now an annotation)
* Remove dropAllReferences override (just use User's)

llvm-svn: 1633
2002-02-03 06:58:15 +00:00
Chris Lattner
bece6a3041 Remove extraneous #include
llvm-svn: 1632
2002-02-03 06:27:39 +00:00
Chris Lattner
10c2ca5cd3 Add constructor for addition to opt program
llvm-svn: 1626
2002-02-01 04:53:15 +00:00
Chris Lattner
a494a4981d Free memory when not in use
llvm-svn: 1618
2002-01-31 18:32:49 +00:00
Chris Lattner
71e41586ae * Make debugging output nicer
* Implement pass memory freeing after the pass is unused
* Expose PassManager typedef in Pass.h instead of PassManager.h

llvm-svn: 1617
2002-01-31 18:32:27 +00:00
Chris Lattner
0d3eaa9575 Eliminate SimplifyCFG.h file, pull everything into the UnifyMethodExitNodes class
llvm-svn: 1613
2002-01-31 01:12:06 +00:00
Chris Lattner
b678885f4c Remove this file. Folded into UnifyMethodExitNodes pass
llvm-svn: 1612
2002-01-31 01:02:32 +00:00
Chris Lattner
5c1e4c976e Implement LoopDepth calculation in terms of dominators instead of intervals
llvm-svn: 1600
2002-01-31 00:41:01 +00:00
Chris Lattner
9d726159c1 Convert xforms over to use new pass structure
llvm-svn: 1596
2002-01-30 23:29:35 +00:00
Chris Lattner
3ce0567bac Convert analyses over to new Pass framework
llvm-svn: 1595
2002-01-30 23:27:55 +00:00
Chris Lattner
3c0dcb01d4 Checkin new pass framework. This one is more useful and automatically
creates analysis results for passes that need them.   MethodPass's never
have to worry about being invoked on external methods.

llvm-svn: 1594
2002-01-30 23:20:39 +00:00
Chris Lattner
ae0661dc6c Don't die on call instructions, which reference methods
llvm-svn: 1593
2002-01-30 23:00:41 +00:00
Chris Lattner
0fea9f487b Remove opt namespace
llvm-svn: 1587
2002-01-26 22:47:07 +00:00
Chris Lattner
5f1367a247 * Expose new pass DeadInstElimination
* Add comments that describe the differences between the DCE passes

llvm-svn: 1553
2002-01-23 05:47:35 +00:00
Chris Lattner
5fa48b460c Pull run() into Pass.cpp
llvm-svn: 1552
2002-01-23 05:46:22 +00:00
Chris Lattner
83056c99ec Pull RaiseAllocations stuff out of the CleanGCC pass into it's own pass in
the ChangeAllocations.h header file.

llvm-svn: 1522
2002-01-22 00:13:51 +00:00
Chris Lattner
250d937680 LowerAllocations is really a BasicBlock pass. Make it so.
llvm-svn: 1521
2002-01-21 23:34:02 +00:00
Chris Lattner
4454cdc5c0 Move stuff out of the Optimizations directories into the appropriate Transforms
directories.  Eliminate the opt namespace.

llvm-svn: 1520
2002-01-21 23:17:48 +00:00
Chris Lattner
0834da8b1f Fix for problem that caused both HUGE and INVALID latencies to be negative
llvm-svn: 1513
2002-01-21 22:42:49 +00:00
Chris Lattner
6fd0215a8b Include all header files individually instead of this one
llvm-svn: 1512
2002-01-21 21:45:44 +00:00
Chris Lattner
c00c670e5f Pull stuff out of opt namespace
llvm-svn: 1511
2002-01-21 21:44:38 +00:00
Chris Lattner
4be3babdba Moved header
llvm-svn: 1509
2002-01-21 07:41:55 +00:00
Chris Lattner
2521ae1011 Implement a more powerful, simpler, pass system. This pass system can figure
out how to run a collection of passes optimially given their behaviors and
charactaristics.

Convert code to use it.

llvm-svn: 1507
2002-01-21 07:31:50 +00:00
Chris Lattner
e4f3ba8d4c Implement a more powerful, simpler, pass system. This pass system can figure
out how to run a collection of passes optimially given their behaviors and
charactaristics.

llvm-svn: 1506
2002-01-21 07:31:00 +00:00
Chris Lattner
3dc9a2a61f Changes to build successfully with GCC 3.02
llvm-svn: 1503
2002-01-20 22:54:45 +00:00
Ruchira Sasanka
4b78c45328 Added more comments
llvm-svn: 1495
2002-01-07 19:57:37 +00:00
Ruchira Sasanka
0b15dd8a88 MachineRegInfo: Added a method to get the size of a register pushed on to stack.
llvm-svn: 1492
2002-01-07 19:17:41 +00:00
Ruchira Sasanka
3d5efa3be1 Added comments, destructors where necessary.
llvm-svn: 1491
2002-01-07 19:16:26 +00:00
Vikram S. Adve
b61dccd269 Eliminate function getIndicesBROKEN().
llvm-svn: 1486
2001-12-15 00:37:12 +00:00
Vikram S. Adve
0607fbbf01 Eliminate all uses of memInst->getIndicesBROKEN().
llvm-svn: 1485
2001-12-15 00:36:32 +00:00
Vikram S. Adve
1d755bccee getIndexedOffset() shd take vector of Values, not of Constants!
llvm-svn: 1484
2001-12-15 00:35:48 +00:00
Chris Lattner
882bc0e5ab Initial checkin of instcombine
llvm-svn: 1479
2001-12-14 16:52:09 +00:00
Chris Lattner
df8324304d Refactor trace values to work as a proper pass. Before it used to add
methods while the pass was running which was a no no.  Now it adds the
printf method at pass initialization

llvm-svn: 1456
2001-12-14 16:23:53 +00:00
Chris Lattner
44cede05ee * Remove support for unsized arrays.
* Free instruction does not accept a name
* MemAccessInst can now be used with cast/isa/dyn_cast/...

llvm-svn: 1455
2001-12-14 16:22:56 +00:00
Chris Lattner
b2e8f44166 PointerType and ArrayType now subclass Sequential type, which contains addressability logic for indexing. Unsized arrays have been removed.
llvm-svn: 1454
2001-12-14 16:20:21 +00:00
Chris Lattner
9a7dd44f2c Swap operands now preserves the semantics of the binary operator by changing
the opcode of the instruction if possible.

llvm-svn: 1444
2001-12-13 00:43:03 +00:00
Chris Lattner
9cad2a10b4 Implement some nice functions useful for looking at types
llvm-svn: 1442
2001-12-13 00:40:16 +00:00
Chris Lattner
fee8f19bbe Implement proper iterator tags
llvm-svn: 1441
2001-12-13 00:39:49 +00:00
Chris Lattner
b2e2570645 Subclasses can change the opcode of an instruction
llvm-svn: 1440
2001-12-13 00:39:33 +00:00
Chris Lattner
c717d96290 Constants KNOW they are of a derived type
llvm-svn: 1439
2001-12-13 00:38:57 +00:00
Ruchira Sasanka
9d26f00cfb Added comments are more documentation info
llvm-svn: 1434
2001-12-08 21:04:22 +00:00
Chris Lattner
c4a5815033 Renamed inst_const_iterator -> const_inst_iterator
Renamed op_const_iterator   -> const_op_iterator
Renamed PointerType::getValueType() -> PointerType::getElementType()

llvm-svn: 1408
2001-12-04 00:03:30 +00:00
Chris Lattner
f6b7da2bb5 Rename ConstPoolVal -> Constant
Rename ConstPool*   -> Constant*
Rename ConstPoolVals.h -> ConstantVals.h

llvm-svn: 1407
2001-12-03 22:26:30 +00:00
Chris Lattner
81a79684b5 Simplify induction variables pass
llvm-svn: 1406
2001-12-03 18:05:13 +00:00
Chris Lattner
bcf2df7058 Split the PHINode class out from the iOther.h file into the iPHINode.h file
llvm-svn: 1405
2001-12-03 18:02:31 +00:00
Chris Lattner
a302c202ab Induction variables must be phi nodes
llvm-svn: 1402
2001-12-03 17:27:42 +00:00
Chris Lattner
f90b19a71c Move support directory
llvm-svn: 1401
2001-11-29 16:32:16 +00:00
Chris Lattner
463cc31132 Create a new #include "Support/..." directory structure to move things
from "llvm/Support/..." that are not llvm dependant.

Move files and fix #includes

llvm-svn: 1400
2001-11-27 00:03:19 +00:00
Chris Lattner
cead7793a7 Move DataTypes.h from llvm/Support to just Support
llvm-svn: 1399
2001-11-26 23:04:08 +00:00
Chris Lattner
66dc044ef5 Remove unused method
llvm-svn: 1368
2001-11-26 18:50:26 +00:00
Chris Lattner
f02cda6862 Expose constant prop of an instruction
llvm-svn: 1367
2001-11-26 18:50:11 +00:00
Chris Lattner
87bffac69b Fix field initialization order problem
llvm-svn: 1366
2001-11-26 18:49:54 +00:00
Chris Lattner
147acfd1bd Allow output of manipulators for GCC 2.96 compatibility
llvm-svn: 1365
2001-11-26 18:49:33 +00:00
Chris Lattner
3d0b96e43c Add writer support for call graph nodes and loops and induction variables
llvm-svn: 1364
2001-11-26 18:47:46 +00:00
Chris Lattner
9354ac4d83 Implement an entry node for the call graph
llvm-svn: 1363
2001-11-26 18:47:11 +00:00
Chris Lattner
4fe18a5b58 Implement "internal vs external linkage" which corresponds to the C notion of static
llvm-svn: 1362
2001-11-26 18:46:40 +00:00
Chris Lattner
118f8023f8 Implement DCE of global values
llvm-svn: 1360
2001-11-26 18:42:17 +00:00
Chris Lattner
c969e45ded * Implement dominator based loop identification
* Implement cleaner induction variable identification

llvm-svn: 1359
2001-11-26 18:41:20 +00:00
Chris Lattner
c543ead7c9 Rearrange code
llvm-svn: 1334
2001-11-26 16:49:49 +00:00
Chris Lattner
e7545d8bcc Allow array indexing
llvm-svn: 1333
2001-11-26 16:49:12 +00:00
Chris Lattner
b911b62a2a Be more const correct
llvm-svn: 1332
2001-11-26 16:48:56 +00:00
Chris Lattner
7d16637991 * Remove the indexVec stuff which gets out of sync with the operands of the
instruction.
* Change the indices to take a vector of Value's instead of ConstPoolVal's
  for array indexing
* Add new idx_ iterator support for iterating over indices

llvm-svn: 1331
2001-11-26 16:48:41 +00:00
Chris Lattner
9d1784afff New Method isLosslesslyConvertableTo
llvm-svn: 1330
2001-11-26 16:47:10 +00:00
Chris Lattner
92dbc49699 Add new CompositeType shared baseclass of ArrayType and StructType
llvm-svn: 1329
2001-11-26 16:46:45 +00:00
Chris Lattner
eb41b2e35a Add casts
llvm-svn: 1328
2001-11-26 16:46:09 +00:00
Chris Lattner
fefd12e111 Fix protection probs
llvm-svn: 1321
2001-11-15 15:24:31 +00:00
Vikram S. Adve
ec7d69586c Modify method AllocateLocalVar to take size argument.
llvm-svn: 1320
2001-11-15 15:23:02 +00:00
Vikram S. Adve
7e3b3bea63 Bug fix for Chris.
llvm-svn: 1316
2001-11-15 15:00:48 +00:00
Chris Lattner
e19d5b4615 -cleangcc pass now remove type names that are never referenced and type names for pointers to primitive types.
llvm-svn: 1312
2001-11-15 04:34:46 +00:00
Vikram S. Adve
3baa8cefc0 Add function returning which operand holds immediate constant
for a given opcode.

llvm-svn: 1307
2001-11-14 18:48:36 +00:00
Ruchira Sasanka
d7daf6afcd added isPseudoInstr()
llvm-svn: 1302
2001-11-14 15:35:51 +00:00
Chris Lattner
4046596beb Remove much cruft from the MemAccessInst instruction
llvm-svn: 1298
2001-11-14 11:27:58 +00:00
Ruchira Sasanka
50880b3791 Changed for adding Phi Elimination code
llvm-svn: 1266
2001-11-12 14:46:00 +00:00
Ruchira Sasanka
da9d0c48ba Made isPhi const
llvm-svn: 1251
2001-11-10 20:58:58 +00:00
Chris Lattner
053906abc0 Initail checking of structure swapper
llvm-svn: 1248
2001-11-10 07:28:25 +00:00
Chris Lattner
ad95d27488 Initial checkin of Structure mutator
llvm-svn: 1245
2001-11-10 07:26:22 +00:00
Chris Lattner
13c14c20ee Provide const version of function with the name the other will be eventually renamed to
llvm-svn: 1241
2001-11-10 06:48:14 +00:00
Chris Lattner
2549cbf978 Refactor some functionality to expose more useful stuff
llvm-svn: 1240
2001-11-10 06:47:45 +00:00
Chris Lattner
41baa6823a New pass to figure out what types are in use by a program
llvm-svn: 1231
2001-11-09 05:27:10 +00:00
Vikram S. Adve
1639b0edef Cache parameters for target machine.
llvm-svn: 1222
2001-11-09 02:11:25 +00:00
Vikram S. Adve
440465ad0e Added class MachineCacheInfo.
Also added function to convert float to int by copying via memory.

llvm-svn: 1221
2001-11-09 02:11:03 +00:00
Chris Lattner
77d6db28d3 Remove unneeded forward decl
llvm-svn: 1216
2001-11-08 20:54:51 +00:00
Vikram S. Adve
8e3065c528 Add handle to object MachineFrameInfo.
llvm-svn: 1202
2001-11-08 05:23:45 +00:00
Vikram S. Adve
a63363151d Include handle to TargetMachine in each Machine...Info class.
llvm-svn: 1201
2001-11-08 05:22:43 +00:00
Vikram S. Adve
45b91e38e5 Add method CreateCodeToCopyIntToFloat.
Include handle to TargetMachine in each Machine...Info object.

llvm-svn: 1200
2001-11-08 05:22:15 +00:00
Vikram S. Adve
d985dbcdd8 Machine-independent interface to target's stack frame layout parameters.
llvm-svn: 1190
2001-11-08 04:52:27 +00:00
Vikram S. Adve
f87d137720 Use different op labels for bitwise logical operations and boolean logical
operations in BURG input trees.

llvm-svn: 1189
2001-11-08 04:51:39 +00:00
Vikram S. Adve
ef306158e5 Added a second constructor for and improved class TmpInstruction.
llvm-svn: 1188
2001-11-08 04:50:33 +00:00
Vikram S. Adve
2cdcbfb6e0 Major overhaul of stack frame management.
llvm-svn: 1185
2001-11-08 04:47:06 +00:00
Vikram S. Adve
8b33c2304f Old file which was moved to include/llvm/Target some time back.
llvm-svn: 1184
2001-11-08 04:46:08 +00:00
Vikram S. Adve
848709f127 Removed MachineCodeForMethod object and made it an annotation.
llvm-svn: 1183
2001-11-08 04:38:58 +00:00
Chris Lattner
15b45d9783 Initial checkin of pointer safety checker
llvm-svn: 1181
2001-11-07 21:16:12 +00:00
Chris Lattner
ec5014e800 Okay, so this is a huge hack. Fixme later
llvm-svn: 1171
2001-11-07 05:31:53 +00:00
Chris Lattner
67ba96723c New class to provide high performance writing.
llvm-svn: 1167
2001-11-07 04:20:50 +00:00
Vikram S. Adve
24fbd417a0 Make reg. numbers signed ints.
llvm-svn: 1137
2001-11-05 03:56:02 +00:00
Chris Lattner
ea63d43a07 Minor method rename
llvm-svn: 1119
2001-11-04 08:08:34 +00:00
Chris Lattner
1645e398fb Add a helper function to PHI node
llvm-svn: 1113
2001-11-03 21:08:00 +00:00
Chris Lattner
b7cb076c0e Expose method to merge identically named methods
llvm-svn: 1109
2001-11-03 19:49:54 +00:00
Ruchira Sasanka
cb3cfedff4 Moved InsertCallerSaveInstr to the SparcRegInfo.cpp and made machine independent
llvm-svn: 1107
2001-11-03 17:14:13 +00:00
Chris Lattner
d61e4631f5 Fix major bugs in type resolution
llvm-svn: 1092
2001-11-03 03:27:53 +00:00
Chris Lattner
dec971b881 Fix the linker. This bug was not fun to track down. grr
llvm-svn: 1090
2001-11-03 03:26:47 +00:00
Chris Lattner
d8c8439517 Print floating point numbers in expodential form so that small numbers don't get truncated, which broke the health benchmark
llvm-svn: 1086
2001-11-01 22:06:00 +00:00
Chris Lattner
aa5e794aaa Expose the low level DCE mechanism to external users
llvm-svn: 1082
2001-11-01 07:00:21 +00:00
Chris Lattner
1942341fd4 Implement constant propogation of null pointer values.
llvm-svn: 1078
2001-11-01 05:55:13 +00:00
Chris Lattner
ddb95263c8 Add simpler to use ctors. Add getType() overload to specialize getelementptr's type
llvm-svn: 1077
2001-11-01 05:54:28 +00:00
Chris Lattner
13475b1a77 Add new isNullValue method
llvm-svn: 1076
2001-11-01 05:53:56 +00:00
Chris Lattner
4e4759adc0 Initial checkin of level raising code
llvm-svn: 1073
2001-11-01 02:41:52 +00:00
Chris Lattner
3fd0124447 Move level change xfor into the transforms directory
llvm-svn: 1070
2001-11-01 02:39:49 +00:00
Chris Lattner
9c5be3af9d Add some useful accessors
llvm-svn: 1069
2001-11-01 02:39:36 +00:00
Chris Lattner
009d9de81c Implement code to convert %malloc and %free FUNCTION CALLS into the instruction equivalent
llvm-svn: 1065
2001-10-31 06:35:59 +00:00
Chris Lattner
91fc057638 Implemented constant propogation of cast instructions
llvm-svn: 1064
2001-10-31 05:07:57 +00:00
Chris Lattner
ca01882422 New GCC cleanup pass interface
llvm-svn: 1061
2001-10-31 04:32:53 +00:00
Chris Lattner
2fa3e1f85d Fix ordering problem. Found by purify. :)
llvm-svn: 1042
2001-10-30 16:38:49 +00:00
Chris Lattner
ad6e4d8ca7 Expose some more printing functionality from the assembly writer library
llvm-svn: 1030
2001-10-29 16:36:49 +00:00
Chris Lattner
b89ee439ae Systems headers use <> not ""
llvm-svn: 1023
2001-10-29 13:29:50 +00:00
Chris Lattner
bf9a3148af Include functionality to get a string array constant as a string
llvm-svn: 1020
2001-10-29 13:24:31 +00:00
Chris Lattner
e9c4fcd1fb Remove useCSyntax flag
llvm-svn: 1019
2001-10-29 13:22:49 +00:00
Chris Lattner
cd24a45f20 Initial checkin of name mangling code. Moved from Linker.h
llvm-svn: 1017
2001-10-28 23:31:10 +00:00
Chris Lattner
f4ae52e531 Remove unneccesary function prototypes
llvm-svn: 1014
2001-10-28 22:40:59 +00:00
Vikram S. Adve
6c92ae29b9 Added a constant pool to record values that need to be emitted
in the assembly code.

llvm-svn: 999
2001-10-28 21:24:50 +00:00
Vikram S. Adve
a77d3e6adb Add support for name mangling.
llvm-svn: 998
2001-10-28 21:23:44 +00:00
Vikram S. Adve
f3e3a2e8cc Switch useLLVMSyntax to useCSyntax.
llvm-svn: 997
2001-10-28 21:21:25 +00:00
Vikram S. Adve
cdb8a8f93e Support printing control characters in standard C/assembly style.
llvm-svn: 995
2001-10-28 21:06:48 +00:00
Ruchira Sasanka
3c4d2dea7c Added support for spilling
llvm-svn: 992
2001-10-28 18:15:12 +00:00
Ruchira Sasanka
b1f435fb91 Moved callerSaving code to machine specific classes since we have to handle
%ccr reg differently.

llvm-svn: 991
2001-10-28 18:14:15 +00:00
Chris Lattner
7ec504f5dc Changes to get some meaningful feedback from the bytecode reader. At some point this stuff should all be exception driven, but for now it is not.
llvm-svn: 970
2001-10-24 01:15:12 +00:00
Chris Lattner
db06de9f17 More symbol table bugfixes that are impossible to track down. Goody
llvm-svn: 960
2001-10-23 02:32:45 +00:00
Chris Lattner
e8b0d4522f Fix another annoying bug that took forever to track down. This one involves abstract type resolution at a bad time that broke symbol tables.
llvm-svn: 958
2001-10-23 01:53:01 +00:00
Vikram S. Adve
67da8bfa0c Added object of class MachineCodeForMethod.
llvm-svn: 953
2001-10-22 13:58:08 +00:00
Vikram S. Adve
4955d04e5a Added class MachineCodeForMethod to provide method-level information
about the generated native code (e.g., frame layout information).

llvm-svn: 952
2001-10-22 13:57:39 +00:00
Vikram S. Adve
203d3a37d6 Added function interfaces for generating prolog and epilog code.
The functions must be implemented by the target-specific code generator.

llvm-svn: 951
2001-10-22 13:56:33 +00:00
Vikram S. Adve
5b5546998a Added function IsLeafMethod to identify leaf methods.
This will use the CallGraph only if one is provided.

llvm-svn: 950
2001-10-22 13:55:46 +00:00
Chris Lattner
3495dd8b2f Fix bug exposed by this testcase:
declare int "call_operand"      (%rtx_def*, int)        ;; Prototype for: call_operand
declare int "restore_operand"   (%rtx_def*, int)        ;; Prototype for: restore_operand

%rtx_def = type opaque
%rtx_def = type int
implementation

llvm-svn: 934
2001-10-22 04:55:44 +00:00
Ruchira Sasanka
6df15c541f Added support for both call/jmpl instructions
llvm-svn: 930
2001-10-21 16:43:41 +00:00
Ruchira Sasanka
5362db6250 Added code to Initialize (MachineOperand) to initialize regNum to -1 -- Ruchira
llvm-svn: 919
2001-10-19 18:17:49 +00:00
Chris Lattner
bd93ec9e5f Refactor code into Assembly & bytecode libraries
llvm-svn: 903
2001-10-18 20:31:54 +00:00
Chris Lattner
aaf97a123b initial checkin
llvm-svn: 902
2001-10-18 20:31:42 +00:00
Chris Lattner
ffe8f6e43b move llvm/Transforms/Pass.h to the top level llvm/Pass.h file
llvm-svn: 901
2001-10-18 20:19:09 +00:00
Chris Lattner
ff23ec4b41 Initial Checkin
llvm-svn: 896
2001-10-18 20:05:30 +00:00
Chris Lattner
e4bae737ff Pull bytecode writing out of Module writer pass. Prepare to move to seperate file
llvm-svn: 895
2001-10-18 20:05:07 +00:00
Chris Lattner
f11fb026c8 Add operator[] accessors
llvm-svn: 894
2001-10-18 20:04:40 +00:00
Vikram S. Adve
46310c1fed Add option to print per module instead of per method, so that
global declarations are also printed.

llvm-svn: 891
2001-10-18 18:13:49 +00:00
Vikram S. Adve
ec2a0b15bf Add option to print as bytecode instead of assembly.
llvm-svn: 887
2001-10-18 13:47:49 +00:00
Chris Lattner
568aa25a33 Convert to new simpler Pass structure
Componentize better

llvm-svn: 879
2001-10-18 05:22:27 +00:00
Chris Lattner
5be361613d Convert to new simpler Pass structure
llvm-svn: 878
2001-10-18 05:22:15 +00:00
Chris Lattner
931b135143 Convert to new simpler pass structure
llvm-svn: 877
2001-10-18 05:21:56 +00:00
Chris Lattner
806b0d53d8 Simplify Pass by removing silly subclasses
Fix an iterator problem

llvm-svn: 876
2001-10-18 05:20:53 +00:00
Chris Lattner
bcf4e18b12 Fix minor bug, update comments
llvm-svn: 875
2001-10-18 01:49:48 +00:00
Chris Lattner
d29a604bc9 Pass's return true if they make a modification, not if they fail
llvm-svn: 872
2001-10-18 01:32:17 +00:00
Chris Lattner
a913b68b67 Convert optimizations to use the Pass infrastructure
llvm-svn: 871
2001-10-18 01:31:58 +00:00
Vikram S. Adve
b66fc8ac17 Added virtual function to generate an instruction sequence to
load a constant into a register.

llvm-svn: 862
2001-10-18 00:02:06 +00:00
Vikram S. Adve
c83118d53f 1. Add a bottom-up pass on BURG trees that is used to fix constant operands.
Needs to be bottom up because constant values may be forward-substituted
   to their uses (i.e., into the parent in the BURG tree).
2. Move most of the constant-fixup code into machine-indepedent file
   InstrSelectionSupport.cpp.

llvm-svn: 860
2001-10-17 23:59:09 +00:00
Vikram S. Adve
aff0c3b0f5 Remove extra assert in dyn_cast_or_null.
llvm-svn: 856
2001-10-17 22:39:50 +00:00
Ruchira Sasanka
6be2863ed7 added initializing regNum to -1 in both constructors of MachineOperand
llvm-svn: 851
2001-10-16 16:36:34 +00:00
Ruchira Sasanka
26ab9c8e61 Added support for caller saving
llvm-svn: 847
2001-10-16 01:23:19 +00:00
Chris Lattner
be66ee81bd Print Debug Code to stderr instead of stdout so that it doesn't mess up the assembly output
llvm-svn: 841
2001-10-15 18:30:06 +00:00
Chris Lattner
463b90cb78 ConcretePass should not be a templated class!
llvm-svn: 838
2001-10-15 17:47:13 +00:00
Chris Lattner
9bfad5b7b1 Add new Pass infrastructure and some examples
llvm-svn: 836
2001-10-15 17:31:51 +00:00
Chris Lattner
9e0f07c207 Convert to use Pass infrastructure
llvm-svn: 834
2001-10-15 17:30:18 +00:00
Chris Lattner
6a4db15e88 File moved to: llvm/Transforms/HoistPHIConstants.h
llvm-svn: 833
2001-10-15 17:30:06 +00:00
Ruchira Sasanka
bd3efa900e --changed Sugesting colors for method calls/return values etc.
llvm-svn: 829
2001-10-15 16:23:48 +00:00
Ruchira Sasanka
54051b75a7 fixed a coalscing bug
llvm-svn: 828
2001-10-15 16:22:44 +00:00
Chris Lattner
eba2b7cf61 Be const correct
llvm-svn: 826
2001-10-15 15:54:43 +00:00
Chris Lattner
d9c11e528c Add cast_or_null & dyn_cast_or_null
llvm-svn: 824
2001-10-15 13:41:37 +00:00
Chris Lattner
fd1ab08cba Rename ConstPoolPointerReference to ConstPoolPointerRef - My fingers get tired typing that much
llvm-svn: 822
2001-10-15 13:21:42 +00:00
Chris Lattner
b66d7f5416 Improve error messages on assertion failure.
llvm-svn: 821
2001-10-15 13:13:32 +00:00
Chris Lattner
657954e39b *** empty log message ***
llvm-svn: 813
2001-10-14 23:34:12 +00:00
Chris Lattner
c86be70de5 Update comment, remove misleading method
llvm-svn: 806
2001-10-14 23:26:24 +00:00
Chris Lattner
7de225b35d Initializers are not const even if the GV is.
llvm-svn: 805
2001-10-14 23:24:46 +00:00
Vikram S. Adve
ebdf1737c4 Cast NULL when requested.
llvm-svn: 803
2001-10-14 23:21:06 +00:00
Vikram S. Adve
c46b4eb5fe Added getEntryNode() and getExitNode() functions.
The latter are actually bogus and will be fixed by me soon.

llvm-svn: 802
2001-10-14 23:20:44 +00:00
Vikram S. Adve
a62d1703a1 Insert code to trace values at basic block and method exits.
llvm-svn: 801
2001-10-14 23:19:02 +00:00
Vikram S. Adve
8a6626476e Added routine to create a char array for a string.
llvm-svn: 798
2001-10-14 23:16:27 +00:00
Chris Lattner
42433c96b6 Use the instruction.def file to remain up to date with future instruction
changes

llvm-svn: 792
2001-10-14 17:24:50 +00:00
Chris Lattner
a23671c6ba New file to define instructions...
llvm-svn: 791
2001-10-14 17:24:33 +00:00
Chris Lattner
b789255b4e New module linking functionality prototype
llvm-svn: 789
2001-10-13 16:57:49 +00:00
Chris Lattner
d4a327ff93 Dang, I screwed up the merge. This should be better
llvm-svn: 785
2001-10-13 07:18:40 +00:00
Chris Lattner
010b35c757 Fix filename in comment
llvm-svn: 751
2001-10-13 06:32:42 +00:00
Chris Lattner
7ca4d97de9 Better linux support. This file still sucks
llvm-svn: 750
2001-10-13 06:31:55 +00:00
Chris Lattner
217ae5645d Fix broken #endif
llvm-svn: 749
2001-10-13 06:31:00 +00:00
Chris Lattner
815755f9f9 not is a keyword in Ansi C++. Avoid it
llvm-svn: 748
2001-10-13 06:30:39 +00:00
Chris Lattner
a4d1133109 Clean up initializers for GCC 2.96
llvm-svn: 747
2001-10-13 06:30:10 +00:00
Chris Lattner
c6085d8351 Remove exception specification. Only slows code down.
llvm-svn: 746
2001-10-13 06:25:30 +00:00
Chris Lattner
99189a2ebf Changes to compile with GCC 2.96
llvm-svn: 745
2001-10-13 06:25:03 +00:00
Chris Lattner
1e90c0f0c8 Add comment indicating semantics of indirect calls
llvm-svn: 744
2001-10-13 06:24:35 +00:00
Chris Lattner
9fbe12b850 New ctor for invoke inst
llvm-svn: 743
2001-10-13 06:24:10 +00:00
Chris Lattner
f17ca56ec5 Add support for indirect calls
llvm-svn: 742
2001-10-13 06:23:14 +00:00
Chris Lattner
ef76e319e9 Add some casts to make GCC 2.96 happy.
llvm-svn: 741
2001-10-13 06:20:07 +00:00
Chris Lattner
7fc8835f8a Add use_back() methods
llvm-svn: 740
2001-10-13 06:18:19 +00:00
Chris Lattner
027f8b242b Add classof implementations for User
llvm-svn: 739
2001-10-13 06:18:05 +00:00
Chris Lattner
be717b6402 Expose typedefs
llvm-svn: 738
2001-10-13 06:17:50 +00:00
Chris Lattner
6a615c53a2 Add support for module local constants
llvm-svn: 737
2001-10-13 06:17:32 +00:00
Chris Lattner
c950dfff3a Add new opcode for Invoke instruction
llvm-svn: 736
2001-10-13 06:15:20 +00:00
Chris Lattner
08d4945387 Minor changes, add new ctor for invoke instruction
llvm-svn: 735
2001-10-13 06:14:53 +00:00
Chris Lattner
8cf2a5b5c2 Add assertions
llvm-svn: 734
2001-10-13 06:12:38 +00:00
Chris Lattner
a9747cdcb4 * Minor Formatting changes.
* MethodType now takes an explicit isVarArg arg instead of an implicit
  voidTy on the argument list

llvm-svn: 733
2001-10-13 06:12:30 +00:00
Chris Lattner
36b4a2152b * Add destroyConstant stuff to handle module local constants
* Add classof implementations for more ConstPoolVal subclasses
* Pull null pointer implementation stuff out of ConstPoolPointer into
  a subclass ConstPoolPointerNull
* Implement ConstPoolPointerReference correctly and completely

llvm-svn: 732
2001-10-13 06:11:10 +00:00
Ruchira Sasanka
44e467ec90 --added support for implicit operands in machine instructions
llvm-svn: 727
2001-10-12 17:46:27 +00:00
Vikram S. Adve
cc2f052087 Record implicitRefs for each machine instruction instead of
each VM instruction.

llvm-svn: 725
2001-10-11 04:23:19 +00:00
Vikram S. Adve
2c19cf9a69 Machine-independent code generation routines used in instruction
selection.  These used to live in several different places before.

llvm-svn: 719
2001-10-10 20:50:43 +00:00
Vikram S. Adve
392ad31850 Moved code generation support routines to InstrSelectionSupport.{h,cpp}.
llvm-svn: 718
2001-10-10 20:50:20 +00:00
Chris Lattner
ac7f7b4758 Factor parentness out of Module & GlobalVariable into GlobalValue
Implement SymbolTable debug/dump utility

llvm-svn: 710
2001-10-03 19:28:15 +00:00
Chris Lattner
5fa26313dd Share ConstPoolPointer elements correctly
llvm-svn: 706
2001-10-03 15:38:36 +00:00
Chris Lattner
a01eda3091 * Both Method & GlobalVariable now subclass GlobalValue
* ConstPoolPointerReference now represents a pointer to a GlobalValue
* Methods name references are now explicit pointers to methods
* Rename Value::GlobalVal to Value::GlobalVariableVal to avoid confusion

llvm-svn: 703
2001-10-03 14:53:21 +00:00
Chris Lattner
af910dda17 First try at a horrible global value reference wrapper
llvm-svn: 701
2001-10-03 06:12:09 +00:00
Chris Lattner
08b1dde37e Commit more code over to new cast style
llvm-svn: 697
2001-10-02 03:41:24 +00:00
Chris Lattner
ad1b0a1a83 Convert more code to use new style casts
Eliminate old style casts from value.h

llvm-svn: 696
2001-10-01 20:11:19 +00:00
Chris Lattner
4c684cde80 Add more support for new style casts
Convert more code to use them

llvm-svn: 695
2001-10-01 18:26:53 +00:00
Chris Lattner
43781f1f96 Add support for new style casts
llvm-svn: 694
2001-10-01 16:18:37 +00:00
Chris Lattner
b59e92797b Add support for newer cleaner isa, cast, dyn_cast
llvm-svn: 693
2001-10-01 13:58:13 +00:00
Chris Lattner
bb7743d148 Update comments
llvm-svn: 692
2001-10-01 13:34:22 +00:00
Chris Lattner
345daca305 Pull predecessor and successor iterators out of the CFG*.h files, and plop them into
the BasicBlock class where they should be.  pred_begin/pred_end become methods on BasicBlock,
and the cfg namespace isn't used anymore.

llvm-svn: 691
2001-10-01 13:19:53 +00:00
Chris Lattner
e646911562 Pull predecessor and successor iterators out of the CFG*.h files, and plop them into
the BasicBlock class where they should be.  pred_begin/pred_end become methods on BasicBlock,
and the cfg namespace isn't used anymore.

Also pull Interval stuff into the Interval class out of the global namespace

llvm-svn: 690
2001-10-01 13:19:41 +00:00
Vikram S. Adve
a491a05515 Add vector `implicitUses' to class MachineCodeForVMInstr to hold values
that are used by the VM instruction but not explicit operands of the
m/c instruction.

llvm-svn: 684
2001-10-01 00:18:12 +00:00
Ruchira Sasanka
9d68af20a7 no major change.
llvm-svn: 674
2001-09-30 23:22:45 +00:00
Ruchira Sasanka
bd64539bb4 added suggesting color suppor
llvm-svn: 672
2001-09-30 23:19:09 +00:00
Chris Lattner
94ef0a1a2c Implement a constant pointer value
llvm-svn: 667
2001-09-30 20:14:07 +00:00
Chris Lattner
a8f5e13f7a Pull iterators out of CFG.h and genericize them with GraphTraits
llvm-svn: 666
2001-09-28 22:59:14 +00:00
Chris Lattner
9b45b18404 Pull iterators out of CFG.h and CFGdecls and put them in Support directory
llvm-svn: 664
2001-09-28 22:56:31 +00:00
Chris Lattner
74c4c61d71 Initial support for construction of a call graph
llvm-svn: 660
2001-09-28 00:08:15 +00:00
Chris Lattner
48f0041088 print out value's by pointer
llvm-svn: 655
2001-09-28 00:06:28 +00:00
Chris Lattner
62dea18f11 Add capability to print out call graph
llvm-svn: 654
2001-09-28 00:06:15 +00:00
Chris Lattner
030d4ca8f4 Change debug info from #define to command line option
llvm-svn: 646
2001-09-19 16:26:10 +00:00
Chris Lattner
2ab05b6f57 Remove debugging output stuff
llvm-svn: 641
2001-09-19 14:08:25 +00:00
Chris Lattner
caed4f916d Add emitAssembly Method
llvm-svn: 639
2001-09-19 13:54:19 +00:00
Ruchira Sasanka
6d773d9580 *** empty log message ***
llvm-svn: 634
2001-09-18 22:57:47 +00:00
Ruchira Sasanka
70506bf77c --added methods to operand class to set/get registers after register allocation
llvm-svn: 633
2001-09-18 22:54:47 +00:00
Chris Lattner
36b943c222 Move operator << from Value.h to Assembly/Writer.h
llvm-svn: 626
2001-09-18 17:03:14 +00:00
Chris Lattner
7f96c71d97 Remove operator << to Assembly/Writer.h
llvm-svn: 625
2001-09-18 17:03:04 +00:00
Vikram S. Adve
ef4f0a345c Renamed files to match the primary classes they provide.
llvm-svn: 620
2001-09-18 13:10:05 +00:00
Vikram S. Adve
8d5a1bf96f Moved debugging interfaces for class Value to Value.h.
llvm-svn: 604
2001-09-18 12:43:15 +00:00
Vikram S. Adve
24f80f0837 Minor fixes: renamed target machine files; fold sched info into TargetMachine.
llvm-svn: 603
2001-09-18 12:41:43 +00:00
Vikram S. Adve
ed85a627bc Make class TargetMachine the common interface to all target-dependent
information, including instr, sched, and reg information.
Rename files to match the primary classes they provide.

llvm-svn: 602
2001-09-18 12:38:31 +00:00
Vikram S. Adve
8355be1b92 Added debugging support.
llvm-svn: 601
2001-09-18 12:23:40 +00:00
Chris Lattner
ac91b150a7 Add support for global constants, and for initializers for constants
llvm-svn: 598
2001-09-18 04:01:05 +00:00