1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-28 22:42:52 +01:00
Commit Graph

1094 Commits

Author SHA1 Message Date
Chris Lattner
8a70c31470 Lots of nonfunctional code cleanups
llvm-svn: 1642
2002-02-03 07:25:25 +00:00
Chris Lattner
76ac6e30bd Add a class forward decl
llvm-svn: 1637
2002-02-03 07:13:04 +00:00
Chris Lattner
43ed408912 General cleanup
llvm-svn: 1628
2002-02-01 04:53:48 +00:00
Chris Lattner
a10c21a9d0 Add more debug output
llvm-svn: 1627
2002-02-01 04:53:36 +00:00
Chris Lattner
71e41586ae * Make debugging output nicer
* Implement pass memory freeing after the pass is unused
* Expose PassManager typedef in Pass.h instead of PassManager.h

llvm-svn: 1617
2002-01-31 18:32:27 +00:00
Chris Lattner
11aaf58393 Provide the right AnalysisID for postdominators
llvm-svn: 1616
2002-01-31 18:29:24 +00:00
Chris Lattner
0d3eaa9575 Eliminate SimplifyCFG.h file, pull everything into the UnifyMethodExitNodes class
llvm-svn: 1613
2002-01-31 01:12:06 +00:00
Chris Lattner
dc15bb209d MethodPass's are now guaranteed to not be run on external methods!
llvm-svn: 1611
2002-01-31 00:51:24 +00:00
Chris Lattner
8d690f189c Implement new pass framework
llvm-svn: 1606
2002-01-31 00:45:31 +00:00
Chris Lattner
2e463f5dbe Convert xforms over to new pass structure.
llvm-svn: 1605
2002-01-31 00:45:11 +00:00
Chris Lattner
d1f09685e3 If an invalid alternative is listed for an argument, print the valid options
llvm-svn: 1604
2002-01-31 00:42:56 +00:00
Chris Lattner
15c05486cc Convert analyses to new pass structure
llvm-svn: 1603
2002-01-31 00:42:27 +00:00
Chris Lattner
e14adc7d65 Implement loop depth calculation in terms of dominators instead of intervals
No problems with irreducibility now

llvm-svn: 1602
2002-01-31 00:42:06 +00:00
Chris Lattner
3d52646383 LoopDepth calculation is now in CFG namespace
llvm-svn: 1601
2002-01-31 00:41:13 +00:00
Chris Lattner
85b82a690e Fix bug where we didn't initialize and finalize basic block passes
llvm-svn: 1599
2002-01-31 00:40:44 +00:00
Chris Lattner
3c0dcb01d4 Checkin new pass framework. This one is more useful and automatically
creates analysis results for passes that need them.   MethodPass's never
have to worry about being invoked on external methods.

llvm-svn: 1594
2002-01-30 23:20:39 +00:00
Chris Lattner
2cab187296 Remove extraneous #includes
llvm-svn: 1588
2002-01-26 22:47:32 +00:00
Chris Lattner
0fea9f487b Remove opt namespace
llvm-svn: 1587
2002-01-26 22:47:07 +00:00
Chris Lattner
d18db4006d This checkin fixes the bug described in:
test/Regression/Assembler/2002-01-24-BadSymbolTableAssert.ll

llvm-svn: 1583
2002-01-25 03:56:34 +00:00
Chris Lattner
1af4d669b3 Check in fix for bug: test/Regression/Assembler/ValueRefineAbsType.ll
llvm-svn: 1582
2002-01-25 03:45:27 +00:00
Chris Lattner
e77bf6231e Implement the clock() function
llvm-svn: 1573
2002-01-23 21:38:07 +00:00
Chris Lattner
c293ab6ae2 * Expose new command line arg --debug-pass for gccas and llc debugging
* Remember to initialize MethodPassBatcher::BBPBatcher instance var in ctor
* Move PassManager::run() from header file

llvm-svn: 1556
2002-01-23 05:49:41 +00:00
Chris Lattner
71ee02c009 Implement new DeadInstElmination pass
remove old comment

llvm-svn: 1555
2002-01-23 05:48:24 +00:00
Chris Lattner
24eb24166b Make it build with 2.95.3
llvm-svn: 1554
2002-01-23 05:47:57 +00:00
Chris Lattner
1728479df5 Oops, misnamed function, didn't override correctly, drat.
llvm-svn: 1528
2002-01-22 03:30:25 +00:00
Chris Lattner
e12b9f9277 Don't insert a useless cast
llvm-svn: 1527
2002-01-22 03:30:06 +00:00
Chris Lattner
4cecd63a42 Rename LowerAllocations.h to ChangeAllocations.h since it now contains the
RaiseAllocations pass as well.

llvm-svn: 1525
2002-01-22 01:04:08 +00:00
Chris Lattner
15d533a331 Ooops, forgot to implement void PassManager::add(BasicBlockPass *BBP)
llvm-svn: 1523
2002-01-22 00:17:48 +00:00
Chris Lattner
83056c99ec Pull RaiseAllocations stuff out of the CleanGCC pass into it's own pass in
the ChangeAllocations.h header file.

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

