Chris Lattner
bdb147c373
Minor simplification
...
llvm-svn: 3619
2002-09-08 18:55:04 +00:00
Chris Lattner
4f986cebfd
Checkin initial support for automatic memory leak detection routines
...
llvm-svn: 3618
2002-09-08 18:51:16 +00:00
Chris Lattner
30214c23aa
* 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.
llvm-svn: 3616
2002-09-08 18:45:18 +00:00
Chris Lattner
9ed7aef651
Move code out of header files into .cpp files to make future changes easier
...
llvm-svn: 3605
2002-09-06 21:33:15 +00:00
Chris Lattner
6213ae0028
* Remove extraneous #includes
...
* Add extra argument to Function ctor to allow automatic insertion into module
llvm-svn: 3600
2002-09-06 20:46:32 +00:00
Chris Lattner
1871472e14
Initial checkin of Correlated Expression Elimination Pass
...
llvm-svn: 3599
2002-09-06 18:41:55 +00:00
Chris Lattner
6a5364e46f
Fix file header to be accurate, instead of something I just copied and pasted.
...
llvm-svn: 3591
2002-09-06 03:59:56 +00:00
Chris Lattner
50dd6724a2
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.
llvm-svn: 3590
2002-09-06 03:51:45 +00:00
Chris Lattner
c2cd504569
Check in the implementation of critical edge detection and splitting
...
llvm-svn: 3588
2002-09-06 02:35:34 +00:00
Vikram S. Adve
f5d585d185
Add new function UltraSparcInstrInfo::CreateZeroExtensionInstructions.
...
llvm-svn: 3581
2002-09-05 18:34:31 +00:00
Vikram S. Adve
549489aa77
Bug fixes in casting between floats and ints smaller than 64 bits.
...
Add UltraSparcInstrInfo::CreateZeroExtensionInstructions to help with that.
llvm-svn: 3580
2002-09-05 18:33:59 +00:00
Vikram S. Adve
7bc45123d3
-- 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.
llvm-svn: 3579
2002-09-05 18:32:13 +00:00
Vikram S. Adve
93407286ed
-- 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.
llvm-svn: 3578
2002-09-05 18:28:10 +00:00
Chris Lattner
d4645902e6
Minor bug fix.
...
llvm-svn: 3577
2002-09-03 23:12:40 +00:00
Chris Lattner
07507a4ccb
Implement setcc for booleans. Fixes bug:
...
test/Regression/Transforms/ConstProp/2002-09-03-SetCC-Bools.ll
llvm-svn: 3576
2002-09-03 20:09:49 +00:00
Chris Lattner
b0b412e66e
- Renamed Type::isIntegral() to Type::isInteger()
...
- Added new method Type::isIntegral() that is the same as isInteger, but
also accepts bool.
llvm-svn: 3574
2002-09-03 01:08:28 +00:00
Chris Lattner
bc6bdc2992
- Renamed Type::isIntegral() to Type::isInteger()
...
- Added new method Type::isIntegral() that is the same as isInteger, but
also accepts bool.
llvm-svn: 3573
2002-09-03 01:07:35 +00:00
Chris Lattner
2d42bbf5d0
- Renamed Type::isIntegral() to Type::isInteger()
...
- Added new method Type::isIntegral() that is the same as isInteger, but
also accepts bool.
SCVS: ----------------------------------------------------------------------
llvm-svn: 3572
2002-09-03 01:05:48 +00:00
Chris Lattner
5d2bce8555
Fix bugs
...
llvm-svn: 3569
2002-09-02 20:49:27 +00:00
Chris Lattner
99f48c614d
Add constant prop & DIE to InstCombine, so it cleans up after itself
...
llvm-svn: 3568
2002-09-02 04:59:56 +00:00
Chris Lattner
e0bb9ebc6d
Add printing support to ConstantRange class
...
llvm-svn: 3565
2002-09-02 00:18:22 +00:00
Chris Lattner
113f2aec70
Initial implementation of ConstantRange support
...
llvm-svn: 3563
2002-09-01 23:53:36 +00:00
Chris Lattner
b33e4630ff
- Exposed SetCondInst::getInverseCondition & ::getSwappedCondition better
...
llvm-svn: 3562
2002-09-01 19:46:40 +00:00
Chris Lattner
c61f6b0589
- Fix bug: test/Regression/CBackend/2002-08-20-RecursiveTypes.ll
...
- Converted CWriter to be an LLVM pass.
llvm-svn: 3558
2002-08-31 00:29:16 +00:00
Chris Lattner
dd6522e7a0
- Implement SCCP of getelementptr instructions
...
- Implement SCCP of globals into ConstantExprs hopefully opening new
opportunities for more SCCP.
llvm-svn: 3555
2002-08-30 23:39:00 +00:00
Chris Lattner
ed39ccae8d
- Eliminate the last traces of the 'analysis' namespace
...
llvm-svn: 3550
2002-08-30 22:53:53 +00:00
Chris Lattner
1b09a9ab68
Really minor cleanups
...
llvm-svn: 3549
2002-08-30 22:53:30 +00:00
Chris Lattner
e083fe9e34
AsmParser now depends on clients to verify that input is well formed
...
llvm-svn: 3548
2002-08-30 22:52:23 +00:00
Chris Lattner
f2eb70fc0b
Minor cleanups so I can remove BasicValueNumbering.h
...
llvm-svn: 3544
2002-08-30 22:30:36 +00:00
Chris Lattner
c05581fb31
initial implementation of ValueNumbering interface.
...
llvm-svn: 3541
2002-08-30 20:29:02 +00:00
Chris Lattner
2dd49e525c
Initial implementation of value numbering for load instructions
...
llvm-svn: 3540
2002-08-30 20:28:10 +00:00
Chris Lattner
216edd4ea0
- 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.
llvm-svn: 3535
2002-08-30 20:25:01 +00:00
Chris Lattner
b3708e267e
- PassManager prints analysis sets nicer
...
- Use Pass::AnalysisImpls instead of findAnalysisGroupMemeber
llvm-svn: 3534
2002-08-30 20:23:45 +00:00
Chris Lattner
b2a31090b1
- 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.
llvm-svn: 3533
2002-08-30 20:22:29 +00:00
Chris Lattner
abb16604fd
Remove unneeded #include
...
llvm-svn: 3524
2002-08-29 20:08:55 +00:00
Anand Shukla
bcba516097
moved this file from lib/Reoptimizer/Mapping
...
llvm-svn: 3519
2002-08-27 22:47:33 +00:00
Anand Shukla
2762328f9e
Makefile for new sub directory
...
llvm-svn: 3518
2002-08-27 22:46:38 +00:00
Anand Shukla
fe9eda7fb1
Added Mapping subdir
...
llvm-svn: 3517
2002-08-27 22:45:49 +00:00
Chris Lattner
c837dbc39f
Implement ConstantPointerRef support, & ConstantExpr support for Cast, GEP & Add.
...
llvm-svn: 3516
2002-08-27 22:33:45 +00:00
Anand Shukla
a1cd3fedb5
added Reoptimizer in Makefile DIRS
...
llvm-svn: 3515
2002-08-27 22:05:53 +00:00
Anand Shukla
f246131208
Added getFunctionInfo and MappingInfoForFunction pass, and fixed the earlier error in compiling
...
llvm-svn: 3513
2002-08-27 16:45:17 +00:00
Chris Lattner
91680b53f4
Fix bug: test/Regression/CBackend/2002-08-26-IndirectCallTest.ll
...
llvm-svn: 3511
2002-08-26 20:50:09 +00:00
Chris Lattner
81fabb05e5
Add support for turning an array of characters into a string.
...
llvm-svn: 3509
2002-08-26 17:53:56 +00:00
Anand Shukla
e87291ef83
Changed so it gets linked properly
...
llvm-svn: 3508
2002-08-26 16:45:19 +00:00
Vikram S. Adve
8a5c9b15ae
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.
llvm-svn: 3506
2002-08-25 20:00:08 +00:00
Vikram S. Adve
872c7f9a9e
Use newly-added type inspection support in InstTreeNode subclasses.
...
llvm-svn: 3501
2002-08-24 21:02:09 +00:00
Vikram S. Adve
8c1e3f7310
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.
llvm-svn: 3500
2002-08-24 21:00:08 +00:00
Vikram S. Adve
bee7297f26
LoadIdx non-terminal no longer needed.
...
llvm-svn: 3499
2002-08-24 20:58:04 +00:00
Vikram S. Adve
541862fbf3
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.
llvm-svn: 3498
2002-08-24 20:56:53 +00:00
Vikram S. Adve
9068efdce6
Fix sign-extension: it needs to happen *after* multiplying by type size.
...
llvm-svn: 3497
2002-08-24 14:44:58 +00:00