1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-25 22:12:57 +02:00
Commit Graph

536 Commits

Author SHA1 Message Date
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