Commit Graph

147 Commits

Author SHA1 Message Date
Chris Lattner
d99bf49a53 Split mem2reg promotion into two parts: a function which does the work, and
a pass which wraps the function.  This allows other passes to use the functionality


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5610 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-22 23:57:48 +00:00
Chris Lattner
cc139de15a Clean up std namespace references
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5608 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-22 22:25:17 +00:00
Chris Lattner
2f6bb2bce1 * Fix linking of opaque types and their non-opaque versions
* Fix bug: Linker/2003-01-30-LinkerTypeRename.ll


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5441 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-30 20:53:43 +00:00
Chris Lattner
5c2d335d86 Eliminate using decls
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5439 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-30 19:53:34 +00:00
Chris Lattner
3cf5db73c7 Add debugging helper
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5235 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-13 00:52:25 +00:00
Vikram S. Adve
83e3b6503d This file implements the function DemoteRegToStack(), which takes a
virtual register computed by an Instruction& X and replaces it with
a slot in the stack frame, allocated via alloca.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4964 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-10 13:07:58 +00:00
Chris Lattner
ac8d4d9d59 Fix bug that was bugging bugpoint
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4953 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-07 21:27:16 +00:00
Chris Lattner
b91b657e02 Fix big bug introduced with symbol table changes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4885 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-03 18:32:30 +00:00
Chris Lattner
51cbcbf435 Initial checkin of Module cloning support stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4788 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-20 20:47:41 +00:00
Chris Lattner
6e6026b465 - Eliminated the deferred symbol table stuff in Module & Function, it really
wasn't an optimization and it was causing lots of bugs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4779 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-20 18:36:02 +00:00
Chris Lattner
c09aab0a4d Fix minor bugs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4778 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-20 18:32:31 +00:00
Chris Lattner
03b4c2d22a Remove unneccesary #include
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4772 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-19 23:12:53 +00:00
Chris Lattner
5a8932f57f Implement the CloneFunction function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4771 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-19 23:12:22 +00:00
Chris Lattner
d18015599c Minor changes to cloning interface
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4770 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-19 22:54:01 +00:00
Chris Lattner
6c2e2e5287 Fix two fixmes: integrate with inlining, and document
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4769 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-19 22:04:49 +00:00
Chris Lattner
dcd8040d11 Rework inline pass to use cloning infrastructure to do the dirty work
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4766 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-19 21:54:07 +00:00
Chris Lattner
309f19391b Start using the new function cloning header
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4764 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-19 20:59:41 +00:00
Chris Lattner
6918c079a1 BreakCriticalEdges should update dominance frontier information as well as
other dominance stuff.  Patch contributed by Casey Carter


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4457 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-31 02:44:36 +00:00
Misha Brukman
a3bbcb5b66 Fix spelling of `propagate'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4423 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 23:06:16 +00:00
Chris Lattner
cb2610ea03 - Rename AnalysisUsage::preservesAll to getPreservesAll & preservesCFG to
setPreservesCFG to be less confusing.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4255 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-21 20:00:28 +00:00
Chris Lattner
69da5cf261 - Change Function's so that their argument list is populated when they are
constructed.  Before, external functions would have an empty argument list,
    now a Function ALWAYS has a populated argument list.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4149 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-13 20:57:00 +00:00
Chris Lattner
d3d06a5cd8 - Fix bug: cee/2002-10-07-NoImmediateDominator.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4081 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-08 21:53:51 +00:00
Chris Lattner
bb190ac8da Changes to support PHINode::removeIncoming changes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4079 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-08 21:36:33 +00:00
Chris Lattner
e802a023d9 Expose isCriticalEdge & SplitCriticalEdge methods from crit-edges pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4075 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-08 21:06:27 +00:00
Chris Lattner
a92f696b74 Updates to work with recent Statistic's changes:
* Renamed StatisticReporter.h/cpp to Statistic.h/cpp
    * Broke constructor to take two const char * arguments instead of one, so
      that indendation can be taken care of automatically.
    * Sort the list by pass name when printing
    * Make sure to print all statistics as a group, instead of randomly when
      the statistics dtors are called.
    * Updated ProgrammersManual with new semantics.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4002 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-01 22:38:41 +00:00
Chris Lattner
4d01892e36 Fix major bugs in dominator set & tree information updating
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3975 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-29 21:41:38 +00:00
Chris Lattner
0bd3616b0b Change pass name to something sane
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3946 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-26 16:37:37 +00:00
Chris Lattner
c178d9459a - Cleanup break-crit-edges pass by making SplitCriticalEdge a member method.
- break-crit-edges pass does not invalidate loop-preheader pass.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3944 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-26 16:18:51 +00:00
Chris Lattner
38acf9e85d Checkin new loop-preheader insertion pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3942 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-26 16:17:31 +00:00
Chris Lattner
3b2106ff84 Change LowerAllocations pass to 'require' TargetData instead of it being
passed in.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3929 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-25 23:47:47 +00:00
Chris Lattner
112e97dbee - Fix bug: Mem2Reg/2002-05-01-ShouldNotPromoteThisAlloca.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3917 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-24 21:19:41 +00:00
Chris Lattner
929b2c6900 Fix bug: SimplifyCFG/2002-09-24-PHIAssertion.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3913 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-24 16:09:17 +00:00
Chris Lattner
f03cafc280 - Do not expose Critical Edge breaking mechanics outside the BCE pass, thus
removing it from Transforms/Local.h and from Transforms/Utils/*


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3911 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-24 15:52:01 +00:00
Chris Lattner
eb0456c8fd - Do not expose Critical Edge breaking mechanics outside the BCE pass, thus
removing it from Transforms/Local.h and from Transforms/Utils/*


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3910 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-24 15:51:56 +00:00
Chris Lattner
6de302bbdb - Expose passinfo from BreakCriticalEdges pass so that it may be "Required"
by other passes.  Make BCE pass be in anonymous namespace now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3907 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-24 15:43:12 +00:00
Chris Lattner
3abb95df01 Minor cleanups
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3904 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-24 00:09:26 +00:00
Chris Lattner
d76efa0186 Add new BreakCriticalEdges pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3903 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-24 00:08:39 +00:00
Chris Lattner
d149c053cd Insert resolved constants into the global map so they are reused correctly.
This bug was exposed linking the SPEC benchmark suite.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3888 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-23 18:14:15 +00:00
Chris Lattner
1a7db9be56 Fix bug I introduced with one of my previous changes.
Thanks fly out to Nick for noticing it!  :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3691 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-12 19:00:43 +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
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
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
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
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
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
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