aboutsummaryrefslogtreecommitdiff
path: root/lib/Transforms
AgeCommit message (Collapse)Author
2009-07-15Don't restrict the set of instructions where we try to constant-fold the Eli Friedman
operands; it's possible to end up with a constant-foldable operand to most instructions, even those which can't trap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75845 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-15Fix indentation.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75723 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-15Make makeLoopInvariant report whether it made any changes or not,Dan Gohman
and use this to simplify more code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75722 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-14Move EVER MORE stuff over to LLVMContext.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75703 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-14Revert 75571; I'm convinced this isn't the right thing to do.Dale Johannesen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75642 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-14llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable.Torok Edwin
This adds location info for all llvm_unreachable calls (which is a macro now) in !NDEBUG builds. In NDEBUG builds location info and the message is off (it only prints "UREACHABLE executed"). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75640 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-14Require IVUsers after LCSSA, since LCSSA does not preserve IVUsers.Dan Gohman
This results in the pass manager running IVUsers only once for indvars, instead of twice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75633 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-14Fix trivial todo in instcombine.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75586 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-14Update LoopSimplify and LoopUnswitch to use the new makeLoopInvariantDan Gohman
function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75584 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-14Fix indvars to not assume that a loop with a single unique exitDan Gohman
block has a single unique exiting block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75579 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-14Don't delete asm's just because their inputs are undefined;Dale Johannesen
xor R, R is a common and valid idiom for zeroing a register, for example. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75571 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-13PR4548: optimize zext+udiv+trunc to udiv.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75539 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-13Canonicalize boolean +/- a constant to a select.Eli Friedman
(I think it's reasonably clear that we want to have a canonical form for constructs like this; if anyone thinks that a select is not the best canonical form, please tell me.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75531 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-13These don't really need contexts either.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75528 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-13Make Loop and MachineLoop be subclasses of LoopBase, rather than typedefs,Dan Gohman
using the Curiously Recurring Template Pattern with LoopBase. This will help further refactoring, and future functionality for Loop. Also, Headers can now foward-declare Loop, instead of pulling in LoopInfo.h or doing tricks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75519 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-13Misc simplifications to InstCombiner::commonIntCastTransforms. Most of Eli Friedman
the changes are allowed by not calling this function for bitcasts. The Instruction::AShr case is dead because SimplifyDemandedInstructionBits handles that case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75514 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-13Fix comment.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75499 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-13Move more functionality over to LLVMContext.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75497 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-13Don't bother to call commonIntCastTransforms for bitcasts; int->int Eli Friedman
bitcasts will always be eliminated anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75495 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-13Begin the painful process of tearing apart the rat'ss nest that is ↵Owen Anderson
Constants.cpp and ConstantFold.cpp. This involves temporarily hard wiring some parts to use the global context. This isn't ideal, but it's the only way I could figure out to make this process vaguely incremental. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75445 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-12Remove check which is duplicated in Eli Friedman
InstCombiner::visitSelectInstWithICmp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75409 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-11silence a vc++ warning.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75393 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-11assert(0) -> LLVM_UNREACHABLE.Torok Edwin
Make llvm_unreachable take an optional string, thus moving the cerr<< out of line. LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for NDEBUG builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75379 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-11Convert more assert(0)+abort() -> LLVM_UNREACHABLE,Torok Edwin
and abort()/exit() -> llvm_report_error(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75363 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-11Move a method that creates constant ranges relative to another constant rangeNick Lewycky
per icmp predicate out of predsimplify and into ConstantRange. Add another utility method that determines whether one range is a subset of another. Combine with the former to determine whether icmp pred range, range is known to be true or not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75357 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-10Push LLVMContext through the PatternMatch API.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75255 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-09This started as a small change, I swear. Unfortunately, lots of things call ↵Owen Anderson
the [I|F]CmpInst constructors. Who knew!? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75200 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-09A little bit more LLVMContextification.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75159 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-09There's no need to consider PHI nodes in the same block as the instructionNick Lewycky
we're inserting sigma/phi functions for. Patch by Andre Tavares. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75138 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-09Add some statistics to SSI so we can see what it's up to.Nick Lewycky
Add an -ssi-everything pass which calls createSSI on everything in the function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75135 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08Push LLVMContext _back_ through IRBuilder.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75040 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08Tell ScalarEvolution to forget a loop before starting to delete it.Dan Gohman
This way ScalarEvolution can examine the loop to determine what state it needs to update, if it chooses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75029 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08Switch GlobalVariable ctors to a sane API, where *either* a context or a ↵Owen Anderson
module is required. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75025 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08Remove the vicmp and vfcmp instructions. Because we never had a release withNick Lewycky
these instructions, no autoupgrade or backwards compatibility support is provided. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74991 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08Push LLVMContext through GlobalVariables and IRBuilder.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74985 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-07Change all SCEV* to SCEV *.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74918 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-06"LLVMContext* " --> "LLVMContext *"Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74878 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-06Finish LLVMContext-ing lib/Analysis. This required pushing LLVMContext's ↵Owen Anderson
through the ValueTracking API. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74873 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-06Thread LLVMContext through the constant folding APIs, which touches a lot of ↵Owen Anderson
files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74844 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-06More LLVMContext-ification.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74811 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-05More LLVMContext-ification.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74807 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-03Fix build.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74782 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-03Even more passes being LLVMContext'd.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74781 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-03Add Static Single Information construction pass written by André Tavares!Nick Lewycky
Use it by requiring it through the pass manager, then calling its createSSI method on the variables that you want in SSI form. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74780 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-03Add newline at end of file.Duncan Sands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74773 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-03Second batch of passes using LLVMContext.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74753 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-03Convert the first batch of passes to use LLVMContext.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74748 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-02fix inverted logic pointed out by John McCall, noticed by inspection.Chris Lattner
This was considering vector intrinsics to have cost 2, but non-vector intrinsics to have cost 1, which is backward. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74698 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-02Fix a bunch of other places that used operator[] to test whetherDan Gohman
a key is present in a std::map or DenseMap to use find instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74676 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-01Request LCSSA after LoopSimplify. This fixes a problem in which theDan Gohman
PassManager was scheduling LCSSA before LoopSimplify, which does not preserve LCSSA. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74661 91177308-0d34-0410-b5e6-96231b3b80d8