Commit Graph

630 Commits

Author SHA1 Message Date
Vikram S. Adve
fa24897f9f Eliminate all uses of memInst->getIndicesBROKEN().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1485 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-15 00:36:32 +00:00
Vikram S. Adve
dd08e32deb getIndexedOffset() shd take vector of Values, not of Constants!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1484 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-15 00:35:48 +00:00
Chris Lattner
2d8a523490 Initial checkin of instcombine
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1479 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-14 16:52:09 +00:00
Chris Lattner
7ae9b93a7d 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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1456 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-14 16:23:53 +00:00
Chris Lattner
a1c7df8286 * Remove support for unsized arrays.
* Free instruction does not accept a name
* MemAccessInst can now be used with cast/isa/dyn_cast/...


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1455 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-14 16:22:56 +00:00
Chris Lattner
389e1118a7 PointerType and ArrayType now subclass Sequential type, which contains addressability logic for indexing. Unsized arrays have been removed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1454 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-14 16:20:21 +00:00
Chris Lattner
9a49b210c1 Swap operands now preserves the semantics of the binary operator by changing
the opcode of the instruction if possible.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1444 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-13 00:43:03 +00:00
Chris Lattner
4adc20b41c Implement some nice functions useful for looking at types
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1442 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-13 00:40:16 +00:00
Chris Lattner
a4268ad389 Implement proper iterator tags
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1441 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-13 00:39:49 +00:00
Chris Lattner
9df24be93b Subclasses can change the opcode of an instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1440 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-13 00:39:33 +00:00
Chris Lattner
682ea21397 Constants KNOW they are of a derived type
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1439 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-13 00:38:57 +00:00
Ruchira Sasanka
b720a8bc1d Added comments are more documentation info
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1434 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-08 21:04:22 +00:00
Chris Lattner
7a17675206 Renamed inst_const_iterator -> const_inst_iterator
Renamed op_const_iterator   -> const_op_iterator
Renamed PointerType::getValueType() -> PointerType::getElementType()


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1408 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-04 00:03:30 +00:00
Chris Lattner
e9bb2df410 Rename ConstPoolVal -> Constant
Rename ConstPool*   -> Constant*
Rename ConstPoolVals.h -> ConstantVals.h


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1407 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-03 22:26:30 +00:00
Chris Lattner
9ef18310be Simplify induction variables pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1406 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-03 18:05:13 +00:00
Chris Lattner
7061dc50b2 Split the PHINode class out from the iOther.h file into the iPHINode.h file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1405 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-03 18:02:31 +00:00
Chris Lattner
df89f6efbc Induction variables must be phi nodes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1402 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-03 17:27:42 +00:00
Chris Lattner
cee8f9ae67 Create a new #include "Support/..." directory structure to move things
from "llvm/Support/..." that are not llvm dependant.

