Chris Lattner
62815d9672
Add convenience ctor to BranchInst
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3676 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-10 23:54:58 +00:00
Chris Lattner
9e6161cfd1
Fix the last of the silly bugs I just introduced. :(
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3674 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-10 23:46:10 +00:00
Chris Lattner
8606d9924b
Fix bugs in previous checkins
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3673 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-10 23:31:28 +00:00
Chris Lattner
08c2e4838d
Fix bug in previous checkin
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3672 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-10 23:31:12 +00:00
Chris Lattner
f283608f2e
Add cannonicalization of shl X, 1 -> add X, X
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3671 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-10 23:04:09 +00:00
Chris Lattner
533ce5c070
Fix minor problems in previous checkin
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3669 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-10 22:52:51 +00:00
Chris Lattner
228b14b71e
Fix minor problems in previous checkin
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3668 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-10 22:52:49 +00:00
Chris Lattner
f2d2d0bb13
Clean up code due to auto-insert constructors
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3666 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-10 22:38:49 +00:00
Chris Lattner
1d608abbc0
Clean up code due to auto-insert constructors
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3665 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-10 22:38:47 +00:00
Chris Lattner
9afdb2998b
Clean up code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3664 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-10 22:38:06 +00:00
Chris Lattner
1cff96a77c
Use explicit ctor
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3663 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-10 22:37:46 +00:00
Chris Lattner
9a66d5109e
Tighten up assertion checking for binary operators, not allowing invalid
...
instructions to _even be created_.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3661 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-10 19:57:53 +00:00
Chris Lattner
4a6482ba9c
Tighten up error checking in parser, disallowing instructions that f.e.,
...
add pointers together.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3660 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-10 19:57:26 +00:00
Chris Lattner
e29f6a85ee
Fix bug: test/Regression/Transforms/LevelRaise/2002-09-10-PointerAdds.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3658 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-10 19:42:53 +00:00
Chris Lattner
2a7c23ef91
Simplify code (somtimes dramatically), by using the new "auto-insert" feature
...
of instruction constructors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3656 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-10 17:04:02 +00:00
Chris Lattner
3ea5cb0df1
Simplify code (somtimes dramatically), by using the new "auto-insert" feature
...
of instruction constructors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3655 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-10 17:03:06 +00:00
Chris Lattner
3bc06b33da
Add support for printing constpointerrefs more nicely
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3654 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-10 15:53:49 +00:00
Chris Lattner
2aa831120c
Add capability to insert an instruction into a basic block immediately after
...
it is created, as part of the ctor call.
Eliminate the GenericBinaryInst class
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3653 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-10 15:45:53 +00:00
Chris Lattner
6e65cda0ec
Remove extra #include
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3652 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-10 15:43:30 +00:00
Chris Lattner
74493a4c6e
Clean up indvar printing
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3650 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-10 15:35:39 +00:00
Chris Lattner
5e76140536
* Clean up code a little bit
...
* Fix bug: test/Regression/Transforms/IndVarsSimplify/2002-09-09-PointerIndVar.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3644 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-10 05:24:05 +00:00
Chris Lattner
712653908e
Fix typeo in assertion message
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3641 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-10 04:52:59 +00:00
Chris Lattner
1b9029c2f2
Hack unneccesary now that shifts of pointers are no longer legal!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3640 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-10 03:50:54 +00:00
Chris Lattner
1a143aef99
Do not allow adds of pointer types, or many other operations on pointer types.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3638 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-09 20:26:04 +00:00
Chris Lattner
871d2ce690
Disallow creation of pointer typed shift instructions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3637 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-09 20:25:21 +00:00
Vikram S. Adve
ec7f482d90
Silly bug fix: Machine code vector could be empty for a no-op cast instruction,
...
e.g., cast double to double.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3633 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-09 14:54:21 +00:00
Chris Lattner
5fb724332a
Factor silly code duplication out
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3627 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-08 21:47:54 +00:00
Chris Lattner
e30e1cf029
Fix Bug: test/Regression/Transforms/InstCombine/2002-09-08-PointerShiftBug.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3626 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-08 21:39:07 +00:00
Chris Lattner
823c4abb58
Make sure the leakdetector is told about temporary Phi nodes also, so it doesn't
...
erroneously report them as leaks
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3624 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-08 21:19:29 +00:00
Chris Lattner
a175ed4194
Inform the memory leak detector that TmpInstruction objects should not be
...
subject to memory leak checking.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3623 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-08 21:08:43 +00:00
Chris Lattner
c4e4a99677
Enable "garbage detection" of LLVM objects. Check for leaks after running
...
every pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3621 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-08 19:00:07 +00:00
Chris Lattner
d1e693f2a3
Enable "garbage detection" of LLVM objects. Now users should be obnoxious
...
warnings. If they accidentally leak LLVM Value's.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3620 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-08 18:59:35 +00:00
Chris Lattner
bd78696719
Minor simplification
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3619 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-08 18:55:04 +00:00
Chris Lattner
de69a4ca2f
Checkin initial support for automatic memory leak detection routines
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3618 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-08 18:51:16 +00:00
Chris Lattner
a6299345ee
* Add capability to recognize alias properties of the following common cases:
...
- A[c1] cannot alias A[c2] where constants c1 != c2
- A[i] cannot alias B[j] if A & B are provably different arrays
This should help out array based codes. For example, from bzip2 from spec,
3 additional loads can be GCSE'd, and _21_ additional loads can be LICMd due
to this change.
In a test example from the Spec GAP benchmark (vecffe.c), this change allows
_52_ additional loads to be GCSE'd and _224_ additional LICM'd loads.
Not bad for such a simple change. Other testcases show no change at all
because they just don't use arrays. Not too suprising there.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3616 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-08 18:45:18 +00:00
Chris Lattner
bded132d00
Move code out of header files into .cpp files to make future changes easier
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3605 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 21:33:15 +00:00
Chris Lattner
482701563a
* Remove extraneous #includes
...
* Add extra argument to Function ctor to allow automatic insertion into module
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3600 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 20:46:32 +00:00
Chris Lattner
b0dbd7fc5a
Initial checkin of Correlated Expression Elimination Pass
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3599 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 18:41:55 +00:00
Chris Lattner
f4d4a49311
Fix file header to be accurate, instead of something I just copied and pasted.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3591 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 03:59:56 +00:00
Chris Lattner
a9d2bffeeb
Fix bug with critical edge splitting code where it wouldn't update PHI nodes
...
in the old destination block to indicate that the value flows from the new
edge splitting block, not from the original multi-successor block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3590 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 03:51:45 +00:00
Chris Lattner
4af3ccbbea
Check in the implementation of critical edge detection and splitting
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3588 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 02:35:34 +00:00
Vikram S. Adve
f36f06bb60
Add new function UltraSparcInstrInfo::CreateZeroExtensionInstructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3581 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-05 18:34:31 +00:00
Vikram S. Adve
84c0fcbde4
Bug fixes in casting between floats and ints smaller than 64 bits.
...
Add UltraSparcInstrInfo::CreateZeroExtensionInstructions to help with that.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3580 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-05 18:33:59 +00:00
Vikram S. Adve
babc0fab19
-- Use size of pointer element type instead of pointer type in array offsets!
...
-- A few bug fixes in casting between floats and ints.
-- Use SRL reg, 0 instead of AND reg, 0xffffffff to clear high 32 bits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3579 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-05 18:32:13 +00:00
Vikram S. Adve
537a877998
-- Bug fix: use byte offsets not typed offsets in output assembly!
...
-- Add support for ConstantExpr constants (only cast and add operators so far)
-- Avoid generating label Bbss.bss, which sometimes came out twice.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3578 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-05 18:28:10 +00:00
Chris Lattner
20d4129fef
Minor bug fix.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3577 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-03 23:12:40 +00:00
Chris Lattner
252030e86b
Implement setcc for booleans. Fixes bug:
...
test/Regression/Transforms/ConstProp/2002-09-03-SetCC-Bools.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3576 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-03 20:09:49 +00:00
Chris Lattner
0c4e886dbf
- Renamed Type::isIntegral() to Type::isInteger()
...
- Added new method Type::isIntegral() that is the same as isInteger, but
also accepts bool.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3574 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-03 01:08:28 +00:00
Chris Lattner
65ad37205e
- Renamed Type::isIntegral() to Type::isInteger()
...
- Added new method Type::isIntegral() that is the same as isInteger, but
also accepts bool.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3573 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-03 01:07:35 +00:00
Chris Lattner
ce8a14915d
- Renamed Type::isIntegral() to Type::isInteger()
...
- Added new method Type::isIntegral() that is the same as isInteger, but
also accepts bool.
SCVS: ----------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3572 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-03 01:05:48 +00:00
Chris Lattner
d122f4b648
Fix bugs
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3569 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-02 20:49:27 +00:00
Chris Lattner
62b14df410
Add constant prop & DIE to InstCombine, so it cleans up after itself
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3568 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-02 04:59:56 +00:00
Chris Lattner
96f9d7232c
Add printing support to ConstantRange class
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3565 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-02 00:18:22 +00:00
Chris Lattner
645e00d149
Initial implementation of ConstantRange support
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3563 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-01 23:53:36 +00:00
Chris Lattner
ea8b7b8bb5
- Exposed SetCondInst::getInverseCondition & ::getSwappedCondition better
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3562 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-01 19:46:40 +00:00
Chris Lattner
0e9f93ea37
- Fix bug: test/Regression/CBackend/2002-08-20-RecursiveTypes.ll
...
- Converted CWriter to be an LLVM pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3558 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-31 00:29:16 +00:00
Chris Lattner
2a88bb7065
- Implement SCCP of getelementptr instructions
...
- Implement SCCP of globals into ConstantExprs hopefully opening new
opportunities for more SCCP.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3555 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-30 23:39:00 +00:00
Chris Lattner
c74cb8698f
- Eliminate the last traces of the 'analysis' namespace
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3550 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-30 22:53:53 +00:00
Chris Lattner
2964f3624c
Really minor cleanups
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3549 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-30 22:53:30 +00:00
Chris Lattner
77e14adf0b
AsmParser now depends on clients to verify that input is well formed
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3548 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-30 22:52:23 +00:00
Chris Lattner
3e813b38f1
Minor cleanups so I can remove BasicValueNumbering.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3544 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-30 22:30:36 +00:00
Chris Lattner
74542b64b1
initial implementation of ValueNumbering interface.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3541 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-30 20:29:02 +00:00
Chris Lattner
71c7ec9b18
Initial implementation of value numbering for load instructions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3540 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-30 20:28:10 +00:00
Chris Lattner
a3cd9de40e
- Use Pass::AnalysisImpls instead of findAnalysisGroupMemeber
...
- -debug-pass=Details now prints implementation class names for analysis
groups
- Rework how AnalysisGroups are resolved to be simpler and better.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3535 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-30 20:25:01 +00:00
Chris Lattner
1c28b42310
- PassManager prints analysis sets nicer
...
- Use Pass::AnalysisImpls instead of findAnalysisGroupMemeber
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3534 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-30 20:23:45 +00:00
Chris Lattner
14987f16b4
- GCSE now no longer counts instructions not removed (due to no common
...
dominator as being removed)
- GCSE now uses new Value #'ing interface, instead of dealing with AA itself
- GCSE worklist implementation much simpler, class cleaned up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3533 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-30 20:22:29 +00:00
Chris Lattner
04b9025450
Remove unneeded #include
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3524 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-29 20:08:55 +00:00
Anand Shukla
b85d265b16
moved this file from lib/Reoptimizer/Mapping
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3519 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-27 22:47:33 +00:00
Anand Shukla
894e830100
Makefile for new sub directory
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3518 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-27 22:46:38 +00:00
Anand Shukla
2caa9204b2
Added Mapping subdir
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3517 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-27 22:45:49 +00:00
Chris Lattner
a34c5689dd
Implement ConstantPointerRef support, & ConstantExpr support for Cast, GEP & Add.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3516 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-27 22:33:45 +00:00
Anand Shukla
26022027be
added Reoptimizer in Makefile DIRS
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3515 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-27 22:05:53 +00:00
Anand Shukla
5993829fbd
Added getFunctionInfo and MappingInfoForFunction pass, and fixed the earlier error in compiling
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3513 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-27 16:45:17 +00:00
Chris Lattner
fabc8803a3
Fix bug: test/Regression/CBackend/2002-08-26-IndirectCallTest.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3511 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-26 20:50:09 +00:00
Chris Lattner
93aeea3748
Add support for turning an array of characters into a string.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3509 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-26 17:53:56 +00:00
Anand Shukla
e0b6b78e09
Changed so it gets linked properly
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3508 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-26 16:45:19 +00:00
Vikram S. Adve
969c4ad65d
Fix the way parens are printed around "*ptrName" so that
...
no parens are printed around *, **, ... alone, except if
it is a pointer type for which no name should be printed,
as in the result of a cast.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3506 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-25 20:00:08 +00:00
Vikram S. Adve
74c83e44fa
Use newly-added type inspection support in InstTreeNode subclasses.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3501 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-24 21:02:09 +00:00
Vikram S. Adve
685133382d
Moved code here to extract memory instruction indices and to check
...
whether FoldGetElemNodes should be called. This is machine-independent
but was in the Sparc directory. This is in a new function: GetMemInstArgs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3500 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-24 21:00:08 +00:00
Vikram S. Adve
f28d9d643e
LoadIdx non-terminal no longer needed.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3499 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-24 20:58:04 +00:00
Vikram S. Adve
8cfffd3a3e
Sign-extend values used to index arrays (and Simplify
...
SetOperandsForMemInstr significantly). Load and Store
no longer have any indices. Eliminate spurious sign-extension
on a cast to float/double.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3498 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-24 20:56:53 +00:00
Vikram S. Adve
f519b999a6
Fix sign-extension: it needs to happen *after* multiplying by type size.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3497 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-24 14:44:58 +00:00
Vikram S. Adve
42eb2bae8e
Sign-extend array index expressions to work correctly on non-32 bit machines.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3496 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-24 14:44:23 +00:00
Chris Lattner
e6f9a91618
- instcombine demorgan's law: and (not A), (not B) == not (or A, B)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3495 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-23 18:32:43 +00:00
Anand Shukla
ed0f1c5285
Changed default value of 3rd parameter in function definition
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3492 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-23 10:55:49 +00:00
Anand Shukla
6656c43ac7
Added #include <alloca.h>
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3491 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-23 10:54:26 +00:00
Vikram S. Adve
cfa4f4a102
Simplify previous hack slightly.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3490 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-23 03:21:01 +00:00
Vikram S. Adve
69f3b72594
Force sign-extension for uint array indexes from 32-bit to 64-bits
...
since uint is not normally sign-extended when casting to uint64_t.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3489 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-23 02:55:51 +00:00
Chris Lattner
3bb8ad27a8
Eliminated the MemAccessInst class, folding contents into GEP class.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3488 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-22 23:37:24 +00:00
Chris Lattner
cc63f1c674
Eliminated the MemAccessInst class, folding contents into GEP class.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3487 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-22 23:37:20 +00:00
Chris Lattner
24ea74eb9a
Load & StoreInst no longer derive from MemAccessInst, so we don't have
...
to handle indexing anymore
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3485 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-22 22:49:05 +00:00
Chris Lattner
5dfe767b87
Load & StoreInst no longer derive from MemAccessInst, so we don't have
...
to handle indexing anymore
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3484 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-22 22:48:55 +00:00
Chris Lattner
8e4fc2598d
*** empty log message ***
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3483 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-22 22:48:32 +00:00
Chris Lattner
f150b9d984
Load and Store now no longer derive from MemAccessInst. Indexing a load or
...
store is not possible anymore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3482 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-22 22:47:47 +00:00
Chris Lattner
f9355f636b
doxygenize comments
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3481 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-22 22:46:39 +00:00
Chris Lattner
f5e84aa088
Add capability of using pointer analysis to LICM
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3478 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-22 21:39:55 +00:00
Chris Lattner
0712d55512
Remove long obsolete comments
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3476 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-22 21:25:54 +00:00
Chris Lattner
80b7f8ceb4
Fix bug: test/Regression/Assembler/2002-08-22-DominanceProblem.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3474 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-22 20:39:29 +00:00
Chris Lattner
c20e24524f
Instcombine PHI's of the form %PN = phi PN, X into X and
...
%PN = phi PN, PN, PN into 0 (because the phi must not be reachable)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3470 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-22 20:22:01 +00:00
Chris Lattner
22d8cd6143
Add missing #include
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3467 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-22 18:57:09 +00:00
Chris Lattner
53ad0edd36
Check-in new alias analysis infrastructure
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3465 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-22 18:25:32 +00:00
Chris Lattner
d456ec983c
Convert GCSE pass to use new alias analysis infrastructure
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3463 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-22 18:24:48 +00:00
Chris Lattner
ff9a9e5b13
Do not generate load/store instructions with indexing.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3461 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-22 16:41:31 +00:00
Chris Lattner
abfb0b5e70
Change code to not use the copyOperands method added to User. It's now
...
more efficient to boot.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3453 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-22 15:57:58 +00:00
Vikram S. Adve
da920aa55b
dumpNode() does not need to print MachineInstrs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3444 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-22 02:59:46 +00:00
Vikram S. Adve
10472cec5e
Fix two resource names.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3443 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-22 02:58:57 +00:00
Vikram S. Adve
e99941a931
Add AsmPrinter::ConstantExprToString, which writes out a ConstantExpr
...
as an expression.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3442 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-22 02:58:36 +00:00
Vikram S. Adve
30a6f49f09
Eliminate bool, boolreg and boolconst nonterminals, and just use
...
reg and Constant instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3441 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-22 02:56:10 +00:00
Vikram S. Adve
ccc13a49bd
Change rules for Not, since it is now implemented as Xor(reg,11..1).
...
Eliminate bool, boolreg and boolconst nonterminals, and just use
reg and Constant instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3440 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-22 02:55:21 +00:00
Chris Lattner
f20816bc78
- Fighting with linking problem due to removing the ::ID elements. Now the
...
implementation .cpp files for analyses are not being included into gccas
and friends because it is linking to the .a file and there is no explicit
symbol reference to bring in the .o file. The new IncludeFile hack is the
result.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3436 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-21 23:51:51 +00:00
Chris Lattner
0383cc4455
- Fix asmparser and bytecode reader to not generate loads/stores with idxs
...
Now an obnoxious warning is emitted to discourage usage. Eventually
support will be removed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3435 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-21 23:51:21 +00:00
Chris Lattner
a69fd90358
- Split Dominators.h into Dominators.h & PostDominators.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3432 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-21 23:43:50 +00:00
Chris Lattner
352eef717d
Emit an obnoxious warning message for bytecode that includes load/store
...
instructions that use indexing. Convert them transparently into a pair
of instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3431 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-21 22:55:27 +00:00
Chris Lattner
64339f681a
Remove debugging code accidentally checked in.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3430 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-21 22:49:31 +00:00
Chris Lattner
789bc84262
- Implement the new AnalysisGroup feature, neccesary for Value#ing and pointer analysis
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3426 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-21 22:17:09 +00:00
Chris Lattner
b63b29d9b0
Do not generate loads/stores with indexing
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3422 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-21 22:11:33 +00:00
Chris Lattner
25ba05972f
Remove extraneous #includes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3421 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-21 22:11:14 +00:00
Chris Lattner
3f9b28d075
Do not create load/stores with indexes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3420 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-21 22:10:52 +00:00
Chris Lattner
905641bb01
Remove an optimization that isn't.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3419 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-21 22:10:06 +00:00
Chris Lattner
546b027b3e
- Do not expose ::ID from any of the analyses anymore.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3417 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-21 17:09:49 +00:00
Chris Lattner
044f908791
- Do not expose ::ID from any of the analyses anymore.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3416 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-21 17:09:45 +00:00
Chris Lattner
607ace696b
- Do not expose ::ID from any of the analyses anymore.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3415 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-21 17:09:15 +00:00
Chris Lattner
fb30fda1de
- Eliminate the need for analyses to expose an ::ID member.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3414 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-21 17:08:37 +00:00
Chris Lattner
b319faff77
fixed bug: test/Regression/Linker/2002-08-20-ConstantExpr.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3412 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-20 19:35:11 +00:00
Chris Lattner
b8fa514b1d
Sort -time-passes report first by user+system, then by Wall clock time.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3407 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-20 18:47:53 +00:00
Chris Lattner
05bd1b2eee
- instcombine (~(a < b)) into (a >= b)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3406 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-20 18:24:26 +00:00
Chris Lattner
e825bde125
Add new SetCondInst::getInverseCondition() method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3405 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-20 18:17:12 +00:00
Chris Lattner
5a905e20b7
This case JUST handles constantpointer nulls, not all pointers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3402 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-20 17:02:48 +00:00
Chris Lattner
4cda83568e
Fix bug: 2002-08-20-UnnamedArgument.c
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3401 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-20 16:55:48 +00:00
Chris Lattner
f02c46834a
- implemented instcombine of phi (X, X, X) -> X
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3397 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-20 15:35:35 +00:00
Chris Lattner
df35a1cb4b
Implement ConstantExprs in CWriter
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3394 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-19 23:09:46 +00:00
Chris Lattner
83c577566e
Incorporate calcTypeNameVar into CWriter class, fixing
...
test/Regression/CBackend/2002-08-19-FunctionPointer.c in the process
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3392 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-19 22:17:53 +00:00
Chris Lattner
a4d4a855d8
Output forward definitions of global vars to handle recursive intializers correctly.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3391 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-19 21:48:40 +00:00
Chris Lattner
6d49292003
- Change constant printing to be better integrated with the rest of the
...
CWriter class. Write directly to stream instead of building a big
string, then writing it out.
- Implement printing of ConstantPointerRefs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3389 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-19 21:32:41 +00:00
Chris Lattner
db8d8eff2f
Add missing space
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3387 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-19 20:42:12 +00:00
Chris Lattner
63c58a496a
Fix bug: test/Regression/Assembler/2002-08-19-BytecodeReader.llx
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3384 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-19 16:48:21 +00:00
Chris Lattner
f5526b6edb
Fix the -time-passes option to not print NaN when there is zero execution time
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3382 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-19 15:43:33 +00:00
Chris Lattner
0bfb6ba3e3
- Made GlobalDCE worklist driven, making it more successful. Now can handle
...
cases like: test/Regression/Transforms/GlobalDCE/2002-08-17-WorkListTest.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3381 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-18 01:28:30 +00:00
Chris Lattner
41661fdb2e
- ConstantPointerRefs are now automatically removed from the module table
...
when they are destroyed, which makes Constant::destroyConstant an actually
useful external interface. Expose these methods publicly.
- Implement destroyConstant on ConstPointerNull so that destroyConstant can
be used on any derived type constant safely.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3379 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-18 00:40:04 +00:00
Chris Lattner
915ce8a02e
Turn off a debugging optimization that just slows bytecode reading down
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3377 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-18 00:38:32 +00:00
Chris Lattner
9da0715aa4
Add Module::dump() method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3375 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-17 23:32:47 +00:00
Chris Lattner
9b76123124
Promote getelementptr instructions to constexprs if we can.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3368 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-17 22:21:59 +00:00
Chris Lattner
e4619181cc
Fix stupid oversight of missing #include.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3367 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-17 22:02:41 +00:00
Chris Lattner
7473413072
- Finally nailed: test/Regression/Assembler/2002-08-16-ConstExprInlined.llx
...
- ParseConstantPool was resolving reference to value using the function
slot # instead of the global slot #.
- Bytecode reader changes:
- Remove the failure<> template from Bytecode Reader
- Remove extraneous #includes
- s/method/function/ a bit
- Eliminate the fwdRefs class that just added abstraction where it was not
needed, making things more complex.
- Use a vector instead of a list for function signatures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3366 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-17 22:01:27 +00:00
Chris Lattner
1c93e5bd26
Changed parser to always use parenthesis on ConstExprs to be consistent
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3363 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-16 21:17:11 +00:00
Chris Lattner
d78700de8e
- Remove unused STRING token from lexer & parser
...
- Changed parser to always use parenthesis on ConstExprs to be consistent
- Parser now passes TRUE and FALSE tokens as a special case of the ConstExpr
machinery instead of a special case of constant int stuff
- Fix the AsmParser to use ValueRef ::= ConstExpr, and remove
ResolvedVal ::= ConstExpr this allows constexprs to be used in PHI nodes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3362 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-16 21:14:40 +00:00
Chris Lattner
95586b8c83
Write constexpr casts using the cast X to Y notation, not using the implicit
...
type result
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3354 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-15 19:37:43 +00:00
Chris Lattner
ec1b8a0796
Parse const expr cast instruction the same way the instruction is formed
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3353 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-15 19:37:11 +00:00
Chris Lattner
d05e359b10
Move ConstExpr production to unify ConstVal stuff
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3351 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-15 18:17:28 +00:00
Chris Lattner
3101c25293
Fix bug: test/Regression/Assembler/2002-08-15-UnresolvedGlobalReference.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3350 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-15 17:58:33 +00:00
Chris Lattner
96ad1ec876
Simplify the code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3348 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-15 16:15:36 +00:00
Chris Lattner
3ecce66e25
Handle more cases of cast-of-cast in more general forms.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3347 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-15 16:15:25 +00:00
Vikram S. Adve
85af131d9e
Unary Not (boolean and bitwise) is no longer a separate LLVM instruction
...
but is instead implemented with XOR. Note that the InstrForest opLabels
for Not and BNot remain the same, i.e., the XOR is recognized and
represented as a (boolean or bitwise) Not when building the instruction
trees. But these tree nodes are now binary, not unary.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3343 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-15 14:19:22 +00:00
Vikram S. Adve
ce08e1dd3e
Revise code generation for unary Not (boolean and bitwise), which is
...
no longer a separate instruction but is instead implemented with XOR.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3342 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-15 14:17:37 +00:00
Vikram S. Adve
1718337cf7
Added more helper functions for binary instructions emulating
...
unary Neg and Not: isNeg, isNot, getNegArgument, and getNotArgument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3341 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-15 14:15:48 +00:00
Chris Lattner
5cf6f112e6
Implement capability to fold this:
...
uint %test4(int %A, int %B) {
%COND = setlt int %A, %B ; <bool> [#uses=1]
%result = cast bool %COND to uint ; <uint> [#uses=1]
ret uint %result
}
into a single cast instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3339 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-14 23:21:10 +00:00
Chris Lattner
b9a7793ecb
Avoid creating 'load X, 0' instead of just 'load X'
...
This _trivial_ change causes GCSE and LICM to be much more effective at
hoisting loads. Before it would not be able to eliminate 'load X' if there
was just a dominating 'load X, 0' because the expressions were not identical.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3337 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-14 22:11:52 +00:00
Chris Lattner
db6e4d6625
Avoid inserting an entry block unless we need it
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3336 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-14 21:35:02 +00:00
Chris Lattner
ad333484ea
Remove support for Not ConstantExpr. This simplifies the unary case to only
...
have to support the cast instruction, so the function is renamed to getCast.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3328 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-14 18:24:09 +00:00
Chris Lattner
9b2b80fd48
Fix bug introduced in last checkin due to CastInst not being visible
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3327 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-14 18:22:19 +00:00
Chris Lattner
9c16dba29f
Remove support for unary operators.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3326 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-14 18:19:46 +00:00
Chris Lattner
0513e9fe03
Remove support for NOT instruction
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3323 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-14 18:18:02 +00:00
Chris Lattner
48a4531ee4
Remove extra #includes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3322 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-14 18:17:32 +00:00
Chris Lattner
f4e3c006ac
Remove constant propogation support for NOT instruction
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3321 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-14 18:17:07 +00:00
Chris Lattner
20e8e01c5d
Remove support for NOT instruction
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3320 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-14 18:00:52 +00:00
Chris Lattner
b804760b56
Remove support for unary operators
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3318 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-14 17:53:45 +00:00
Chris Lattner
a9261ff5b7
Implement two constructor functions for "unary" instructions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3317 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-14 17:52:27 +00:00
Chris Lattner
589fda514c
Remove support forNOT instruction
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3316 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-14 17:52:06 +00:00
Chris Lattner
af2930efa0
- Fix InstCombine pass to not generate or process NOT instructions
...
- Fixed testcases to not use them either.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3315 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-14 17:51:49 +00:00
Chris Lattner
e4c3764a9f
Remove support for NOT instruction
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3313 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-14 17:45:39 +00:00
Chris Lattner
699f1eb214
AsmParser turns 'not' instructions into 'xor' instructions now.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3309 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-14 17:12:33 +00:00
Chris Lattner
227b86c5fb
Return null on failure, instead of aborting.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3308 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-14 17:12:13 +00:00
Vikram S. Adve
e2a78e3186
Add method MachineInstr::substituteValue() which substitutes
...
one Value with another one in all operands and implicit references
of the machine instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3306 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-14 16:52:58 +00:00
Chris Lattner
65629d5a16
Minor change to make lli print out characters numerically as well as symbolically
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3303 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-13 20:45:11 +00:00
Vikram S. Adve
ca710e9cc5
Bug fix in TargetData::getIndexedOffset: We were using the pointer
...
type instead of the element type for the element size for arrays.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3302 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-13 18:17:56 +00:00
Vikram S. Adve
6c0c3010da
Several bug fixes in casting to signed int values.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3301 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-13 18:04:08 +00:00
Chris Lattner
572f4a01a5
- Rename ConstantGenericIntegral -> ConstantIntegral
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3300 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-13 17:50:24 +00:00
Chris Lattner
9fb96412ae
- Rename ConstantGenericIntegral -> ConstantIntegral
...
- Add new methods to ConstantIntegral: getMaxValue, getMinValue,
getAllOnesValue
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3299 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-13 17:50:20 +00:00
Vikram S. Adve
65a2deef8c
Handle small unsigned results correctly by clearing high bits.
...
Bug fixes in casting to signed int values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3297 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-13 17:40:54 +00:00
Brian Ensink
7b0925f4d3
Build correctly in the face of /shared.
...
-Chris
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3296 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-12 22:09:44 +00:00
Chris Lattner
9568568b75
- Clean up interface to Sparc register handling a bit:
...
- Eliminate Sparc*Order classes, moving contents to Sparc*Class classes
- get register name methods now return const char * const pointers instead
of std::string's.
- Added file header comments to SparcRegClassInfo.(cpp|h)
- Moved BIG constant arrays out of SparcRegClassInfo.h, into
SparcRegInfo.cpp. This should allow a LOT of std::string constructors to
not have to be called.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3295 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-12 21:25:05 +00:00
Chris Lattner
994b9f337b
- Added a new superclass of ConstantBool/ConstantInt: ConstantGenericIntegral
...
- Moved InstCombine: isMaxValue, isMinValue, isAllOnesValue to Constants.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3293 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-12 21:21:21 +00:00
Chris Lattner
233f7dcde3
* Factor a bunch of code by using ReplaceInstUsesWith
...
* Move isMaxValue, isMinValue, isAllOnesValue to Constants.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3290 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-12 21:17:25 +00:00
Chris Lattner
bb6342b052
Remove some extraneous #includes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3289 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-12 20:24:46 +00:00
Chris Lattner
4228b5aac4
Changes to make GlobalValueRefMap not derive from std::map.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3288 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-12 20:23:29 +00:00
Chris Lattner
8b170945ea
New functionality for instcombine:
...
* New ReplaceInstUsesWith function to factor out tons of common code
This needs to be used more in the future still, but it's a good start
* New InsertNewInstBefore to allow multi-instruction replacements
* Change getMaxValue functions to isAllOnesValue function, which doesn't
have to CREATE/lookup a new constant. Also the name is accurate
* Add new isMaxValue, isMinValue, isMaxValueMinusOne, isMinValuePlusOne
functions: This should be moved to Constant* classes eventually
* Implement xor X, ALLONES -> not X
* Fold ALL setcc's of booleans away
* Handle various SetCC's for integers against values at the end of their
ranges, possibly off by one. This implements the setcc-strength-reduce.ll
testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3286 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-09 23:47:40 +00:00
Chris Lattner
389694834a
*** empty log message ***
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3282 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-09 22:52:08 +00:00
Chris Lattner
dc1e020444
UnaryOperator::create should take a name just like BinaryOperator::create
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3279 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-09 21:39:38 +00:00
Chris Lattner
035dfbe7f2
* Removed extraneous #includes
...
* Fixed file headers to be consistent with the rest of LLVM
* Other minor fixes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3278 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-09 20:08:06 +00:00
Chris Lattner
179cdfb5c8
* Removed extraneous #includes
...
* Fixed file headers to be consistent with the rest of LLVM
* Other minor fixes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3277 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-09 20:08:03 +00:00
Chris Lattner
b91b31c12d
We are using std::vector, so remove extraneous namespace prefixes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3275 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-09 20:05:34 +00:00
Chris Lattner
919c4f8a44
Change machinecode for instruction to not inherit from vector.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3274 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-09 20:04:28 +00:00
Chris Lattner
b0cfa6dfec
Very minor cleanups
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3271 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-09 18:55:18 +00:00
Chris Lattner
180e568a70
Initial checkin of the "Hello World" Pass.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3266 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-08 20:10:38 +00:00
Chris Lattner
5f0eb8da62
- Cleaned up the interface to AnalysisUsage to take analysis class names
...
instead of ::ID's.
- Pass::getAnalysis<> now no longer takes an optional argument
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3265 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-08 19:01:30 +00:00
Chris Lattner
dd5b495129
- Cleaned up the interface to AnalysisUsage to take analysis class names
...
instead of ::ID's.
- Pass::getAnalysis<> now no longer takes an optional argument
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3264 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-08 19:01:28 +00:00
Chris Lattner
c6b227ecc4
Remove extraneous #includes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3262 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-08 19:00:34 +00:00
Chris Lattner
221c97974c
Minor changes to DEBUG()'s
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3261 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-07 21:41:11 +00:00
Chris Lattner
13c476cbd1
Reorder #includes to be right
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3260 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-07 21:41:03 +00:00
Chris Lattner
637ed869e6
Merge three loops into one.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3259 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-07 21:39:48 +00:00
Chris Lattner
075f028b77
Fix breakage in the build
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3258 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-07 21:39:39 +00:00
Chris Lattner
9b14eb5a78
Simplify writing custom parsers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3256 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-07 18:36:37 +00:00
Mehwish Nagda
5acd166ff5
added Mapping and Function Pass
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3251 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-05 23:23:19 +00:00
Vikram S. Adve
a40cbb3b7e
Bug fix in CreateCodeToLoadConst(): use sign of dest, not operand,
...
in choosing how to create int-set instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3248 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-04 20:55:37 +00:00
Vikram S. Adve
ed0030e2bc
Bug fix in TargetData::getIndexedOffset(): handle struct offset
...
after array offset correctly. The type was not being updated for
array offsets!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3246 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-04 20:52:39 +00:00
Vikram S. Adve
99d4a38c77
Bug fix in SetOperandsForMemInstr: handle leading zeros correctly
...
when folding or not folding GEPs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3245 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-04 20:51:05 +00:00
Vikram S. Adve
1b51b1b4f9
Add function GetConstantValueAsUnsignedInt.
...
Fix 2 bugs in FoldGetElemChain so index vector is not modified
when no GEPs are folded in, and so a hasLeadingZero is computed
only for the last folded GEP, not the one after that if any.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3244 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-04 20:49:49 +00:00
Chris Lattner
75ac4e511a
Fix compilation problem. IsIndexZero doesn't exist, use IsZero instead.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3243 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-03 20:57:38 +00:00
Vikram S. Adve
ed3fefb34c
Simplified handling of array indexes in SetMemOperands_Internal.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3236 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-03 13:48:21 +00:00
Vikram S. Adve
900fd63d12
Eliminate cast instructions: use only GEPs in decomposed sequence.
...
Don't decompose if there are 2 indices with 0 as first index.
Compute Changed flag correctly in runOnBasicBlock().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3233 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-03 13:21:15 +00:00
Chris Lattner
69ab7a8ac6
Fix problem where lli would not print out a 64 bit value when the client code
...
uses the modifier "%ld". Now lli passes off "%lld" to the underlying runtime
library in this case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3230 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-02 23:08:32 +00:00
Chris Lattner
1bbd36156b
Fix one real nasty bug
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3227 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-02 22:06:04 +00:00
Chris Lattner
b490c20b38
Fix lli with no arguments
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3226 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-02 21:51:29 +00:00
Chris Lattner
8fd217cb29
Fix bug: test/Regression/Transforms/InstCombine/2002-08-02-CastTest.ll
...
Implement feature: Cast's can now be converted to bitwise AND expressions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3225 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-02 20:00:25 +00:00
Chris Lattner
90ac28cf3e
* Cleanups of instcombine
...
- Reenable gep (gep x) -> x
- Make instcombine do dead instruction elimination where it's really
easy. Now visitors don't have to ensure they aren't not processing
dead instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3222 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-02 19:29:35 +00:00
Chris Lattner
be1ecf6050
Fix bug: test/Regression/Transforms/GCSE/2002-05-21-NoSharedDominator.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3215 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-02 18:06:01 +00:00
Chris Lattner
9ce231f3ae
Implement dominator checking in the verifier, so that we check that all
...
defintiions dominate their uses
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3214 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-02 17:37:08 +00:00
Chris Lattner
a915ef0fc0
Fix bug: test/Regression/Other/2002-08-02-DomSetProblem.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3213 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-02 16:51:27 +00:00
Chris Lattner
4c9df7c619
Split dominance calculation and post dominance calculation stuff
...
Dominance calculation goes to VMCore library to be used by Verifier.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3210 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-02 16:43:03 +00:00
Chris Lattner
cc8d8fb676
Remove unneccesary #inlcude
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3200 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-01 20:01:02 +00:00
Chris Lattner
ca0a1f7d49
Enhance -time-passes to be more detailed and useful
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3199 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-01 19:33:09 +00:00
Vikram S. Adve
a4704045e8
Bug fix: incorrect SAVE instruction when using register for stack size.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3198 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-01 14:26:11 +00:00
Chris Lattner
fc94446777
Fix bug: test/Regression/Assembler/2002-07-31-SlashInString.llx
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3195 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-31 23:56:44 +00:00
Chris Lattner
280b09b178
Implement the other half of a feature advertised by OperandConvertableToType.
...
This fixes bug: test/Regression/Transforms/LevelRaise/2002-07-31-AssertionFailure.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3193 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-31 22:31:34 +00:00
Vikram S. Adve
c190c01a9f
Just improved comments and assertions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3191 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-31 21:13:31 +00:00
Vikram S. Adve
1e60669d3b
Add a missing case: converting float/double to unsigned integer types.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3188 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-31 21:01:34 +00:00
Chris Lattner
7541b89092
Changes to be GCC3.1 friendly
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3186 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-31 19:32:12 +00:00
Chris Lattner
1b0a63fa64
*** empty log message ***
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3185 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-31 19:32:01 +00:00
Chris Lattner
7a40d6db08
We need iostream in PassManagerT.h to use cerr
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3183 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-31 18:04:17 +00:00
Chris Lattner
dadd49bdb8
Add new -only-print-main-ds option that causes mains ds graph to be
...
printed, but no others.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3178 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-31 17:15:40 +00:00
Chris Lattner
d16714b5ed
Fix bug that was causing problems for lli
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3176 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-31 16:29:43 +00:00
Vikram S. Adve
358fc38d3b
Add GlobalDSGraph -- a common graph that holds externally visible nodes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3173 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-30 22:08:08 +00:00
Vikram S. Adve
dfd2f32bf7
Print globals graph after either the BU or the TD pass.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3172 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-30 22:07:26 +00:00
Vikram S. Adve
aaeee75af8
This file implements the top-down propagation pass for data structure graphs.
...
Also, we now use a separate globals graph to hold externally visible nodes.
This changes both the bottom-up and top-down propagation so that
globals and other external objects do not have to appear in every
function, but only in functions in which they are referenced or
they can be used to access something else that is referenced.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3171 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-30 22:06:40 +00:00
Vikram S. Adve
355e2ca1f4
Use a separate globals graph to hold externally visible nodes.
...
This changes both the bottom-up and top-down propagation so that
globals and other external objects do not have to appear in every
function, but only in functions in which they are referenced or
they can be used to access something else that is referenced.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3170 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-30 22:05:22 +00:00
Chris Lattner
48c1bc7b3a
Implement new -debug-pass=Arguments option that causes PassManager to
...
print out the command line options for the optimizations it is running.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3165 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-30 19:51:02 +00:00
Chris Lattner
55e41ba3d2
* Indent class into anonymous namespace, filling up the diff with garbage
...
* Internalize global variables with initializers
* Add new stat to track global variable internalization
* Only count functions that were not internal before in internalized function
count
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3163 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-30 19:48:44 +00:00
Chris Lattner
c188eeb08c
Cleanup ConstantExpr handling:
...
* Correctly delete TypeHandles in AsmParser. In addition to not leaking
memory, this prevents a bug that could have occurred when a type got
resolved that the constexpr was using
* Check for errors in the AsmParser instead of hitting assertion failures
deep in the code
* Simplify the interface to the ConstantExpr class, removing unneccesary
parameters to the ::get* methods.
* Rename the 'getelementptr' version of ConstantExpr::get to
ConstantExpr::getGetElementPtr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3161 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-30 18:54:25 +00:00
Chris Lattner
e8e4605021
Cleanup ConstantExpr handling:
...
* Correctly delete TypeHandles in AsmParser. In addition to not leaking
memory, this prevents a bug that could have occurred when a type got
resolved that the constexpr was using
* Check for errors in the AsmParser instead of hitting assertion failures
deep in the code
* Simplify the interface to the ConstantExpr class, removing unneccesary
parameters to the ::get* methods.
* Rename the 'getelementptr' version of ConstantExpr::get to
ConstantExpr::getGetElementPtr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3160 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-30 18:54:22 +00:00
Chris Lattner
ad772a7188
Remove FIXME's that aren't really needed after all.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3158 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-30 16:38:54 +00:00
Chris Lattner
17689dfe24
Declare that these passes only depend on the CFG of the function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3157 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-30 16:27:52 +00:00
Chris Lattner
37d66c4dea
* Move some code from Pass.cpp to PassManagerT.h
...
* Implement stuff so that code can declare that they only depend on the CFG of
a function, not on anything else. This speeds up GCCAS a lot.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3155 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-30 16:27:02 +00:00
Chris Lattner
5fa829c54a
Implement constant propogation of logical (and, or, xor) expressions.
...
Fixes testcase: test/Regression/Transforms/ConstProp/logicaltest.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3154 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-30 16:24:28 +00:00
Chris Lattner
e56096aa41
Implement constant propogation of logical (and, or, xor) expressions.
...
Fixes testcase: test/Regression/Transforms/ConstProp/logicaltest.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3153 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-30 16:24:25 +00:00
Chris Lattner
2e1749bbf8
* Move InstructionSelection Pass here instead of living in Sparc.cpp. It
...
is platform independant afterall.
* Object orientize the functions, cleanup code a bit. Instead of static
global functions, the helpers for instruction selection are now part of
the InstructionSelection Pass class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3147 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-30 03:57:36 +00:00
Chris Lattner
057430d207
* Move InstructionSelection pass to lib/CodeGen/InstrSelection so it is
...
shared by backends.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3146 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-30 03:56:16 +00:00
Chris Lattner
67fcce2b19
Remove unused vector
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3143 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-30 02:52:40 +00:00
Chris Lattner
e902bda4ce
Fix bug with last patch which would occur when a call returned void and we
...
attempted to assign it a name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3142 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-30 02:42:49 +00:00
Chris Lattner
9cf307fdeb
* Make sure the resolved function call instructions get the name from the
...
old call instruction
* Implement conversion of return values for calls. This fixes bug:
test/Regression/Transforms/FunctionResolve/retmismatch3.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3140 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-30 00:50:49 +00:00
Chris Lattner
446698b63d
* Fix bug: test/Regression/Transforms/ADCE/2002-07-17-AssertionFailure.ll
...
which was caused by us not running the "drop references of dead
instructions" code when there were no basic blocks that were dead.
We still don't want to do some of the stuff we do if there are dead
basic blocks, but we DO want to drop references of dead instructions,
so we factor the common code out to a new method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3137 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-30 00:22:34 +00:00
Chris Lattner
a61fab8c6d
Add code to ensure that no PHI nodes are left laying around with their
...
arguments dropped. This fixes bug:
test/Regression/Transforms/ADCE/2002-07-17-PHIAssertion.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3134 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-29 23:40:46 +00:00
Chris Lattner
b0f0ef8f26
Implement a new RemoveSuccessor function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3131 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-29 22:32:08 +00:00
Chris Lattner
011de07117
Fix bug: test/Regression/Transforms/ADCE/2002-07-29-Segfault.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3129 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-29 22:31:39 +00:00
Chris Lattner
91b65c0b42
Allow folding of basic blocks that have PHI nodes in them, fixing "bug":
...
test/Regression/Transforms/SimplifyCFG/2002-06-24-PHINode.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3128 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-29 21:26:30 +00:00
Chris Lattner
d472e47b6c
* Eliminate the Provided set. All Passes now finally just automatically
...
provide themselves.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3125 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-29 21:03:38 +00:00
Chris Lattner
eb702350f7
* Eliminate the Provided set. All Passes now finally just automatically
...
provide themselves.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3124 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-29 21:03:33 +00:00
Chris Lattner
44050fb25a
* PassInfo is allowed to be missing now (ie, not all passes need be registered)
...
* getPassName uses PassInfo if it's available
* PassInfo is now cached in the pass so that it is only looked up once, maximum
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3123 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-29 21:02:31 +00:00
Chris Lattner
e8e258b1a7
* Fix assertion failure caused by command line argument getting removed after
...
the map was freed.
* Cleanup code a bit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3121 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-29 20:58:42 +00:00
Chris Lattner
99b7c1a9ea
Remove needless #include
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3117 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-27 05:25:29 +00:00
Chris Lattner
a59cbb2043
* Standardize how analysis results/passes as printed with the print() virtual
...
methods
* Eliminate AnalysisID: Now it is just a typedef for const PassInfo*
* Simplify how AnalysisID's are initialized
* Eliminate Analysis/Writer.cpp/.h: incorporate printing functionality into
the analyses themselves.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3116 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-27 01:12:17 +00:00
Chris Lattner
97f51a3024
* Standardize how analysis results/passes as printed with the print() virtual
...
methods
* Eliminate AnalysisID: Now it is just a typedef for const PassInfo*
* Simplify how AnalysisID's are initialized
* Eliminate Analysis/Writer.cpp/.h: incorporate printing functionality into
the analyses themselves.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3115 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-27 01:12:15 +00:00
Chris Lattner
a6275ccdf5
* Add support for different "PassType's"
...
* Add new RegisterOpt/RegisterAnalysis templates for registering passes that
are to show up in opt or analyze
* Register Analyses now
* Change optimizations to use RegisterOpt instead of RegisterPass
* Add support for different "PassType's"
* Add new RegisterOpt/RegisterAnalysis templates for registering passes that
are to show up in opt or analyze
* Register Analyses now
* Change optimizations to use RegisterOpt instead of RegisterPass
* Remove getPassName implementations from various subclasses
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3113 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-26 21:12:46 +00:00
Chris Lattner
1e43516dcf
* Add support for different "PassType's"
...
* Add new RegisterOpt/RegisterAnalysis templates for registering passes that
are to show up in opt or analyze
* Register Analyses now
* Change optimizations to use RegisterOpt instead of RegisterPass
* Add support for different "PassType's"
* Add new RegisterOpt/RegisterAnalysis templates for registering passes that
are to show up in opt or analyze
* Register Analyses now
* Change optimizations to use RegisterOpt instead of RegisterPass
* Remove getPassName implementations from various subclasses
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3112 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-26 21:12:44 +00:00
Chris Lattner
ce6ef112c4
*** empty log message ***
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3105 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-26 18:40:14 +00:00
Chris Lattner
c1b2718acf
Fix typeo that caused bug:
...
test/Regression/Assembler/2002-07-25-ReturnPtrFunction.llx
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3103 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-25 20:58:51 +00:00
Chris Lattner
a4e251822a
Add check to fix bug:
...
test/Regression/Assembler/2002-07-25-ParserAssertionFailure.llx
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3101 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-25 20:52:56 +00:00
Chris Lattner
54d10c8715
Fix bug: test/Regression/Assembler/2002-07-25-QuoteInString.llx
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3099 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-25 20:32:37 +00:00
Chris Lattner
cdcfcf65d9
*** empty log message ***
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3097 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-25 19:59:41 +00:00
Chris Lattner
d8bbc06c87
Refix stuff for GCC 2.95, 3.0.4 & 3.1
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3094 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-25 18:04:48 +00:00
Chris Lattner
601d715959
Fix gcc 3.1 complaint
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3091 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-25 17:37:05 +00:00
Mehwish Nagda
e95ce74b80
now removes deleted nops from MachineCodeForInstruction
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3090 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-25 17:31:05 +00:00
Mehwish Nagda
0009c2e8b3
changed implementation of LLVM BYTECODE Length
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3089 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-25 17:22:48 +00:00
Chris Lattner
4b367217c2
Avoid warning message
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3085 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-25 16:30:45 +00:00
Chris Lattner
9a9433b8b5
Break line to fit 80 columns
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3083 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-25 15:40:04 +00:00
Chris Lattner
b2e80a6951
Avoid warning: control reaches end of non-void function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3081 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-25 15:39:05 +00:00
Chris Lattner
c6a4bf1251
*** empty log message ***
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3077 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-25 15:00:45 +00:00
Chris Lattner
0c0edf8afc
*** empty log message ***
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3075 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-25 06:17:51 +00:00
Chris Lattner
bcafccebdb
GCC 3.1 changes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3074 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-25 06:17:42 +00:00
Chris Lattner
b82d97ebc3
GCC 3.1 changes, finally the burm file builds the FIRST time a clean directory is built.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3073 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-25 06:08:32 +00:00
Chris Lattner
b1443b1749
*** empty log message ***
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3072 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-24 22:40:39 +00:00
Chris Lattner
ceadf0514b
GCC 3.1 changes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3071 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-24 22:40:36 +00:00
Chris Lattner
d31d81c7ae
*** empty log message ***
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3069 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-24 22:33:53 +00:00
Chris Lattner
1868227886
Changes for GCC 3.1
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3068 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-24 22:33:50 +00:00
Chris Lattner
fe8041ae39
*** empty log message ***
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3065 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-24 22:08:53 +00:00
Chris Lattner
cb6289a73d
*** empty log message ***
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3058 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-24 21:21:33 +00:00
Chris Lattner
1089790546
Non-standard hash classes are not in the std:: namespace
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3057 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-24 21:21:33 +00:00
Chris Lattner
09ff1126da
*** empty log message ***
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3056 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-24 21:21:32 +00:00
Chris Lattner
60bfeb816a
Fix problem that GCC3.1 doesn't like.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3050 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-24 20:17:22 +00:00
Chris Lattner
faba809472
Fix a bug exposed by lli
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3049 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-24 20:15:13 +00:00
Chris Lattner
568ddabc8f
Eliminate several include/llvm/Transforms/IPO/*.h files, moving their contents into IPO.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3043 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-24 17:12:05 +00:00
Chris Lattner
e9ee3e5a75
Merge ChangeAllocations into scalar.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3038 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-23 22:04:17 +00:00
Chris Lattner
ff1be262c4
Rename header
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3037 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-23 22:04:02 +00:00
Chris Lattner
7311e389a6
Cleanup and simplify code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3036 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-23 22:03:41 +00:00
Chris Lattner
9cfea85b8b
Incorporate ConstantMerge.h into IPO.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3035 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-23 19:57:40 +00:00
Chris Lattner
b713599c93
Rename LevelChange.h to RaisePointerReferences.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3034 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-23 19:57:08 +00:00
Chris Lattner
635cd9347e
Register the WriteBytecodePass
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3033 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-23 19:56:44 +00:00
Chris Lattner
e20a5dd343
Register Verifier pass
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3019 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-23 18:08:17 +00:00
Chris Lattner
54bbdb4677
Add support for pass registration
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3018 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-23 18:08:00 +00:00
Chris Lattner
f082b80828
Register Writer passes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3017 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-23 18:07:49 +00:00
Chris Lattner
f629309f74
*** empty log message ***
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3016 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-23 18:06:35 +00:00