llvm-svn: 1520
2002-01-21 23:17:48 +00:00
Chris Lattner
071f08916e Chuck fixed the GCC problems so this hack is now unneccesary
llvm-svn: 1519
2002-01-21 23:17:07 +00:00
Chris Lattner
15f43a7af7 Elminate an unused variable
llvm-svn: 1518
2002-01-21 23:16:30 +00:00
Chris Lattner
10a9b7627d Eliminate opt library
llvm-svn: 1516
2002-01-21 23:13:46 +00:00
Chris Lattner
0431e5fad5 Remove dead variable
llvm-svn: 1515
2002-01-21 22:50:38 +00:00
Chris Lattner
d40b986b74 Remove dead variable.
llvm-svn: 1514
2002-01-21 22:44:57 +00:00
Chris Lattner
c00c670e5f Pull stuff out of opt namespace
llvm-svn: 1511
2002-01-21 21:44:38 +00:00
Chris Lattner
bbb4dcdcd1 Rename SwapStructureContents -> IPO/SimpleStructMutation
Move MutateStructTypes.(cpp|h) -> IPO/MutateStructTypes.(cpp|h)

llvm-svn: 1510
2002-01-21 07:52:35 +00:00
Chris Lattner
ebd5417901 Implementation of the new spiffy pass system
llvm-svn: 1508
2002-01-21 07:37:31 +00:00
Chris Lattner
2521ae1011 Implement a more powerful, simpler, pass system. This pass system can figure
out how to run a collection of passes optimially given their behaviors and
charactaristics.

Convert code to use it.