Move files and fix #includes


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1400 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-27 00:03:19 +00:00
Chris Lattner
360e17eaf1 Move DataTypes.h from llvm/Support to just Support
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1399 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 23:04:08 +00:00
Chris Lattner
27f65c8441 Remove unused method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1368 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 18:50:26 +00:00
Chris Lattner
a3c2dee477 Expose constant prop of an instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1367 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 18:50:11 +00:00
Chris Lattner
3ee997ba42 Fix field initialization order problem
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1366 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 18:49:54 +00:00
Chris Lattner
1c3d5169be Allow output of manipulators for GCC 2.96 compatibility
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1365 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 18:49:33 +00:00
Chris Lattner
7a8738c844 Add writer support for call graph nodes and loops and induction variables
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1364 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 18:47:46 +00:00
Chris Lattner
8bbc979052 Implement an entry node for the call graph
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1363 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 18:47:11 +00:00
Chris Lattner
6197b0fe54 Implement "internal vs external linkage" which corresponds to the C notion of static
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1362 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 18:46:40 +00:00
Chris Lattner
30474bb929 Implement DCE of global values
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1360 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 18:42:17 +00:00
Chris Lattner
0bbe58f073 * Implement dominator based loop identification
* Implement cleaner induction variable identification


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1359 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 18:41:20 +00:00
Chris Lattner
0252755825 Rearrange code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1334 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 16:49:49 +00:00
Chris Lattner
d43d9007a3 Allow array indexing
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1333 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 16:49:12 +00:00
Chris Lattner
8927973283 Be more const correct
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1332 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 16:48:56 +00:00
Chris Lattner
45ee091719 * 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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1331 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 16:48:41 +00:00
Chris Lattner
283f4e5ac4 New Method isLosslesslyConvertableTo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1330 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 16:47:10 +00:00
Chris Lattner
7c0cdc0cc8 Add new CompositeType shared baseclass of ArrayType and StructType
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1329 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 16:46:45 +00:00
Chris Lattner
6fa90497b0 Add casts
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1328 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 16:46:09 +00:00
Chris Lattner
fe700e7e42 Fix protection probs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1321 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-15 15:24:31 +00:00
Vikram S. Adve
abf73cedd4 Modify method AllocateLocalVar to take size argument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1320 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-15 15:23:02 +00:00
Vikram S. Adve
dcf1620896 Bug fix for Chris.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1316 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-15 15:00:48 +00:00
Chris Lattner
430aa9ec1c -cleangcc pass now remove type names that are never referenced and type names for pointers to primitive types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1312 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-15 04:34:46 +00:00
Vikram S. Adve
4c5fe2d3ed Add function returning which operand holds immediate constant
for a given opcode.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1307 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-14 18:48:36 +00:00
Ruchira Sasanka
b9f550ddfb added isPseudoInstr()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1302 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-14 15:35:51 +00:00
Chris Lattner
65ea171409 Remove much cruft from the MemAccessInst instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1298 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-14 11:27:58 +00:00
Ruchira Sasanka
8486cdd3f9 Changed for adding Phi Elimination code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1266 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-12 14:46:00 +00:00
Ruchira Sasanka
984adc25c9 Made isPhi const
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1251 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-10 20:58:58 +00:00
Chris Lattner
7546c21ae1 Initail checking of structure swapper
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1248 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-10 07:28:25 +00:00
Chris Lattner
d68ac24bf6 Initial checkin of Structure mutator
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1245 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-10 07:26:22 +00:00
Chris Lattner
84b322eb17 Provide const version of function with the name the other will be eventually renamed to
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1241 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-10 06:48:14 +00:00
Chris Lattner
32a9667422 Refactor some functionality to expose more useful stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1240 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-10 06:47:45 +00:00
Chris Lattner
f26e28711b New pass to figure out what types are in use by a program
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1231 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-09 05:27:10 +00:00
Vikram S. Adve
40abd3fab8 Cache parameters for target machine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1222 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-09 02:11:25 +00:00
Vikram S. Adve
4938d4528f Added class MachineCacheInfo.
Also added function to convert float to int by copying via memory.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1221 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-09 02:11:03 +00:00
Chris Lattner
b08d519a54 Remove unneeded forward decl
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1216 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-08 20:54:51 +00:00
Vikram S. Adve
9b19894da9 Add handle to object MachineFrameInfo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1202 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-08 05:23:45 +00:00
Vikram S. Adve
1c84e2a7d3 Include handle to TargetMachine in each Machine...Info class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1201 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-08 05:22:43 +00:00
Vikram S. Adve
44508e333c Add method CreateCodeToCopyIntToFloat.
Include handle to TargetMachine in each Machine...Info object.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1200 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-08 05:22:15 +00:00
Vikram S. Adve
7cffcaaa48 Machine-independent interface to target's stack frame layout parameters.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1190 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-08 04:52:27 +00:00
Vikram S. Adve
df2ee6cff2 Use different op labels for bitwise logical operations and boolean logical
operations in BURG input trees.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1189 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-08 04:51:39 +00:00
Vikram S. Adve
e8f1e44fd7 Added a second constructor for and improved class TmpInstruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1188 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-08 04:50:33 +00:00
Vikram S. Adve
be49526193 Major overhaul of stack frame management.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1185 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-08 04:47:06 +00:00
Vikram S. Adve
ebfa232e9d Old file which was moved to include/llvm/Target some time back.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1184 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-08 04:46:08 +00:00
Vikram S. Adve
4dea947926 Removed MachineCodeForMethod object and made it an annotation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1183 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-08 04:38:58 +00:00
Chris Lattner
2618fba8e3 Initial checkin of pointer safety checker
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1181 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-07 21:16:12 +00:00
Chris Lattner
5818a7162d Okay, so this is a huge hack. Fixme later
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1171 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-07 05:31:53 +00:00
Chris Lattner
495d6f1933 New class to provide high performance writing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1167 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-07 04:20:50 +00:00
Vikram S. Adve
df1c3b8398 Make reg. numbers signed ints.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1137 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-05 03:56:02 +00:00
Chris Lattner
8e7f409169 Minor method rename
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1119 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-04 08:08:34 +00:00
Chris Lattner
3bf04d5b99 Add a helper function to PHI node
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1113 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-03 21:08:00 +00:00
Chris Lattner
407c25bd82 Expose method to merge identically named methods
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1109 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-03 19:49:54 +00:00
Ruchira Sasanka
0d3ea0268f Moved InsertCallerSaveInstr to the SparcRegInfo.cpp and made machine independent
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1107 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-03 17:14:13 +00:00
Chris Lattner
e244a25014 Fix major bugs in type resolution
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1092 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-03 03:27:53 +00:00
Chris Lattner
d4f981d00f Fix the linker. This bug was not fun to track down. grr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1090 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-03 03:26:47 +00:00
Chris Lattner
6eaa457343 Print floating point numbers in expodential form so that small numbers don't get truncated, which broke the health benchmark
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1086 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-01 22:06:00 +00:00
Chris Lattner
fd0375bf86 Expose the low level DCE mechanism to external users
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1082 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-01 07:00:21 +00:00
Chris Lattner
76ac1a45b4 Implement constant propogation of null pointer values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1078 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-01 05:55:13 +00:00
Chris Lattner
d558426b0e Add simpler to use ctors. Add getType() overload to specialize getelementptr's type
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1077 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-01 05:54:28 +00:00
Chris Lattner
0eca13bf58 Add new isNullValue method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1076 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-01 05:53:56 +00:00
Chris Lattner
d3f9a98f66 Initial checkin of level raising code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1073 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-01 02:41:52 +00:00
Chris Lattner
4cc5eb2615 Move level change xfor into the transforms directory
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1070 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-01 02:39:49 +00:00
Chris Lattner
b86751715c Add some useful accessors
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1069 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-01 02:39:36 +00:00
Chris Lattner
bfe11108ad Implement code to convert %malloc and %free FUNCTION CALLS into the instruction equivalent
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1065 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-31 06:35:59 +00:00
Chris Lattner
37aabf28b3 Implemented constant propogation of cast instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1064 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-31 05:07:57 +00:00
Chris Lattner
2fa11445cd New GCC cleanup pass interface
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1061 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-31 04:32:53 +00:00
Chris Lattner
6c80e732dc Fix ordering problem. Found by purify. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1042 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-30 16:38:49 +00:00
Chris Lattner
a828014adf Expose some more printing functionality from the assembly writer library
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1030 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-29 16:36:49 +00:00
Chris Lattner
3259a3237d Systems headers use <> not ""
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1023 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-29 13:29:50 +00:00
Chris Lattner
5f62191f02 Include functionality to get a string array constant as a string
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1020 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-29 13:24:31 +00:00
Chris Lattner
ed077c479b Remove useCSyntax flag
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1019 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-29 13:22:49 +00:00
Chris Lattner
1d050112f7 Initial checkin of name mangling code. Moved from Linker.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1017 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-28 23:31:10 +00:00
Chris Lattner
fa2c50324e Remove unneccesary function prototypes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1014 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-28 22:40:59 +00:00
Vikram S. Adve
dd52255e9a Added a constant pool to record values that need to be emitted
in the assembly code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@999 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-28 21:24:50 +00:00
Vikram S. Adve
4321ded265 Add support for name mangling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@998 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-28 21:23:44 +00:00
Vikram S. Adve
5826160c7d Switch useLLVMSyntax to useCSyntax.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@997 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-28 21:21:25 +00:00
Vikram S. Adve
15741cfb9b Support printing control characters in standard C/assembly style.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@995 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-28 21:06:48 +00:00
Ruchira Sasanka
20c82b12c9 Added support for spilling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@992 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-28 18:15:12 +00:00
Ruchira Sasanka
78d63ee313 Moved callerSaving code to machine specific classes since we have to handle
%ccr reg differently.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@991 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-28 18:14:15 +00:00
Chris Lattner
d6b65255fe 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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@970 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-24 01:15:12 +00:00
Chris Lattner
e638c10cb0 More symbol table bugfixes that are impossible to track down. Goody
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@960 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-23 02:32:45 +00:00
Chris Lattner
d48d6c74ad Fix another annoying bug that took forever to track down. This one involves abstract type resolution at a bad time that broke symbol tables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@958 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-23 01:53:01 +00:00
Vikram S. Adve
0ac8f7ce5a Added object of class MachineCodeForMethod.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@953 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-22 13:58:08 +00:00
Vikram S. Adve
1876f92599 Added class MachineCodeForMethod to provide method-level information
about the generated native code (e.g., frame layout information).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@952 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-22 13:57:39 +00:00
Vikram S. Adve
b4a1e4bea9 Added function interfaces for generating prolog and epilog code.
The functions must be implemented by the target-specific code generator.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@951 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-22 13:56:33 +00:00
Vikram S. Adve
a7edb1888c Added function IsLeafMethod to identify leaf methods.
This will use the CallGraph only if one is provided.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@950 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-22 13:55:46 +00:00
Chris Lattner
9245fc75a4 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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@934 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-22 04:55:44 +00:00
Ruchira Sasanka
b3b6f5338c Added support for both call/jmpl instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@930 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-21 16:43:41 +00:00
Ruchira Sasanka
33eb292e12 Added code to Initialize (MachineOperand) to initialize regNum to -1 -- Ruchira
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@919 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-19 18:17:49 +00:00
Chris Lattner
1992ce1ee4 Refactor code into Assembly & bytecode libraries
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@903 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-18 20:31:54 +00:00
Chris Lattner
b44405a90d initial checkin
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@902 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-18 20:31:42 +00:00
Chris Lattner
986fced5f9 move llvm/Transforms/Pass.h to the top level llvm/Pass.h file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@901 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-18 20:19:09 +00:00
Chris Lattner
399376b53b Initial Checkin
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@896 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-18 20:05:30 +00:00
Chris Lattner
3923140a4d Pull bytecode writing out of Module writer pass. Prepare to move to seperate file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@895 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-18 20:05:07 +00:00
Chris Lattner
c148d4e073 Add operator[] accessors
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@894 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-18 20:04:40 +00:00
Vikram S. Adve
d8b5168a08 Add option to print per module instead of per method, so that
global declarations are also printed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@891 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-18 18:13:49 +00:00
Vikram S. Adve
07b877eb5d Add option to print as bytecode instead of assembly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@887 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-18 13:47:49 +00:00
Chris Lattner
a36941c069 Convert to new simpler Pass structure
Componentize better


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@879 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-18 05:22:27 +00:00
Chris Lattner
9797a51771 Convert to new simpler Pass structure
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@878 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-18 05:22:15 +00:00
Chris Lattner
b44523bd9d Convert to new simpler pass structure
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@877 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-18 05:21:56 +00:00
Chris Lattner
edcf6491a8 Simplify Pass by removing silly subclasses
Fix an iterator problem


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@876 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-18 05:20:53 +00:00
Chris Lattner
dea6b3cea9 Fix minor bug, update comments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@875 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-18 01:49:48 +00:00
Chris Lattner
989305bb23 Pass's return true if they make a modification, not if they fail
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@872 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-18 01:32:17 +00:00
Chris Lattner
475369e255 Convert optimizations to use the Pass infrastructure
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@871 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-18 01:31:58 +00:00
Vikram S. Adve
5684c4e2b4 Added virtual function to generate an instruction sequence to
load a constant into a register.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@862 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-18 00:02:06 +00:00
Vikram S. Adve
f60b1f479f 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@860 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-17 23:59:09 +00:00
Vikram S. Adve
00de509022 Remove extra assert in dyn_cast_or_null.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@856 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-17 22:39:50 +00:00
Ruchira Sasanka
618155f6c8 added initializing regNum to -1 in both constructors of MachineOperand
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@851 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-16 16:36:34 +00:00
Ruchira Sasanka
c4d4b76efb Added support for caller saving
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@847 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-16 01:23:19 +00:00
Chris Lattner
634b352fa6 Print Debug Code to stderr instead of stdout so that it doesn't mess up the assembly output
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@841 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-15 18:30:06 +00:00
Chris Lattner
2db4b72017 ConcretePass should not be a templated class!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@838 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-15 17:47:13 +00:00
Chris Lattner
1bffea0341 Add new Pass infrastructure and some examples
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@836 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-15 17:31:51 +00:00
Chris Lattner
25979243fe Convert to use Pass infrastructure
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@834 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-15 17:30:18 +00:00
Chris Lattner
81564a018f File moved to: llvm/Transforms/HoistPHIConstants.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@833 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-15 17:30:06 +00:00
Ruchira Sasanka
f125525e3b --changed Sugesting colors for method calls/return values etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@829 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-15 16:23:48 +00:00
Ruchira Sasanka
21721b63c3 fixed a coalscing bug
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@828 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-15 16:22:44 +00:00
Chris Lattner
ec0a95f4e4 Be const correct
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@826 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-15 15:54:43 +00:00
Chris Lattner
3ef77fcd55 Add cast_or_null & dyn_cast_or_null
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@824 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-15 13:41:37 +00:00
Chris Lattner
c18545dc9e Rename ConstPoolPointerReference to ConstPoolPointerRef - My fingers get tired typing that much
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@822 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-15 13:21:42 +00:00
Chris Lattner
2a72820b43 Improve error messages on assertion failure.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@821 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-15 13:13:32 +00:00
Chris Lattner
3f04045e5a *** empty log message ***
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@813 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-14 23:34:12 +00:00
Chris Lattner
349d591161 Update comment, remove misleading method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@806 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-14 23:26:24 +00:00
Chris Lattner
cbf0c2c3e3 Initializers are not const even if the GV is.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@805 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-14 23:24:46 +00:00
Vikram S. Adve
46c6371141 Cast NULL when requested.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@803 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-14 23:21:06 +00:00
Vikram S. Adve
c649458d18 Added getEntryNode() and getExitNode() functions.
The latter are actually bogus and will be fixed by me soon.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@802 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-14 23:20:44 +00:00
Vikram S. Adve
bc4ecce4a9 Insert code to trace values at basic block and method exits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@801 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-14 23:19:02 +00:00
Vikram S. Adve
c9abc6528d Added routine to create a char array for a string.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@798 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-14 23:16:27 +00:00
Chris Lattner
f96315e985 Use the instruction.def file to remain up to date with future instruction
changes


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@792 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-14 17:24:50 +00:00
Chris Lattner
2b49e336b6 New file to define instructions...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@791 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-14 17:24:33 +00:00
Chris Lattner
1166b00316 New module linking functionality prototype
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@789 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-13 16:57:49 +00:00
Chris Lattner
704037f024 Dang, I screwed up the merge. This should be better
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@785 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-13 07:18:40 +00:00
Chris Lattner
2f004fdf18 Fix filename in comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@751 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-13 06:32:42 +00:00
Chris Lattner
432b0a7e3d Better linux support. This file still sucks
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@750 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-13 06:31:55 +00:00
Chris Lattner
6fed025318 Fix broken #endif
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@749 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-13 06:31:00 +00:00
Chris Lattner
0b693fb125 not is a keyword in Ansi C++. Avoid it
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@748 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-13 06:30:39 +00:00
Chris Lattner
da47526737 Clean up initializers for GCC 2.96
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@747 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-13 06:30:10 +00:00
Chris Lattner
0f0dc4e47c Remove exception specification. Only slows code down.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@746 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-13 06:25:30 +00:00
Chris Lattner
c5a22ce2b9 Changes to compile with GCC 2.96
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@745 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-13 06:25:03 +00:00
Chris Lattner
a0d7f9dbb7 Add comment indicating semantics of indirect calls
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@744 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-13 06:24:35 +00:00
Chris Lattner
742b1461db New ctor for invoke inst
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@743 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-13 06:24:10 +00:00
Chris Lattner
11a6d82447 Add support for indirect calls
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@742 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-13 06:23:14 +00:00
Chris Lattner
d97f802453 Add some casts to make GCC 2.96 happy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@741 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-13 06:20:07 +00:00
Chris Lattner
004adcafec Add use_back() methods
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@740 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-13 06:18:19 +00:00
Chris Lattner
26e129e64f Add classof implementations for User
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@739 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-13 06:18:05 +00:00
Chris Lattner
067238d5d9 Expose typedefs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@738 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-13 06:17:50 +00:00
Chris Lattner
7502f635c6 Add support for module local constants
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@737 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-13 06:17:32 +00:00
Chris Lattner
72665af24d Add new opcode for Invoke instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@736 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-13 06:15:20 +00:00
Chris Lattner
9686fd11c4 Minor changes, add new ctor for invoke instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@735 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-13 06:14:53 +00:00
Chris Lattner
16ddd02545 Add assertions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@734 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-13 06:12:38 +00:00
Chris Lattner
30bdaaa3fc * Minor Formatting changes.
* MethodType now takes an explicit isVarArg arg instead of an implicit
  voidTy on the argument list


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@733 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-13 06:12:30 +00:00
Chris Lattner
5ef35fdb72 * 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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@732 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-13 06:11:10 +00:00
Ruchira Sasanka
598641b4ca --added support for implicit operands in machine instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@727 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-12 17:46:27 +00:00
Vikram S. Adve
a995e6086d Record implicitRefs for each machine instruction instead of
each VM instruction.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@725 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-11 04:23:19 +00:00
Vikram S. Adve
a1d14f3555 Machine-independent code generation routines used in instruction
selection.  These used to live in several different places before.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@719 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-10 20:50:43 +00:00
Vikram S. Adve
593da4acc5 Moved code generation support routines to InstrSelectionSupport.{h,cpp}.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@718 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-10 20:50:20 +00:00
Chris Lattner
4387370c1c Factor parentness out of Module & GlobalVariable into GlobalValue
Implement SymbolTable debug/dump utility


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@710 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-03 19:28:15 +00:00
Chris Lattner
7323c69a31 Share ConstPoolPointer elements correctly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@706 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-03 15:38:36 +00:00
Chris Lattner
ef9c23f281 * 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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@703 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-03 14:53:21 +00:00
Chris Lattner
f4ba6c710c First try at a horrible global value reference wrapper
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@701 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-03 06:12:09 +00:00
Chris Lattner
b00c582b6d Commit more code over to new cast style
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@697 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-02 03:41:24 +00:00
Chris Lattner
1d87bcf490 Convert more code to use new style casts
Eliminate old style casts from value.h


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@696 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-01 20:11:19 +00:00
Chris Lattner
cfe26c930a Add more support for new style casts
Convert more code to use them


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@695 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-01 18:26:53 +00:00
Chris Lattner
9636a91649 Add support for new style casts
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@694 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-01 16:18:37 +00:00
Chris Lattner
7295eb4ea3 Add support for newer cleaner isa, cast, dyn_cast
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@693 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-01 13:58:13 +00:00
Chris Lattner
6bad546c2a Update comments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@692 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-01 13:34:22 +00:00
Chris Lattner
f0604b84c7 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@691 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-01 13:19:53 +00:00
Chris Lattner
711774e169 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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@690 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-01 13:19:41 +00:00
Vikram S. Adve
2a97dd1fc3 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@684 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-01 00:18:12 +00:00
Ruchira Sasanka
e939ddb96b no major change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@674 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-30 23:22:45 +00:00
Ruchira Sasanka
06faeee041 added suggesting color suppor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@672 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-30 23:19:09 +00:00
Chris Lattner
4cfb153316 Implement a constant pointer value
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@667 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-30 20:14:07 +00:00
Chris Lattner
7461bf5f8e Pull iterators out of CFG.h and genericize them with GraphTraits
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@666 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-28 22:59:14 +00:00
Chris Lattner
3ff4387113 Pull iterators out of CFG.h and CFGdecls and put them in Support directory
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@664 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-28 22:56:31 +00:00
Chris Lattner
41fbf305ee Initial support for construction of a call graph
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@660 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-28 00:08:15 +00:00
Chris Lattner
4a0cd6cada print out value's by pointer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@655 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-28 00:06:28 +00:00
Chris Lattner
6e9ff7ded6 Add capability to print out call graph
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@654 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-28 00:06:15 +00:00
Chris Lattner
6edcad89e7 Change debug info from #define to command line option
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@646 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-19 16:26:10 +00:00
Chris Lattner
27cd2caca5 Remove debugging output stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@641 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-19 14:08:25 +00:00
Chris Lattner
8a28124a5f Add emitAssembly Method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@639 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-19 13:54:19 +00:00
Ruchira Sasanka
80acc6cf43 *** empty log message ***
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@634 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-18 22:57:47 +00:00
Ruchira Sasanka
eda6806f6a --added methods to operand class to set/get registers after register allocation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@633 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-18 22:54:47 +00:00
Chris Lattner
6ec11d4eb0 Move operator << from Value.h to Assembly/Writer.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@626 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-18 17:03:14 +00:00
Chris Lattner
20f8d5d093 Remove operator << to Assembly/Writer.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@625 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-18 17:03:04 +00:00
Vikram S. Adve
e6cbbfeead Renamed files to match the primary classes they provide.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@620 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-18 13:10:05 +00:00
Vikram S. Adve
8f3f5a87f9 Moved debugging interfaces for class Value to Value.h.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@604 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-18 12:43:15 +00:00
Vikram S. Adve
4bc86976bb Minor fixes: renamed target machine files; fold sched info into TargetMachine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@603 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-18 12:41:43 +00:00
Vikram S. Adve
a578a6d054 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@602 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-18 12:38:31 +00:00
Vikram S. Adve
0b5787ace8 Added debugging support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@601 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-18 12:23:40 +00:00
Chris Lattner
d70684f758 Add support for global constants, and for initializers for constants
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@598 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-18 04:01:05 +00:00
Ruchira Sasanka
475253b430 added a method to get reg num after register allocation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@596 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-15 21:11:48 +00:00
Ruchira Sasanka
427a527311 -modified machine operand class - took regNum out of union to set regNum after
retister allocation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@594 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-15 20:16:41 +00:00
Ruchira Sasanka
4d0d632927 -- debug messages dissabled
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@589 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-15 16:54:40 +00:00
Ruchira Sasanka
c5258a4210 added reg alloc support
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@588 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-15 00:34:31 +00:00
Ruchira Sasanka
1bf6d645cd --reg alloc code added
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@587 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-15 00:33:26 +00:00
Ruchira Sasanka
94d86e9677 *** empty log message ***
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@579 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-14 20:31:39 +00:00
Chris Lattner
46cbff625e 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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@572 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-14 16:56:32 +00:00
Chris Lattner
7c94f9dc96 Minor reformatting, & protection fixes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@570 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-14 16:08:06 +00:00
Chris Lattner
5f3c2e566f Split Register specific stuff out from TargetMachine.h to RegInfo.h
Get rid of unneccesary #includes from TargetMachine.h


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@568 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-14 06:20:10 +00:00
Chris Lattner
e5bc8b0653 Split Target/Machine.h into three files:
* Machine.h
* InstInfo.h
* SchedInfo.h

