Commit Graph

957 Commits

Author SHA1 Message Date
Chris Lattner
3bf915f2a2 Fix bugs, don't do external methods which causes segv.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1414 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-04 08:13:06 +00:00
Chris Lattner
4b770a3145 Remove printouts
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1413 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-04 08:12:53 +00:00
Chris Lattner
621c9920c7 Fix a pessimization due to sucky LI testing
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1412 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-04 08:12:47 +00:00
Chris Lattner
394437ff7e Implement induction variable simplification
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1411 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-04 04:32:29 +00:00
Chris Lattner
9a88d278dd Allow hyphens in identifier names
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1409 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-04 04:31:30 +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
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
6148c02591 Initial checkin of indvar stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1404 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-03 17:28:42 +00:00
Chris Lattner
c50df7e3aa Compile the scalar directory
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1403 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-03 17:28:15 +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
f60dc88b3d Move support directory
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1401 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-29 16:32:16 +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
0900980cc5 Turn off debug info
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1396 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 19:36:58 +00:00
Chris Lattner
de51dd890f Use pointertype where appropriate
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1392 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 19:20:16 +00:00
Chris Lattner
69b5ce90dc Remove invalid,unneccesary ## token
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1391 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 19:19:27 +00:00
Chris Lattner
6731f08dbc Implement internal
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1385 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 19:14:56 +00:00
Chris Lattner
9e00579228 Make strings be internal
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1384 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 19:14:33 +00:00
Chris Lattner
e81dc1dd94 Remove debugging output
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1383 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 19:14:16 +00:00
Chris Lattner
c54692b969 Support internal linkage
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1382 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 19:14:03 +00:00
Chris Lattner
d4c1550cac Build IPO directory
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1381 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 18:59:30 +00:00
Chris Lattner
e4d25aad16 Implement support for internal methods
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1380 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 18:59:18 +00:00
Chris Lattner
bd70bb94d6 Include const prop as part of -raise
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1379 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 18:58:55 +00:00
Chris Lattner
f78032fe06 * Implement support for folding multiple single letter arguments together like
with ls: ls -la  === ls -l -a
* Implement support for trimming arguments that start with a single letter
  argument so that -lfoo is recognized as -l foo for the linker


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1378 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 18:58:34 +00:00
Chris Lattner
5b7d42b142 Misc cleanups
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1377 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 18:57:38 +00:00
Chris Lattner
faffb053fe Expose constant propogation of an instruction in a clean way
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1376 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 18:57:12 +00:00
Chris Lattner
4ed17bad69 Stuff after a #endif is not valid CPP input and breaks some compilers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1375 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 18:56:52 +00:00
Chris Lattner
d23b1d31c0 Implement internal method support
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1374 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 18:56:10 +00:00
Chris Lattner
dda719665b Implement support for internal methods
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1373 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 18:54:16 +00:00
Chris Lattner
a2eb259c6b Implement writer support for Loops, Induction Variables, and CallGraphs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1372 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 18:53:29 +00:00
Chris Lattner
50020223b9 Make Mul work right
Make sub work right


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1371 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 18:53:07 +00:00
Chris Lattner
ff5a8c43c9 Fix a bad assertion to be correct . The root basic block can be used by PHI nodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1370 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 18:52:02 +00:00
Chris Lattner
25e9cad236 Implement a new entry node that has edges to all external methods in the module
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1369 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 18:51:25 +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
782b939db1 * Implement array indexing in lli
* Add external atoi method as well as floor, and srand


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1355 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 18:18:18 +00:00
Chris Lattner
e9c5dc9cb1 Support Array Indexing
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1348 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 17:02:05 +00:00
Chris Lattner
58716b9791 Implement: isLosslesslyConvertableTo and new CompositeType base class
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1347 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 17:01:47 +00:00
Chris Lattner
c267f7bcc0 If a name conflict occurs when inserting a value, rename it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1346 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 17:01:18 +00:00
Chris Lattner
7c54b4a067 Support array indexing
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1345 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 17:00:43 +00:00
Chris Lattner
491b29f247 Support Composite's, not just structs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1344 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 17:00:13 +00:00
Chris Lattner
89a1c806ea losslessCastableTypes is moved to Type class
getStructOffsetType supports array indexing


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1343 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 16:59:47 +00:00
Chris Lattner
12739d9f87 Support selectable structure transformations
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1342 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 16:59:10 +00:00
Chris Lattner
8090e8c18e Support mutation of array indexing
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1341 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 16:58:33 +00:00
Chris Lattner
3cc7ddedbb Clean up code, implement array indexing stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1340 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 16:58:14 +00:00
Chris Lattner
a0fa588d77 Implement array indexing reverse engineering
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1339 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 16:57:31 +00:00
Chris Lattner
69a86e4e23 The old getIndices has been deprecated, because it no longer works. It now
is named getIndicesBROKEN() and shall be removed when the codebase is updated
to not call it


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1338 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 16:56:19 +00:00
Chris Lattner
b2b12b4a62 Implement array indexing
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1337 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 16:54:55 +00:00
Chris Lattner
6cdb0118e8 Implement array indexing with uints
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1336 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 16:54:11 +00:00
Chris Lattner
882572aa68 * Implement more powerful expr analysis of cast instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1335 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 16:53:50 +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
Ruchira Sasanka
3113375f90 commented out popAllTempValues since it leads to a bug - see code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1327 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-15 22:03:04 +00:00
Ruchira Sasanka
f90870f622 Commented some popTempArg.. since it leads to a bug
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1326 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-15 22:02:06 +00:00
Ruchira Sasanka
07c7086bd2 Added naming to inserted phi copy values - for easy debugging
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1325 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-15 20:46:40 +00:00
Ruchira Sasanka
295264dcb4 changed since names of some methods in PhyRegAlloc changed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1324 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-15 20:25:07 +00:00
Ruchira Sasanka
ba9d5dba25 Fixed a bug in setReLRegsUsedByMI
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1323 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-15 20:23:19 +00:00
Ruchira Sasanka
825dd55429 Changed some names of methods, added const etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1322 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-15 20:22:37 +00:00
Vikram S. Adve
345bcc8be1 Fix use of AllocateLocalVar for alloca instruction!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1319 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-15 15:22:39 +00:00
Vikram S. Adve
7c47c7201d Modify AllocateLocalVar method to take a size argument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1318 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-15 15:22:26 +00:00
Ruchira Sasanka
f6dfca1395 fixed setUsedRegAtMI
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1317 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-15 15:00:53 +00:00
Vikram S. Adve
2ed5ccd512 Print incoming arguments and return values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1315 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-15 15:00:16 +00:00
Vikram S. Adve
b9959d8058 Fix int->float conversion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1314 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-15 14:59:56 +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
Ruchira Sasanka
20ac79e329 Changed phi elimination code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1311 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-15 00:27:14 +00:00
Vikram S. Adve
0e7c737f6e Fix cute little bug that was causing the last
structure offset to be ignored in computing an offset!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1310 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-14 21:24:44 +00:00
Ruchira Sasanka
8d24337eea Small changed to printing a machine operand - It the operand is a def, it prints
a star after it - only for debugging


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1309 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-14 20:05:23 +00:00
Vikram S. Adve
ecd5813639 Don't assume constant operand can only be in position 1!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1308 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-14 18:49:45 +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
Vikram S. Adve
9e29f78029 Idiotic error in last fix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1306 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-14 17:55:02 +00:00
Vikram S. Adve
c811745156 Don't need to load a NULL pointer constant from memory!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1305 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-14 17:24:49 +00:00
Vikram S. Adve
c9c6aa0445 Change latency of SETX to improve schedule -- just a hack.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1304 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-14 15:54:44 +00:00
Ruchira Sasanka
cbddf49665 Added support method for setting interference for pseudo instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1303 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-14 15:37:13 +00:00
Ruchira Sasanka
d63aaaaabe Added M_PSEUDO_FLAG for SETX .. instr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1301 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-14 15:35:13 +00:00
Ruchira Sasanka
22ccb1b905 Added interference for args in pseudo instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1300 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-14 15:33:58 +00:00
Chris Lattner
3bcce72f95 Rename cruft
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1299 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-14 11:28:18 +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
Chris Lattner
d5b48ca422 Better heuristics for handling arrays
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1296 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-14 11:02:49 +00:00
Ruchira Sasanka
84dce16fb1 commented out lines printing code after scheduling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1295 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-13 23:12:53 +00:00
Ruchira Sasanka
f221a2e0a8 Fixed a bug concering LR spilling. Earlier, added spilled code was not inserted
into the instruction stream correctly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1294 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-13 23:09:30 +00:00
Ruchira Sasanka
5f98aca57c Changed checking for invalid register number - earlier it was uisng a contant
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1293 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-13 23:08:19 +00:00
Chris Lattner
1b600144bd Implement some more rand functions for em3d benchmark
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1291 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-13 05:46:08 +00:00
Chris Lattner
ce22ec1251 * Change ExpressionConvertableToType to more closely match map behavior of
ConvertExpressionToType
* Make ValueHandle's remove instruction from maps when they are deleted so that
  no false map hits occur if a subsequent instruction is allocated to the same
  space in memory.  This was a VERY VERY VERY EVIL NASTY BUG to track down. :-P


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1288 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-13 05:01:36 +00:00
Chris Lattner
e72c557dff Minor style cleanups
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1287 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-13 04:59:58 +00:00
Chris Lattner
3d775c3f39 Avoid assertion failure when taking size of unsized array. Todo item herE
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1286 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-13 04:59:41 +00:00
Vikram S. Adve
e85f2332db Do the same for allocating spills to get their alignment right too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1285 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-12 23:40:22 +00:00
Vikram S. Adve
00521d79bf When allocating space on stack for writing a register,
use the size of the register, not the size of the Value type,
to get the right alignment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1284 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-12 23:26:35 +00:00
Vikram S. Adve
e492c9d4d1 Bug fix in offset alignment computations: don't subtract the padding
value from size *before* subtracting size from offset!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1283 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-12 23:26:23 +00:00
Chris Lattner
e6e8b28a57 Remove debug info :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1280 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-12 21:52:57 +00:00
Chris Lattner
77a316ad2b Fix bug in new assertion
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1279 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-12 21:48:38 +00:00
Ruchira Sasanka
9d47866497 Fixed a bug with pervious ColorCallArg
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1278 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-12 20:54:19 +00:00
Ruchira Sasanka
91014f6b0c Canged ColorCallArg so that when a call arg is directly pushed on to stack
for argument passing, that instruction is directly added to the InstructionsBefore
set of the called machine instruction - i.e., it is not reordered.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1277 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-12 20:31:47 +00:00
Chris Lattner
27afeb2be8 Add an assertion check
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1276 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-12 20:30:32 +00:00
Chris Lattner
b7325433aa I don't know what I was thinking
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1275 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-12 20:30:12 +00:00
Chris Lattner
84efe09e3d Print percentages for profiling info better
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1274 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-12 20:13:14 +00:00
Chris Lattner
fd79ab5088 Fix minor bug
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1273 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-12 20:13:04 +00:00
Ruchira Sasanka
7130938f94 For phi elimination, now we are generating only one instruction
using cpValue2Value instead of
passing vector to createCopyInstructionByType.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1272 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-12 19:42:27 +00:00
Ruchira Sasanka
061b8edb27 Changed insert instructions only for CONSTANTS - back to original
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1271 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-12 19:32:04 +00:00
Vikram S. Adve
3438b21ebd Disable use of the Phi machine instruction which is no longer needed
for register allocation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1270 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-12 18:54:11 +00:00
Vikram S. Adve
200a435966 Eliminate most uses of the machine instruction vector for each LLVM instr,
since some m. instr. may be generated by LLVM instrs. in other blocks.
Handle non-SSA (anti and output) edges and true edges uniformly by
working with machine instructions alone.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1269 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-12 18:53:43 +00:00
Chris Lattner
a95c69997f Print profile info if exit() is called
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1268 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-12 16:28:48 +00:00
Chris Lattner
e240906471 Hack a structure profiling option together
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1267 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-12 16:19:45 +00:00
Ruchira Sasanka
67a463ac04 Added phi elimination code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1265 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-12 14:45:33 +00:00
Ruchira Sasanka
b2490fc4fb Added phi elimination code - not final
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1264 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-12 14:44:50 +00:00
Vikram S. Adve
d9beb975f2 Improved printing routines.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1263 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-12 14:19:47 +00:00
Vikram S. Adve
af00d485a4 Major improvement to how nodes are built for a BB.
LLVM instruction is no longer recorded in each node, but BB is.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1262 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-12 14:18:01 +00:00
Vikram S. Adve
5567e942c0 Adjust all stack variable offsets to be aligned by size.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1261 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-12 05:17:23 +00:00
Vikram S. Adve
fd9b7dcbf5 Fix dumb bug in alignment adjustment code!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1260 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-12 05:16:39 +00:00
Vikram S. Adve
998cf0d25f Fix bogus code that was eliminating needed args.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1259 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-11 23:11:36 +00:00
Ruchira Sasanka
c56e5c1485 Fixed FP and SP usage. SP for outgoing args - for everything else FP
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1258 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-11 22:37:51 +00:00
Ruchira Sasanka
6beb013c37 cahnged StackPointer accesses to FramePointer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1257 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-11 21:49:37 +00:00
Vikram S. Adve
f1a0a10813 Fix errors in computing downgrowing offsets, and in
computing size of extra outgoing args.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1256 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-11 21:23:33 +00:00
Vikram S. Adve
5a81692f47 Down-growing offsets from FP should start at 0, not -1.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1255 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-11 21:22:11 +00:00
Vikram S. Adve
5b43af962b Only add true dep. edges from an earlier to a later instruction.
This wasn't a problem until we started putting copies for Phi values
that produced cycles in the SchedGraph!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1254 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-11 01:23:27 +00:00
Ruchira Sasanka
65480b75af Changed code to ignore Phi Nodes in PhyRegAlloc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1253 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-10 21:21:36 +00:00
Ruchira Sasanka
ae4bcd7566 Corrected reodering code for instructions inserted before calls
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1252 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-10 21:20:43 +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
bff7c3a898 Initial checkin of structure mutator
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1246 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-10 07:26:31 +00:00
Vikram S. Adve
2144722389 Several bug fixes in printing constants, particularly with unsized
arrays and multi-dimensional arrays.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1239 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-10 02:03:06 +00:00
Vikram S. Adve
671b16d055 Must generate an instruction for GetElementPtr if single user is not
a memory instruction!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1238 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-10 01:05:26 +00:00
Ruchira Sasanka
aa12a78a36 Disabled some debuggin messages
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1237 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-10 00:26:55 +00:00
Ruchira Sasanka
efaf9be8a4 Coalesing bug fix - now checks for the same regType instead of the same
regClass since FP class has two reg Types.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1236 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-10 00:20:24 +00:00
Ruchira Sasanka
ad1400924d No major change
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1235 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-09 23:49:42 +00:00
Ruchira Sasanka
868cf82c68 Added code for correct reordering of call arguments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1234 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-09 23:49:14 +00:00
Chris Lattner
b61107aa51 New pass to find types in use by a program
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1232 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-09 05:27:21 +00:00
Vikram S. Adve
4a48c339d6 Added class MachineCacheInfo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1229 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-09 02:20:18 +00:00
Vikram S. Adve
915b58d2ed Add support to print constant arrays and structures.
Align data larger than an L1 cache line on L1 cache line boundary.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1228 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-09 02:19:29 +00:00
Vikram S. Adve
6ad7c553fd Do the same for float->int that we did for int->float earlier.
Also check IsPointerType() in addition to IsIntegral() in several places.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1227 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-09 02:18:16 +00:00
Vikram S. Adve
5b6082eccf Added function UltraSparcInstrInfo::CreateCodeToCopyFloatToInt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1226 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-09 02:16:40 +00:00
Vikram S. Adve
b7048409ae Added class UltraSparcCacheInfo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1225 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-09 02:16:04 +00:00
Vikram S. Adve
5afff3b917 Bug fix: Need to include the stack offset "bias" in assembly code itself.
Added class UltraSparcCacheInfo.
Added function to convert float to int by copying via memory.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1224 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-09 02:15:52 +00:00
Vikram S. Adve
fb1a6c87d6 Use node->getOpCode() instead of node->getMachineInstr()->getOpCode().
Much nicer.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1223 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-09 02:14:20 +00:00
Chris Lattner
cf1ae7cea1 Remove false optimization that basically broke everything
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1219 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-09 01:08:10 +00:00
Chris Lattner
0bf7bad0c3 * Add better caching of data to avoid silly recusions
* Only check to see if uses of instructions can be converted for expressions... so we don't look at all of the uses of a constant.  This was making the code unnecessarily conservative


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1218 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-08 22:06:31 +00:00
Chris Lattner
00d91c6cd8 Add method decl
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1217 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-08 20:55:05 +00:00
Chris Lattner
c0b90e7dd5 Improve raising significantly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1214 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-08 20:19:56 +00:00
Chris Lattner
837bb2ce96 Print the method that makes an instruction invalid
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1213 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-08 19:29:51 +00:00
Ruchira Sasanka
226f1f0b22 corrected insertCode4Spilled ... bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1212 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-08 19:11:30 +00:00
Ruchira Sasanka
5a61d85f97 Uncommented LR spill code insertion
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1207 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-08 16:43:25 +00:00
Vikram S. Adve
ffbba0f325 Bug fix: need to use .reserve for uninitialized data.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1205 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-08 14:29:57 +00:00
Vikram S. Adve
ddf5ff6f8c Bug fix: cannot modify Phi operands while iterating over them!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1203 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-08 05:25:33 +00:00
Vikram S. Adve
e64574ce71 Major change to how defs are found when adding dependences (they
are now found as part of the initial walk of the machine code).
Also memory load/store instructions can be generated for non-memory
LLVM instructions, which wasn't handled before.  It is now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1199 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-08 05:20:23 +00:00
Vikram S. Adve
af1d2c80e0 MachineCodeForMethod is now an annotation on class Method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1198 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-08 05:18:18 +00:00
Vikram S. Adve
7a2f1e7c5d Add handle to TargetMachine object in all Machine...Info classes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1197 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-08 05:15:08 +00:00
Vikram S. Adve
3e95814685 Added support for bitwise logical operators. Use different labels for
for these than for boolean logicals to avoid making Burg diverge.
See Burg manual for more information.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1196 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-08 05:14:02 +00:00
Vikram S. Adve
29ff873c6c Fixed function getEscapedString to follow the Sparc assembly rules
for symbol names!  (And renamed it to getValidSymbolName).
Fixed format for float and other constants.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1195 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-08 05:12:37 +00:00
Vikram S. Adve
ff5a09ee44 Fix bugs in FITOS/D instruction generation.
The space for optional args in the stack frame is now being computed,
so finish the code generation for the variable `alloca'.
Finally, made a major overhaul of how stack frame is managed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1194 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-08 05:04:09 +00:00
Vikram S. Adve
b9c3863e08 Added new function UltraSparcInstrInfo::CreateCodeToCopyIntToFloat.
Also major overhaul of how stack frame is managed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1193 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-08 04:57:53 +00:00
Vikram S. Adve
1c0fba6e9c Removed class RegStackOffsets and used class MachineCodeForMethod
directly to manage stack frame.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1192 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-08 04:56:41 +00:00
Vikram S. Adve
7f37fe5187 Use MachineFrameInfo as base class of UltraSparcFrameInfo, and made
a major overhaul of this class and how stack frames are managed.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1191 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-08 04:55:13 +00:00
Vikram S. Adve
38f5d46aff Added two minor methods.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1187 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-08 04:49:52 +00:00
Vikram S. Adve
12af164c87 Removed class RegStackOffsets and used class MachineCodeForMethod
directly to manage stack frame.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1186 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-08 04:48:50 +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
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
070cf5e47e Correct problem that allows indirect function calls
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1179 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-07 20:12:30 +00:00
Chris Lattner
ea38c0e85c * Switch to operation on pointers with PointerTy more consistently
* Fix misspeling
* Catch SIGFPE for traps
* info XXX now prints the raw contents of the GenericValue
* Switch to calloc instead of malloc (temporarily I hope) to bandaid Olden benchmarks
* Implement binary And & Or
* Convert expressions like this:
     PointerTy SrcPtr = getOperandValue(I->getPtrOperand(), SF).PointerVal;
  to:
    GenericValue SRC = getOperandValue(I->getPtrOperand(), SF);
    PointerTy SrcPtr = SRC.PointerVal;
  because the prior way confuses purify.
* Taint the initial values of the value planes
* Handling 'print bb4' in the interpreter without crashing
* Print nicer stack frames with concise return type
* printf doesn't suck nearly as badly as it used to


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1177 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-07 19:46:27 +00:00
Chris Lattner
8e5c0b473a Killing warnings
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1175 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-07 14:01:59 +00:00
Chris Lattner
161aa5ad93 Add #includes to enable buiding in Release mode
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1174 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-07 13:49:45 +00:00
Chris Lattner
6dad506d81 Squelch warnings about not returning a value
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1173 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-07 13:49:12 +00:00
Chris Lattner
461f02fc19 *Print Stack traces better.
* Use the cache writer for all it's problems.
* print arguments to methods in stack traces.
*Print the current stack from for up/down commands.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1170 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-07 05:31:27 +00:00
Chris Lattner
5af0c4803b * Use cached writer to speed up printing and get symbolic types more consistently
* When a segfault or bus error occurs, stop the program, print a stack trace, and dump the user in the debugger mode


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1169 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-07 04:23:00 +00:00
Chris Lattner
da1fbcc5c3 Implement CachedWriter class to allow module level printing of various components very quickly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1168 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-07 04:21:57 +00:00
Chris Lattner
6a6791b326 Add %p format to printf, which MUST be used when printing pointer values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1166 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-07 02:57:33 +00:00
Chris Lattner
8679005193 Implement log and drand48 for TSP bm
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1165 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-06 22:53:25 +00:00
Chris Lattner
b6d8fd46a2 Add notes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1163 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-06 22:53:11 +00:00
Chris Lattner
c063d385fa Implement sqrt, implement printf better, simpler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1161 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-06 21:52:18 +00:00
Chris Lattner
75747cd9e8 Fix minor bug for shifts
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1160 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-06 21:51:48 +00:00
Chris Lattner
268de0464e Print out the abridged form of the call instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1159 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-06 21:28:12 +00:00
Ruchira Sasanka
d1565abd68 Fixed bug - added code in pushUnconstrainedIGNodes() to check whether a node
is already pushed to stack by a previous call to the same method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1154 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-06 15:25:38 +00:00
Chris Lattner
e34443db3c Fix bugs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1152 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-06 08:34:29 +00:00
Chris Lattner
71344bd650 Fix many bugs. Implement PHI transforms & other cycles
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1151 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-06 08:34:17 +00:00
Chris Lattner
eed1fc7973 Give me PHI's space back
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1150 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-06 08:33:46 +00:00
Vikram S. Adve
04cc49be65 Bug fix: uninitialized variable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1147 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-06 05:11:05 +00:00
Vikram S. Adve
9576b15fcd Bug fix: Printing AdIBef and AdIAft outside the scope where they
were declared, and in some cases when they were unintialized.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1146 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-06 05:01:54 +00:00
Chris Lattner
8f410cac04 Print PHI nodes with zero operands even if they are illegal
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1145 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-06 01:48:45 +00:00
Chris Lattner
c109d30239 Fix bug with ADD nodes and malloc promotion
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1144 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-05 21:13:30 +00:00
Chris Lattner
277b4e4a9b Don't print spurious linking warnings about methods that are never used.
Cleanup ExprTypeConvert a bit.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1141 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-05 19:43:10 +00:00
Chris Lattner
e4f4d8c3ec Use the expression map correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1140 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-05 18:30:53 +00:00
Vikram S. Adve
c352d2c530 Modified graph construction to use one pass to find all defs.
Avoids having to handle some special cases that cause complex interactions
with instr. selection.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1138 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-05 04:04:23 +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
901216d527 New file for expression tree conversion
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1128 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-04 23:24:20 +00:00
Chris Lattner
59cd9f1e9f Refactor code to share stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1127 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-04 23:24:06 +00:00
Chris Lattner
bacec7bc24 * Relax restriction that prevented malloc promotion in certain cases
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1125 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-04 22:11:10 +00:00
Vikram S. Adve
510eec7c89 Generate code for Rem instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1124 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-04 21:59:14 +00:00
Chris Lattner
5cb17410f2 Fix obscure nasty bug with bytecode writing that could cause the last byte to be dropped.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1123 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-04 21:32:41 +00:00
Chris Lattner
b980e18066 * Disable debug output
* fix minor bug with taking datasize of unsized array type
* Insert code to support speculative changes later


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1122 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-04 21:32:11 +00:00
Chris Lattner
f3b976e65f Convert backward conversion of expression trees into a new more powerful bidirectional approach. Add transforms for more instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1121 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-04 20:21:12 +00:00
Vikram S. Adve
b7f06f46a1 Fixed instruction information for RDCCR and WRCCR.
Fixed selection to create a TmpInstruction for each integer CC register
(since it is an implicit side-effect, unlike FP CC registers which are
explicit operands).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1120 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-04 19:34:49 +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
b96939519b Add transformations for Load and GetElementPtr. Fix broken transform with shr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1118 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-04 07:42:17 +00:00
Chris Lattner
ab9f21f4c4 Fix cast instructions that end up in bad places in GCC output
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1117 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-04 07:40:51 +00:00
Ruchira Sasanka
a9e45c8d66 Added an assertion since it seems like AdjList returns an errornous size in method
IGNode::pushOnStack().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1116 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-03 22:01:09 +00:00
Chris Lattner
081431a639 Avoid making a broken transformation!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1115 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-03 21:30:22 +00:00
Chris Lattner
5b497ee7c2 Add new cleanup pass:
//  1. PHI nodes with multiple entries for the same predecessor.  GCC sometimes
//     generates code that looks like this:
//
//  bb7:  br bool %cond1004, label %bb8, label %bb8
//  bb8: %reg119 = phi uint [ 0, %bb7 ], [ 1, %bb7 ]
//
//     which is completely illegal LLVM code.  To compensate for this, we insert
//     an extra basic block, and convert the code to look like this:
//
//  bb7: br bool %cond1004, label %bbX, label %bb8
//  bbX: br label bb8
//  bb8: %reg119 = phi uint [ 0, %bbX ], [ 1, %bb7 ]
//


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1114 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-03 21:08:59 +00:00
Ruchira Sasanka
80b1a1a26a Added support for correct spilling of %ccr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1112 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-03 20:41:22 +00:00
Ruchira Sasanka
3839e6e309 Added code to support correct saving of %ccr across calls
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1111 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-03 19:59:59 +00:00
Chris Lattner
b20807f23e * Export method to merge identically named methods
* Add code to fix PHI nodes that are missing arguments.  These PHI nodes can
  be generated by GCC if there is an uninitialized variable flowing into a merge
  point.  For example:

int foo(int y) {
  int X;
  if (y) X = 1;
  return X;
}


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1110 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-03 19:51:56 +00:00
Ruchira Sasanka
51bc0e7994 Arranged stack frame - needs furhter organization
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1108 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-03 17:14:44 +00:00
Ruchira Sasanka
ef1b0cb9a5 Arranged stack frame - needs furhter organization
Moved InsertCallerSaveInstr to the SparcRegInfo.cpp


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1106 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-03 17:13:27 +00:00