llvm-svn: 1507
2002-01-21 07:31:50 +00:00
Chris Lattner
d0e1f35161 Oops lost a parenthesis somehow :(
llvm-svn: 1504
2002-01-21 01:33:12 +00:00
Chris Lattner
3dc9a2a61f Changes to build successfully with GCC 3.02
llvm-svn: 1503
2002-01-20 22:54:45 +00:00
Ruchira Sasanka
80acf30a7f Fixed a bug in spill cost estimation
llvm-svn: 1500
2002-01-08 16:29:23 +00:00
Ruchira Sasanka
b6d7a004fa PhyRegAlloc.cpp: Added temp area resetting before every call
llvm-svn: 1499
2002-01-07 21:09:06 +00:00
Ruchira Sasanka
b45080c5ba Added more comments
llvm-svn: 1498
2002-01-07 21:03:42 +00:00
Ruchira Sasanka
66b5593b96 removed SizeOfStackOperand constant from the SparcRegInfo class - no longer used
by code.

llvm-svn: 1497
2002-01-07 20:33:44 +00:00
Ruchira Sasanka
1d566afc16 Added more comments
llvm-svn: 1496
2002-01-07 20:28:49 +00:00
Ruchira Sasanka
04da4f197f Added comments and correct logic for finding register sizes.
llvm-svn: 1494
2002-01-07 19:20:28 +00:00
Ruchira Sasanka
222c51efe9 Added destructors and comments.
Added correct spill candidate selection logic.

llvm-svn: 1493
2002-01-07 19:19:18 +00:00
Ruchira Sasanka
3d5efa3be1 Added comments, destructors where necessary.
llvm-svn: 1491
2002-01-07 19:16:26 +00:00
Vikram S. Adve
b61dccd269 Eliminate function getIndicesBROKEN().
llvm-svn: 1486
2001-12-15 00:37:12 +00:00
Vikram S. Adve
0607fbbf01 Eliminate all uses of memInst->getIndicesBROKEN().
llvm-svn: 1485
2001-12-15 00:36:32 +00:00
Vikram S. Adve
1d755bccee getIndexedOffset() shd take vector of Values, not of Constants!
llvm-svn: 1484
2001-12-15 00:35:48 +00:00
Vikram S. Adve
605a47ebe4 Remove int hack to allow unsigned numbers greater than 2^63 - 1...
llvm-svn: 1483
2001-12-15 00:33:36 +00:00
Chris Lattner
37ba4e2bb7 initial checkin
llvm-svn: 1480
2001-12-14 16:52:21 +00:00
Chris Lattner
59918ae040 * Support the new -q flag for automated tests
* Remove unsized array support
* Add pointer indexing support

llvm-svn: 1477
2001-12-14 16:49:29 +00:00
Chris Lattner
8e4844c07b * Assert that indices are valid for an indexing instruction.
* Add support for indexing into pointers
* Remove support for unsized arrays

llvm-svn: 1472
2001-12-14 16:43:26 +00:00
Chris Lattner
eb03e839bc Rename ConstPoolVals.cpp to Constants.cpp
llvm-svn: 1471
2001-12-14 16:42:30 +00:00
Chris Lattner
e443a8ff8d Remove unsized array support
Add new SequentialType class

llvm-svn: 1470
2001-12-14 16:41:56 +00:00
Chris Lattner
ba664bbc27 Make strings SByte* arrays instead of UByte * arrays
llvm-svn: 1469
2001-12-14 16:41:18 +00:00
Chris Lattner
98a6e485b0 * isFirstClassType is now provided by the Type class
* Add ReplaceInstWithInst

llvm-svn: 1468
2001-12-14 16:39:22 +00:00
Chris Lattner
553ec6b72f * add ReplaceInstWithInst
* Add support for pointer indexing
* Fix minor bugs that are majorly annoying

llvm-svn: 1467
2001-12-14 16:38:59 +00:00
Chris Lattner
9e6ccdd858 Remove unsized array support
llvm-svn: 1466
2001-12-14 16:38:04 +00:00
Chris Lattner
cd134c6891 * Support pointer indexing
* Unsized arrays are a thing of the past, remove DoInsertArrayCast family
* Remove cases were we would get into infinite loops because we would insert a cast
  which would then be removed, inserting a different cast, ad infinitum...
* Remove some code that should be redundant with ExprTypeConvert code

llvm-svn: 1465
2001-12-14 16:37:52 +00:00
Chris Lattner
1dc9744cc7 Many many changes and bugfixes:
* Remove support for unsized arrays
* Add pointer indexing support
* Allow more arbitrary malloc type changes (which are too generous currently
  and should be fixed in the future)
* Allow more and better conversions

llvm-svn: 1464
2001-12-14 16:35:53 +00:00
Chris Lattner
315df5b058 The proper prototype for malloc returns a pointer, not an unsized array
llvm-svn: 1463
2001-12-14 16:32:20 +00:00
Chris Lattner
831b4ac558 Allow pointer indexing
llvm-svn: 1462
2001-12-14 16:31:26 +00:00
Chris Lattner
43c92f9dbd Remove unsized array support
llvm-svn: 1461
2001-12-14 16:30:51 +00:00
Chris Lattner
8ab6f31913 Add pointer indexing support
llvm-svn: 1460
2001-12-14 16:30:09 +00:00
Chris Lattner
2cd50171de Don't waste as much horizontal space on #uses flag when printing
llvm-svn: 1459
2001-12-14 16:29:12 +00:00
Chris Lattner
a1ba456c49 * Fix cases where we were calling Type->getName() instead of Type->getDescription()
* Remove unsized array support
* Malloc/alloca do not require that the first element be an unsized array to be an
  array allocation

llvm-svn: 1458
2001-12-14 16:28:42 +00:00
Chris Lattner
6b2dc21b63 * 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
* Revamp code to use printf calls instead of the old style print_<type>
  calls.
* Simplify code

llvm-svn: 1457
2001-12-14 16:26:05 +00:00
Ruchira Sasanka
58691e18af added a section on how to modify live variable code to use LLVM instructions
instead of machine instructions.

llvm-svn: 1451
2001-12-13 21:25:46 +00:00
Chris Lattner
e5172702f4 Not just arrays are unsized
llvm-svn: 1450
2001-12-13 00:46:11 +00:00
Chris Lattner
488f202019 Assertion could never fail because another one would in it's place. :)
llvm-svn: 1449
2001-12-13 00:45:40 +00:00
Chris Lattner
44a0bf36c6 Some programs are using BB's as values, until we resolve this. Disable the assert
llvm-svn: 1448
2001-12-13 00:45:06 +00:00
Chris Lattner
eed30bc7da Build runtime library with local GCCAS
llvm-svn: 1447
2001-12-13 00:44:23 +00:00
Chris Lattner
472385127d Implement sprintf
llvm-svn: 1445
2001-12-13 00:43:47 +00:00
Chris Lattner
9a7dd44f2c Swap operands now preserves the semantics of the binary operator by changing
the opcode of the instruction if possible.

llvm-svn: 1444
2001-12-13 00:43:03 +00:00
Chris Lattner
9d4207dbaf Add debugging to make a more useful message if a value gets constructed with a null type
llvm-svn: 1443
2001-12-13 00:41:27 +00:00
Ruchira Sasanka
05aed40cfa Added more comments. Added code to destructor in MethodLiveVarInfo to delete
LiveVarSet caches.

llvm-svn: 1435
2001-12-08 21:05:27 +00:00
Ruchira Sasanka
9d26f00cfb Added comments are more documentation info
llvm-svn: 1434
2001-12-08 21:04:22 +00:00
Chris Lattner
d76171a512 Implement more general conversions for getelementptr instructions
llvm-svn: 1432
2001-12-07 04:40:30 +00:00
Chris Lattner
9ae054fd1a Remove code that is superceeded by code in ExprTypeConvert.cpp
llvm-svn: 1431
2001-12-07 04:39:01 +00:00
Chris Lattner
e3b8fb7426 Don't insert scales of 1 :)
llvm-svn: 1430
2001-12-07 04:26:02 +00:00
Chris Lattner
9421444244 Do not pessimize users of this function. Fix logic.
llvm-svn: 1428
2001-12-06 18:06:37 +00:00
Chris Lattner
e3b57cfe8f We can do cast-add elimination even on casts that reinterpret
llvm-svn: 1427
2001-12-06 18:06:13 +00:00
Chris Lattner
e23b6591f9 Fix bug that caused invalid transformations to be applied
llvm-svn: 1426
2001-12-06 18:05:55 +00:00
Chris Lattner
d89106f96b Actually return true when a change has been made
llvm-svn: 1425
2001-12-05 19:41:33 +00:00
Chris Lattner
8ca0f9efd6 Handle more complex array indexing expressions
llvm-svn: 1424
2001-12-05 19:41:16 +00:00
Chris Lattner
662a17ba5f Fix pessimizations on sized arrays
llvm-svn: 1423
2001-12-05 19:40:32 +00:00
Chris Lattner
57e64f9985 Fix a few bugs. Fix pessimization handling sized arrays
llvm-svn: 1422
2001-12-05 19:39:15 +00:00
Chris Lattner
fb6a288211 "fix" problems processing floating point expressions
llvm-svn: 1421
2001-12-05 19:38:29 +00:00
Chris Lattner
d1a8ed7d8c Hrm, don't do debugging output when debugging is off. :(
llvm-svn: 1420
2001-12-05 06:40:17 +00:00
Chris Lattner
05fb7c607f Fixes to type conversion stuff to match induction variables more frequently
llvm-svn: 1417
2001-12-05 06:34:00 +00:00
Chris Lattner
53fcedeb3c Fix a bug that clobbered the step value on some inputs
llvm-svn: 1416
2001-12-05 06:32:30 +00:00
Chris Lattner
7059b60173 Fix a bug introduced by "internal linkage" work.
llvm-svn: 1415
2001-12-04 18:01:49 +00:00
Chris Lattner
8ec5ceb110 Fix bugs, don't do external methods which causes segv.
llvm-svn: 1414
2001-12-04 08:13:06 +00:00
Chris Lattner
c1b018dcf4 Remove printouts
llvm-svn: 1413
2001-12-04 08:12:53 +00:00
Chris Lattner
83d8d32cfa Fix a pessimization due to sucky LI testing
llvm-svn: 1412
2001-12-04 08:12:47 +00:00
Chris Lattner
bd85988c94 Implement induction variable simplification
llvm-svn: 1411
2001-12-04 04:32:29 +00:00
Chris Lattner
d865a13064 Allow hyphens in identifier names
llvm-svn: 1409
2001-12-04 04:31:30 +00:00
Chris Lattner
c4a5815033 Renamed inst_const_iterator -> const_inst_iterator
Renamed op_const_iterator   -> const_op_iterator
Renamed PointerType::getValueType() -> PointerType::getElementType()

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

llvm-svn: 1407
2001-12-03 22:26:30 +00:00
Chris Lattner
bcf2df7058 Split the PHINode class out from the iOther.h file into the iPHINode.h file
llvm-svn: 1405
2001-12-03 18:02:31 +00:00
Chris Lattner
a337749b35 Initial checkin of indvar stuff
llvm-svn: 1404
2001-12-03 17:28:42 +00:00
Chris Lattner
cf360e3fd8 Compile the scalar directory
llvm-svn: 1403
2001-12-03 17:28:15 +00:00
Chris Lattner
a302c202ab Induction variables must be phi nodes
llvm-svn: 1402
2001-12-03 17:27:42 +00:00
Chris Lattner
f90b19a71c Move support directory
llvm-svn: 1401
2001-11-29 16:32:16 +00:00
Chris Lattner
463cc31132 Create a new #include "Support/..." directory structure to move things
from "llvm/Support/..." that are not llvm dependant.

Move files and fix #includes

llvm-svn: 1400
2001-11-27 00:03:19 +00:00
Chris Lattner
cead7793a7 Move DataTypes.h from llvm/Support to just Support
llvm-svn: 1399
2001-11-26 23:04:08 +00:00
Chris Lattner
7b91b28853 Turn off debug info
llvm-svn: 1396
2001-11-26 19:36:58 +00:00
Chris Lattner
90bdf397e1 Use pointertype where appropriate
llvm-svn: 1392
2001-11-26 19:20:16 +00:00
Chris Lattner
f4cbfaed0a Remove invalid,unneccesary ## token
llvm-svn: 1391
2001-11-26 19:19:27 +00:00
Chris Lattner
37ad91c9dc Implement internal
llvm-svn: 1385
2001-11-26 19:14:56 +00:00
Chris Lattner
84d72f9596 Make strings be internal
llvm-svn: 1384
2001-11-26 19:14:33 +00:00
Chris Lattner
2459d65720 Remove debugging output
llvm-svn: 1383
2001-11-26 19:14:16 +00:00
Chris Lattner
c56685dca6 Support internal linkage
llvm-svn: 1382
2001-11-26 19:14:03 +00:00
Chris Lattner
5753d430a6 Build IPO directory
llvm-svn: 1381
2001-11-26 18:59:30 +00:00
Chris Lattner
dce8511222 Implement support for internal methods
llvm-svn: 1380
2001-11-26 18:59:18 +00:00
Chris Lattner
4d2046a71e Include const prop as part of -raise
llvm-svn: 1379
2001-11-26 18:58:55 +00:00
Chris Lattner
9158ea6980 * 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

llvm-svn: 1378
2001-11-26 18:58:34 +00:00
Chris Lattner
d10d3f1015 Misc cleanups
llvm-svn: 1377
2001-11-26 18:57:38 +00:00
Chris Lattner
8fd567523c Expose constant propogation of an instruction in a clean way
llvm-svn: 1376
2001-11-26 18:57:12 +00:00
Chris Lattner
b914467e57 Stuff after a #endif is not valid CPP input and breaks some compilers
llvm-svn: 1375
2001-11-26 18:56:52 +00:00
Chris Lattner
e577171af8 Implement internal method support
llvm-svn: 1374
2001-11-26 18:56:10 +00:00
Chris Lattner
2a1613d3b2 Implement support for internal methods
llvm-svn: 1373
2001-11-26 18:54:16 +00:00
Chris Lattner
997aede09d Implement writer support for Loops, Induction Variables, and CallGraphs
llvm-svn: 1372
2001-11-26 18:53:29 +00:00
Chris Lattner
86b47687fa Make Mul work right
Make sub work right

llvm-svn: 1371
2001-11-26 18:53:07 +00:00
Chris Lattner
aae473d198 Fix a bad assertion to be correct . The root basic block can be used by PHI nodes.
llvm-svn: 1370
2001-11-26 18:52:02 +00:00
Chris Lattner
7b9b59f437 Implement a new entry node that has edges to all external methods in the module
llvm-svn: 1369
2001-11-26 18:51:25 +00:00
Chris Lattner
118f8023f8 Implement DCE of global values
llvm-svn: 1360
2001-11-26 18:42:17 +00:00
Chris Lattner
c969e45ded * Implement dominator based loop identification
* Implement cleaner induction variable identification

llvm-svn: 1359
2001-11-26 18:41:20 +00:00
Chris Lattner
136ed3b396 * Implement array indexing in lli
* Add external atoi method as well as floor, and srand

llvm-svn: 1355
2001-11-26 18:18:18 +00:00
Chris Lattner
b19c837bd3 Support Array Indexing
llvm-svn: 1348
2001-11-26 17:02:05 +00:00
Chris Lattner
da7f31493c Implement: isLosslesslyConvertableTo and new CompositeType base class
llvm-svn: 1347
2001-11-26 17:01:47 +00:00
Chris Lattner
1e270e0e2b If a name conflict occurs when inserting a value, rename it.
llvm-svn: 1346
2001-11-26 17:01:18 +00:00
Chris Lattner
e996313daa Support array indexing
llvm-svn: 1345
2001-11-26 17:00:43 +00:00
Chris Lattner
4694a03e25 Support Composite's, not just structs
llvm-svn: 1344
2001-11-26 17:00:13 +00:00
Chris Lattner
ab740485ab losslessCastableTypes is moved to Type class
getStructOffsetType supports array indexing

llvm-svn: 1343
2001-11-26 16:59:47 +00:00
Chris Lattner
c1f0351928 Support selectable structure transformations
llvm-svn: 1342
2001-11-26 16:59:10 +00:00
Chris Lattner
98a6ef2594 Support mutation of array indexing
llvm-svn: 1341
2001-11-26 16:58:33 +00:00
Chris Lattner
95b74bb24f Clean up code, implement array indexing stuff
llvm-svn: 1340
2001-11-26 16:58:14 +00:00
Chris Lattner
a9084f9746 Implement array indexing reverse engineering
llvm-svn: 1339
2001-11-26 16:57:31 +00:00
Chris Lattner
9236d30e29 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

llvm-svn: 1338
2001-11-26 16:56:19 +00:00
Chris Lattner
47661d9be5 Implement array indexing
llvm-svn: 1337
2001-11-26 16:54:55 +00:00
Chris Lattner
a459583ba8 Implement array indexing with uints
llvm-svn: 1336
2001-11-26 16:54:11 +00:00
Chris Lattner
c6539d556a * Implement more powerful expr analysis of cast instructions
llvm-svn: 1335
2001-11-26 16:53:50 +00:00
Ruchira Sasanka
50f9f0242a commented out popAllTempValues since it leads to a bug - see code
llvm-svn: 1327
2001-11-15 22:03:04 +00:00
Ruchira Sasanka
771ffc7640 Commented some popTempArg.. since it leads to a bug
llvm-svn: 1326
2001-11-15 22:02:06 +00:00
Ruchira Sasanka
647337ad60 Added naming to inserted phi copy values - for easy debugging
llvm-svn: 1325
2001-11-15 20:46:40 +00:00
Ruchira Sasanka
22092f4ced changed since names of some methods in PhyRegAlloc changed
llvm-svn: 1324
2001-11-15 20:25:07 +00:00
Ruchira Sasanka
63203e9c07 Fixed a bug in setReLRegsUsedByMI
llvm-svn: 1323
2001-11-15 20:23:19 +00:00
Ruchira Sasanka
bcd55f277e Changed some names of methods, added const etc.
llvm-svn: 1322
2001-11-15 20:22:37 +00:00
Vikram S. Adve
8fbf76e494 Fix use of AllocateLocalVar for alloca instruction!
llvm-svn: 1319
2001-11-15 15:22:39 +00:00
Vikram S. Adve
bcd2ba2fea Modify AllocateLocalVar method to take a size argument.
llvm-svn: 1318
2001-11-15 15:22:26 +00:00
Ruchira Sasanka
897fbc8db8 fixed setUsedRegAtMI
llvm-svn: 1317
2001-11-15 15:00:53 +00:00
Vikram S. Adve
44df059d4d Print incoming arguments and return values.
llvm-svn: 1315
2001-11-15 15:00:16 +00:00
Vikram S. Adve
b9a32dab69 Fix int->float conversion.
llvm-svn: 1314
2001-11-15 14:59:56 +00:00
Chris Lattner
e19d5b4615 -cleangcc pass now remove type names that are never referenced and type names for pointers to primitive types.
llvm-svn: 1312
2001-11-15 04:34:46 +00:00
Ruchira Sasanka
9892c23157 Changed phi elimination code
llvm-svn: 1311
2001-11-15 00:27:14 +00:00
Vikram S. Adve
48b926e060 Fix cute little bug that was causing the last
structure offset to be ignored in computing an offset!

llvm-svn: 1310
2001-11-14 21:24:44 +00:00
Ruchira Sasanka
7b4fe5d51b Small changed to printing a machine operand - It the operand is a def, it prints
a star after it - only for debugging

llvm-svn: 1309
2001-11-14 20:05:23 +00:00
Vikram S. Adve
a8f8fd19c0 Don't assume constant operand can only be in position 1!
llvm-svn: 1308
2001-11-14 18:49:45 +00:00
Vikram S. Adve
3baa8cefc0 Add function returning which operand holds immediate constant
for a given opcode.

llvm-svn: 1307
2001-11-14 18:48:36 +00:00
Vikram S. Adve
9ed66f8e94 Idiotic error in last fix.
llvm-svn: 1306
2001-11-14 17:55:02 +00:00
Vikram S. Adve
e3c0a06ef9 Don't need to load a NULL pointer constant from memory!
llvm-svn: 1305
2001-11-14 17:24:49 +00:00
Vikram S. Adve
1c7f39af14 Change latency of SETX to improve schedule -- just a hack.
llvm-svn: 1304
2001-11-14 15:54:44 +00:00
Ruchira Sasanka
6d6f616a06 Added support method for setting interference for pseudo instructions
llvm-svn: 1303
2001-11-14 15:37:13 +00:00
Ruchira Sasanka
0f38515129 Added M_PSEUDO_FLAG for SETX .. instr
llvm-svn: 1301
2001-11-14 15:35:13 +00:00
Ruchira Sasanka
f00a3e0aab Added interference for args in pseudo instructions
llvm-svn: 1300
2001-11-14 15:33:58 +00:00
Chris Lattner
80788c6947 Rename cruft
llvm-svn: 1299
2001-11-14 11:28:18 +00:00
Chris Lattner
4046596beb Remove much cruft from the MemAccessInst instruction
llvm-svn: 1298
2001-11-14 11:27:58 +00:00
Chris Lattner
f45cb25619 Better heuristics for handling arrays
llvm-svn: 1296
2001-11-14 11:02:49 +00:00
Ruchira Sasanka
a39f918171 commented out lines printing code after scheduling
llvm-svn: 1295
2001-11-13 23:12:53 +00:00
Ruchira Sasanka
b1e6823bc1 Fixed a bug concering LR spilling. Earlier, added spilled code was not inserted
into the instruction stream correctly.

llvm-svn: 1294
2001-11-13 23:09:30 +00:00
Ruchira Sasanka
7fe45d1136 Changed checking for invalid register number - earlier it was uisng a contant
llvm-svn: 1293
2001-11-13 23:08:19 +00:00
Chris Lattner
2d05a0dd7d Implement some more rand functions for em3d benchmark
llvm-svn: 1291
2001-11-13 05:46:08 +00:00
Chris Lattner
71a0797f80 * 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

llvm-svn: 1288
2001-11-13 05:01:36 +00:00
Chris Lattner
8c4520cd1e Minor style cleanups
llvm-svn: 1287
2001-11-13 04:59:58 +00:00
Chris Lattner
3b2e10698f Avoid assertion failure when taking size of unsized array. Todo item herE
llvm-svn: 1286
2001-11-13 04:59:41 +00:00
Vikram S. Adve
3df85d6132 Do the same for allocating spills to get their alignment right too.
llvm-svn: 1285
2001-11-12 23:40:22 +00:00
Vikram S. Adve
af9c0a766a 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.

llvm-svn: 1284
2001-11-12 23:26:35 +00:00
Vikram S. Adve
0bd498dd38 Bug fix in offset alignment computations: don't subtract the padding
value from size *before* subtracting size from offset!

llvm-svn: 1283
2001-11-12 23:26:23 +00:00
Chris Lattner
7d0854c71e Remove debug info :(
llvm-svn: 1280
2001-11-12 21:52:57 +00:00
Chris Lattner
a6ada3716c Fix bug in new assertion
llvm-svn: 1279
2001-11-12 21:48:38 +00:00
Ruchira Sasanka
3484bbb97c Fixed a bug with pervious ColorCallArg
llvm-svn: 1278
2001-11-12 20:54:19 +00:00
Ruchira Sasanka
67478b7484 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.

llvm-svn: 1277
2001-11-12 20:31:47 +00:00
Chris Lattner
3dc54c19b3 Add an assertion check
llvm-svn: 1276
2001-11-12 20:30:32 +00:00
Chris Lattner
2dce653a78 I don't know what I was thinking
llvm-svn: 1275
2001-11-12 20:30:12 +00:00
Chris Lattner
ab0f8a05f6 Print percentages for profiling info better
llvm-svn: 1274
2001-11-12 20:13:14 +00:00
Chris Lattner
184137a419 Fix minor bug
llvm-svn: 1273
2001-11-12 20:13:04 +00:00
Ruchira Sasanka
d6c5e0f535 For phi elimination, now we are generating only one instruction
using cpValue2Value instead of
passing vector to createCopyInstructionByType.

llvm-svn: 1272
2001-11-12 19:42:27 +00:00
Ruchira Sasanka
3e193c7709 Changed insert instructions only for CONSTANTS - back to original
llvm-svn: 1271
2001-11-12 19:32:04 +00:00
Vikram S. Adve
a3f0115c71 Disable use of the Phi machine instruction which is no longer needed
for register allocation.

llvm-svn: 1270
2001-11-12 18:54:11 +00:00
Vikram S. Adve
624846d3fd 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.

llvm-svn: 1269
2001-11-12 18:53:43 +00:00
Chris Lattner
29ad087a83 Print profile info if exit() is called
llvm-svn: 1268
2001-11-12 16:28:48 +00:00
Chris Lattner
28afda8ca4 Hack a structure profiling option together
llvm-svn: 1267
2001-11-12 16:19:45 +00:00
Ruchira Sasanka
426d6e2b10 Added phi elimination code
llvm-svn: 1265
2001-11-12 14:45:33 +00:00
Ruchira Sasanka
9b7638e108 Added phi elimination code - not final
llvm-svn: 1264
2001-11-12 14:44:50 +00:00
Vikram S. Adve
1fc185b8e7 Improved printing routines.
llvm-svn: 1263
2001-11-12 14:19:47 +00:00
Vikram S. Adve
3a5bf13976 Major improvement to how nodes are built for a BB.
LLVM instruction is no longer recorded in each node, but BB is.

llvm-svn: 1262
2001-11-12 14:18:01 +00:00
Vikram S. Adve
31372d2b26 Adjust all stack variable offsets to be aligned by size.
llvm-svn: 1261
2001-11-12 05:17:23 +00:00
Vikram S. Adve
bb424a4fe1 Fix dumb bug in alignment adjustment code!
llvm-svn: 1260
2001-11-12 05:16:39 +00:00
Vikram S. Adve
2b5e92123c Fix bogus code that was eliminating needed args.
llvm-svn: 1259
2001-11-11 23:11:36 +00:00
Ruchira Sasanka
661bf856f5 Fixed FP and SP usage. SP for outgoing args - for everything else FP
llvm-svn: 1258
2001-11-11 22:37:51 +00:00
Ruchira Sasanka
9d20df621c cahnged StackPointer accesses to FramePointer
llvm-svn: 1257
2001-11-11 21:49:37 +00:00
Vikram S. Adve
51265e7072 Fix errors in computing downgrowing offsets, and in
computing size of extra outgoing args.

llvm-svn: 1256
2001-11-11 21:23:33 +00:00
Vikram S. Adve
b98d36462b Down-growing offsets from FP should start at 0, not -1.
llvm-svn: 1255
2001-11-11 21:22:11 +00:00
Vikram S. Adve
0b0bd6e749 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!

llvm-svn: 1254
2001-11-11 01:23:27 +00:00
Ruchira Sasanka
bf9791fe90 Changed code to ignore Phi Nodes in PhyRegAlloc
llvm-svn: 1253
2001-11-10 21:21:36 +00:00
Ruchira Sasanka
bf341d2d5d Corrected reodering code for instructions inserted before calls
llvm-svn: 1252
2001-11-10 21:20:43 +00:00
Chris Lattner
053906abc0 Initail checking of structure swapper
llvm-svn: 1248
2001-11-10 07:28:25 +00:00
Chris Lattner
79fd0836bb Initial checkin of structure mutator
llvm-svn: 1246
2001-11-10 07:26:31 +00:00
Vikram S. Adve
ca73b36000 Several bug fixes in printing constants, particularly with unsized
arrays and multi-dimensional arrays.

llvm-svn: 1239
2001-11-10 02:03:06 +00:00
Vikram S. Adve
cbc2cec180 Must generate an instruction for GetElementPtr if single user is not
a memory instruction!

llvm-svn: 1238
2001-11-10 01:05:26 +00:00
Ruchira Sasanka
e98f033070 Disabled some debuggin messages
llvm-svn: 1237
2001-11-10 00:26:55 +00:00
Ruchira Sasanka
699d104906 Coalesing bug fix - now checks for the same regType instead of the same
regClass since FP class has two reg Types.

llvm-svn: 1236
2001-11-10 00:20:24 +00:00
Ruchira Sasanka
c32ebd1a4e No major change
llvm-svn: 1235
2001-11-09 23:49:42 +00:00
Ruchira Sasanka
a4a64f3755 Added code for correct reordering of call arguments
llvm-svn: 1234
2001-11-09 23:49:14 +00:00
Chris Lattner
37955a1d28 New pass to find types in use by a program
llvm-svn: 1232
2001-11-09 05:27:21 +00:00
Vikram S. Adve
68306457ae Added class MachineCacheInfo.
llvm-svn: 1229
2001-11-09 02:20:18 +00:00
Vikram S. Adve
6c5f14ebbc Add support to print constant arrays and structures.
Align data larger than an L1 cache line on L1 cache line boundary.

llvm-svn: 1228
2001-11-09 02:19:29 +00:00
Vikram S. Adve
91f30ac019 Do the same for float->int that we did for int->float earlier.
Also check IsPointerType() in addition to IsIntegral() in several places.

llvm-svn: 1227
2001-11-09 02:18:16 +00:00
Vikram S. Adve
61173418a7 Added function UltraSparcInstrInfo::CreateCodeToCopyFloatToInt.
llvm-svn: 1226
2001-11-09 02:16:40 +00:00
Vikram S. Adve
8766f0ad37 Added class UltraSparcCacheInfo.
llvm-svn: 1225
2001-11-09 02:16:04 +00:00
Vikram S. Adve
1b7faa892c 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.

llvm-svn: 1224
2001-11-09 02:15:52 +00:00
Vikram S. Adve
cc746868d7 Use node->getOpCode() instead of node->getMachineInstr()->getOpCode().
Much nicer.

llvm-svn: 1223
2001-11-09 02:14:20 +00:00
Chris Lattner
de13795a04 Remove false optimization that basically broke everything
llvm-svn: 1219
2001-11-09 01:08:10 +00:00
Chris Lattner
7969ed3025 * 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

llvm-svn: 1218
2001-11-08 22:06:31 +00:00
Chris Lattner
d0f1f10bec Add method decl
llvm-svn: 1217
2001-11-08 20:55:05 +00:00
Chris Lattner
fdc70e08d0 Improve raising significantly
llvm-svn: 1214
2001-11-08 20:19:56 +00:00
Chris Lattner
41f173e9d0 Print the method that makes an instruction invalid
llvm-svn: 1213
2001-11-08 19:29:51 +00:00
Ruchira Sasanka
5ebbfbdd2e corrected insertCode4Spilled ... bug.
llvm-svn: 1212
2001-11-08 19:11:30 +00:00
Ruchira Sasanka
1f95b36e06 Uncommented LR spill code insertion
llvm-svn: 1207
2001-11-08 16:43:25 +00:00
Vikram S. Adve
9073d4427a Bug fix: need to use .reserve for uninitialized data.
llvm-svn: 1205
2001-11-08 14:29:57 +00:00
Vikram S. Adve
a0da8fc9c5 Bug fix: cannot modify Phi operands while iterating over them!
llvm-svn: 1203
2001-11-08 05:25:33 +00:00
Vikram S. Adve
841ffd6a44 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.

llvm-svn: 1199
2001-11-08 05:20:23 +00:00
Vikram S. Adve
149bd3837d MachineCodeForMethod is now an annotation on class Method.
llvm-svn: 1198
2001-11-08 05:18:18 +00:00
Vikram S. Adve
2bb61e90a3 Add handle to TargetMachine object in all Machine...Info classes.
llvm-svn: 1197
2001-11-08 05:15:08 +00:00
Vikram S. Adve
347a3cab9e 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.

llvm-svn: 1196
2001-11-08 05:14:02 +00:00
Vikram S. Adve
ef146ce336 Fixed function getEscapedString to follow the Sparc assembly rules
for symbol names!  (And renamed it to getValidSymbolName).
Fixed format for float and other constants.

llvm-svn: 1195
2001-11-08 05:12:37 +00:00
Vikram S. Adve
a7383895cd 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.

llvm-svn: 1194
2001-11-08 05:04:09 +00:00
Vikram S. Adve
61f4694d6e Added new function UltraSparcInstrInfo::CreateCodeToCopyIntToFloat.
Also major overhaul of how stack frame is managed.

llvm-svn: 1193
2001-11-08 04:57:53 +00:00
Vikram S. Adve
77dca53970 Removed class RegStackOffsets and used class MachineCodeForMethod
directly to manage stack frame.

llvm-svn: 1192
2001-11-08 04:56:41 +00:00
Vikram S. Adve
1cc04e4908 Use MachineFrameInfo as base class of UltraSparcFrameInfo, and made
a major overhaul of this class and how stack frames are managed.

llvm-svn: 1191
2001-11-08 04:55:13 +00:00
Vikram S. Adve
3cefc04c0a Added two minor methods.
llvm-svn: 1187
2001-11-08 04:49:52 +00:00
Vikram S. Adve
2c8710f0c4 Removed class RegStackOffsets and used class MachineCodeForMethod
directly to manage stack frame.

llvm-svn: 1186
2001-11-08 04:48:50 +00:00
Vikram S. Adve
2cdcbfb6e0 Major overhaul of stack frame management.
llvm-svn: 1185
2001-11-08 04:47:06 +00:00
Vikram S. Adve
848709f127 Removed MachineCodeForMethod object and made it an annotation.
llvm-svn: 1183
2001-11-08 04:38:58 +00:00