TODO: Split out reg info stuff


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@567 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-14 06:08:03 +00:00
Chris Lattner
b26bcc5087 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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@566 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-14 05:34:53 +00:00
Chris Lattner
69db8da023 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.  :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@564 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-14 04:32:38 +00:00
Chris Lattner
0e6530ee1b 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@559 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-14 03:37:52 +00:00
Chris Lattner
e710047854 Initial instruction tree support for the analysis library
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@555 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-14 01:42:26 +00:00
Chris Lattner
07ea7d7f7e Generic k-way tree support
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@554 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-14 01:42:01 +00:00
Chris Lattner
5f6baf78ea More cleanups, preparing to revamp InstrForest to, among other things,
not leak all its allocated memory.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@553 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-12 16:34:03 +00:00
Chris Lattner
4ddb4c82d7 * Clean up InstrForest
* Fix ins sel problem, test case:
void "foo" (int *%x, int *%y)

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@552 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-12 01:28:49 +00:00
Chris Lattner
d268ad6e2e Eliminate 'BasicNode' from InstrForest.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@551 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-11 23:52:11 +00:00
Chris Lattner
c2a2396e17 Eliminate MainTreeNode function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@550 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-11 23:22:43 +00:00
Chris Lattner
69f8ce051e Handle subtract in expression classifier
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@548 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-11 04:27:34 +00:00
Chris Lattner
871ffd7a2e Disable destructors on constants
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@547 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-11 04:27:19 +00:00
Chris Lattner
74f4a766c4 * Add capability of printing out a global variable
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@534 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-10 20:06:47 +00:00
Chris Lattner
be07811cd0 * 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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@533 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-10 20:06:17 +00:00
Chris Lattner
746e0014a6 Update assertion to allow extra case
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@532 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-10 20:02:12 +00:00
Chris Lattner
70cc3397f8 Implement global variable support
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@530 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-10 07:58:01 +00:00
Chris Lattner
85cdba3bb6 Remove 3 gross global functions that don't belong here
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@523 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-09 23:00:59 +00:00
Chris Lattner
74c2b7633f Rename contype to subtype
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@522 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-09 22:26:58 +00:00
Chris Lattner
78914e772f Convert ConstRules to use annotations to clean it up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@514 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-09 21:00:23 +00:00
Chris Lattner
56786d268f Fix build breakage. :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@511 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-09 19:52:23 +00:00
Chris Lattner
3533155dfb Remove extra #include
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@508 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-09 19:34:25 +00:00
Ruchira Sasanka
c866fe1949 *** empty log message ***
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@507 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-08 17:23:06 +00:00
Ruchira Sasanka
0286ade27f *** empty log message ***
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@506 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-08 14:32:00 +00:00
Ruchira Sasanka
7cd2ca13c1 Committed for compliation. Not yet final.
--Ruchira


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@505 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-08 14:22:50 +00:00
Chris Lattner
04890ad7fb New file for supporting abstract types
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@502 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-07 23:00:03 +00:00
Chris Lattner
c21708a4ea Provide a way to change the incoming value for a phi node
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@495 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-07 22:19:55 +00:00
Chris Lattner
dcd2fb5f7b * Remove lots of unnecesary #includes
* Remove extra flyers
* Remove dependence on stringExtras by eliminating printIndent calls


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@486 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-07 21:18:16 +00:00
Chris Lattner
cffebdc390 * Remove lots of annoying extra #includes
* Elminate dependecy on stringextras.h by moving dump's into .cpp files
* Kill InOutIterator class because it breaks iterator semantics to work like that
   - Copy ctor on iterator doesn't work.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@485 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-07 21:07:10 +00:00
Chris Lattner
f977bbcad6 * Add tag so emacs knows it's a c++ file
* Remove frivolous flyers


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@484 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-07 21:04:59 +00:00
Chris Lattner
1b40a1bacd Add tags so emacs knows these are C++ files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@483 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-07 21:04:20 +00:00
Chris Lattner
8a17faaf07 Remove extra space
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@482 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-07 21:03:14 +00:00
Chris Lattner
633bfa02d6 Remove ReversePostOrderTraversal declaration
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@481 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-07 21:02:50 +00:00
Chris Lattner
12a16341f6 * Don't predefine ReversePostOrderTraversal because it adds a dependence on vector
* static ctor/dtor is actually a REALLY good idea
* Remove explicit copy ctor and op=


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@480 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-07 21:02:14 +00:00
Chris Lattner
fcc8897ec1 NEw file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@478 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-07 19:29:23 +00:00
Chris Lattner
dfbaf73cf7 Follow the golden rule of the coding standards guide: Make the code look
like the rest of the system.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@476 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-07 17:38:10 +00:00
Chris Lattner
f4f4c87037 Constant pool is eliminated
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@473 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-07 17:08:28 +00:00