1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 03:53:04 +02:00
Commit Graph

643 Commits

Author SHA1 Message Date
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
Ruchira Sasanka
f8c425fc43 added a method to get reg num after register allocation
llvm-svn: 596
2001-09-15 21:11:48 +00:00
Ruchira Sasanka
c6fb737c19 -modified machine operand class - took regNum out of union to set regNum after
retister allocation.

llvm-svn: 594
2001-09-15 20:16:41 +00:00
Ruchira Sasanka
6807a780c5 -- debug messages dissabled
llvm-svn: 589
2001-09-15 16:54:40 +00:00
Ruchira Sasanka
9bc086977b added reg alloc support
llvm-svn: 588
2001-09-15 00:34:31 +00:00
Ruchira Sasanka
e0cf66f325 --reg alloc code added
llvm-svn: 587
2001-09-15 00:33:26 +00:00
Ruchira Sasanka
803a63ced2 *** empty log message ***
llvm-svn: 579
2001-09-14 20:31:39 +00:00
Chris Lattner
d6a98c11bc Chris seems fond of #include <vector>. Fix these. Also convert use list in
Value to a vector instead of a list.

Move SchedGraph.h & SchedPriorities.h into lib/CodeGen/InstrScheduling

llvm-svn: 572
2001-09-14 16:56:32 +00:00
Chris Lattner
76f3eeaccf Minor reformatting, & protection fixes
llvm-svn: 570
2001-09-14 16:08:06 +00:00
Chris Lattner
e8a8afce05 Split Register specific stuff out from TargetMachine.h to RegInfo.h
Get rid of unneccesary #includes from TargetMachine.h

llvm-svn: 568
2001-09-14 06:20:10 +00:00
Chris Lattner
de29307caa Split Target/Machine.h into three files:
* Machine.h
* InstInfo.h
* SchedInfo.h

TODO: Split out reg info stuff
llvm-svn: 567
2001-09-14 06:08:03 +00:00
Chris Lattner
a0a3946882 Make a new llvm/Target #include directory.
Move files from lib/CodeGen/TargetMachine to lib/Target
Move TargetData.h and TargetMachine.h to Target/{Data.h|Machine.h}
Prepare to split TargetMachine.h into several smaller files

llvm-svn: 566
2001-09-14 05:34:53 +00:00
Chris Lattner
161b4af2f6 Checkin changes to:
1. Clean up the TargetMachine structure.  No more wierd pointers that have to
   be cast around and taken care of by the target.
2. Instruction Scheduling now takes the schedinfo as an argument.  The same
   should be done with the instinfo, it just isn't now.
3. Sparc.h is now just a factory method.  Eventually this file will dissapear,
   but probably not until we have more than one backend.  :)

llvm-svn: 564
2001-09-14 04:32:38 +00:00
Chris Lattner
3e2a85a0e3 This checkin represents some cleanup of the backend, implementing the following things:
1. The TargetMachine structure is free to decide the process a particular target uses to generate code.
2. All of the gooee details of the sparc backend are now localized in the lib/CodeGen/TargetMAchine/Sparc directory.  The Sparc.h file that is globally visible is just a stub.
3. The Sparc.h file that esxists now will dissapear entirely someday when we have multiple backends chosen by a factory of some sort.

llvm-svn: 559
2001-09-14 03:37:52 +00:00
Chris Lattner
676ea87be5 Initial instruction tree support for the analysis library
llvm-svn: 555
2001-09-14 01:42:26 +00:00
Chris Lattner
5c7c21efb1 Generic k-way tree support
llvm-svn: 554
2001-09-14 01:42:01 +00:00
Chris Lattner
b6e1cc3118 More cleanups, preparing to revamp InstrForest to, among other things,
not leak all its allocated memory.

llvm-svn: 553
2001-09-12 16:34:03 +00:00
Chris Lattner
6ff8e8edce * Clean up InstrForest
* Fix ins sel problem, test case:
void "foo" (int *%x, int *%y)

begin
        seteq int *%x, %y
        ret void
end

llvm-svn: 552
2001-09-12 01:28:49 +00:00
Chris Lattner
8cbda4e314 Eliminate 'BasicNode' from InstrForest.
llvm-svn: 551
2001-09-11 23:52:11 +00:00
Chris Lattner
70439801a6 Eliminate MainTreeNode function
llvm-svn: 550
2001-09-11 23:22:43 +00:00
Chris Lattner
277c7264f6 Handle subtract in expression classifier
llvm-svn: 548
2001-09-11 04:27:34 +00:00
Chris Lattner
553dad9da6 Disable destructors on constants
llvm-svn: 547
2001-09-11 04:27:19 +00:00
Chris Lattner
f38c10222e * Add capability of printing out a global variable
llvm-svn: 534
2001-09-10 20:06:47 +00:00
Chris Lattner
d6023649c7 * Method::getType should return type cast as MethodType, eliminate getMethodType
* Make Type::*Ty not be const types
* Add a new Type.def file to provide info about types
* Add a full complement of casting methods to the Type class

llvm-svn: 533
2001-09-10 20:06:17 +00:00
Chris Lattner
fc53415334 Update assertion to allow extra case
llvm-svn: 532
2001-09-10 20:02:12 +00:00
Chris Lattner
9d1629d688 Implement global variable support
llvm-svn: 530
2001-09-10 07:58:01 +00:00
Chris Lattner
9b5fd40742 Remove 3 gross global functions that don't belong here
llvm-svn: 523
2001-09-09 23:00:59 +00:00
Chris Lattner
9985e9db71 Rename contype to subtype
llvm-svn: 522
2001-09-09 22:26:58 +00:00
Chris Lattner
3728d62a06 Convert ConstRules to use annotations to clean it up.
llvm-svn: 514
2001-09-09 21:00:23 +00:00
Chris Lattner
2e74f6ba1f Fix build breakage. :(
llvm-svn: 511
2001-09-09 19:52:23 +00:00
Chris Lattner
982bbcfb36 Remove extra #include
llvm-svn: 508
2001-09-09 19:34:25 +00:00
Ruchira Sasanka
3d7313423c *** empty log message ***
llvm-svn: 507
2001-09-08 17:23:06 +00:00
Ruchira Sasanka
5f9e5b6bc7 *** empty log message ***
llvm-svn: 506
2001-09-08 14:32:00 +00:00