| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
update all the callers.
llvm-svn: 82889
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
that get created during loop unswitching, and fix SplitBlockPredecessors'
LCSSA updating code to create new PHIs instead of trying to just move
existing ones.
Also, optimize Loop::verifyLoop, since it gets called a lot. Use
searches on a sorted list of blocks instead of calling the "contains"
function, as is done in other places in the Loop class, since "contains"
does a linear search. Also, don't call verifyLoop from LoopSimplify or
LCSSA, as the PassManager is already calling verifyLoop as part of
LoopInfo's verifyAnalysis.
llvm-svn: 81221
|
| |
|
|
|
|
| |
tests significantly.
llvm-svn: 81101
|
| |
|
|
|
|
|
|
|
| |
that these passes are properly preserved.
Fix several transformation passes that claimed to preserve LoopSimplify
form but weren't.
llvm-svn: 80926
|
| |
|
|
|
|
|
|
| |
instead of a bool argument, and to do the dominator check itself.
This makes it eaiser to use when DominatorTree information is
available.
llvm-svn: 80920
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and introduce a new Instruction::isIdenticalTo which tests for full
identity, including the SubclassOptionalData flags. Also, fix the
Instruction::clone implementations to preserve the SubclassOptionalData
flags. Finally, teach several optimizations how to handle
SubclassOptionalData correctly, given these changes.
This fixes the counterintuitive behavior of isIdenticalTo not comparing
the full value, and clone not returning an identical clone, as well as
some subtle bugs that could be caused by these.
Thanks to Nick Lewycky for reporting this, and for an initial patch!
llvm-svn: 80038
|
| |
|
|
| |
llvm-svn: 78948
|
| |
|
|
|
|
|
|
| |
change back are
metadata related, which I'm waiting on to avoid conflicting with Devang.
llvm-svn: 77721
|
| |
|
|
| |
llvm-svn: 77635
|
| |
|
|
|
|
| |
getAnalysisIfAvailable<TargetData>().
llvm-svn: 77028
|
| |
|
|
| |
llvm-svn: 77009
|
| |
|
|
| |
llvm-svn: 76702
|
| |
|
|
|
|
|
|
|
| |
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").
llvm-svn: 75640
|
| |
|
|
|
|
| |
and abort()/exit() -> llvm_report_error().
llvm-svn: 75363
|
| |
|
|
|
|
| |
the [I|F]CmpInst constructors. Who knew!?
llvm-svn: 75200
|
| |
|
|
| |
llvm-svn: 74807
|
| |
|
|
|
|
|
|
|
|
|
|
| |
CallbackVH, with fixes. allUsesReplacedWith need to
walk the def-use chains and invalidate all users of a
value that is replaced. SCEVs of users need to be
recalcualted even if the new value is equivalent. Also,
make forgetLoopPHIs walk def-use chains, since any
SCEV that depends on a PHI should be recalculated when
more information about that PHI becomes available.
llvm-svn: 70927
|
| |
|
|
|
|
| |
FindFunctionBackedges function.
llvm-svn: 70819
|
| |
|
|
| |
llvm-svn: 70661
|
| |
|
|
|
|
|
|
|
| |
makes ScalarEvolution::deleteValueFromRecords, and it's code that
subtly needed to be called before ReplaceAllUsesWith, unnecessary.
It also makes ValueDeletionListener unnecessary.
llvm-svn: 70645
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of returning a list of pointers to Values that are deleted. This was
unsafe, because the pointers in the list are, by nature of what
RecursivelyDeleteDeadInstructions does, always dangling. Replace this
with a simple callback mechanism. This may eventually be removed if
all clients can reasonably be expected to use CallbackVH.
Use this to factor out the dead-phi-cycle-elimination code from LSR
utility function, and generalize it to use the
RecursivelyDeleteTriviallyDeadInstructions utility function.
This makes LSR more aggressive about eliminating dead PHI cycles;
adjust tests to either be less trivial or to simply expect fewer
instructions.
llvm-svn: 70636
|
| |
|
|
| |
llvm-svn: 66000
|
| |
|
|
|
|
|
| |
feed into llvm.dbg.declare nodes, as well as
the debug directives themselves.
llvm-svn: 65976
|
| |
|
|
|
|
|
|
| |
use, check also for the case where it has two uses,
the other being a llvm.dbg.declare. This is needed so
debug info doesn't affect codegen.
llvm-svn: 65970
|
| |
|
|
|
|
| |
and put @file directives on their own comment line.
llvm-svn: 65920
|
| |
|
|
|
|
|
|
| |
info with it.
Don't count debug info insns against the scan maximum
in FindAvailableLoadedValue (lest they affect codegen).
llvm-svn: 65910
|
| |
|
|
|
|
|
|
|
|
|
| |
predecessor, instead of removing it. This fixes following tests from llvmgcc42 testsuite.
gcc.c-torture/execute/20000605-3.c
gcc.c-torture/execute/20020619-1.c
gcc.c-torture/execute/20030920-1.c
gcc.c-torture/execute/loop-ivopts-1.c
llvm-svn: 65353
|
| |
|
|
|
|
| |
llvm.dbg.func.start also.
llvm-svn: 64278
|
| |
|
|
| |
llvm-svn: 63198
|
| |
|
|
| |
llvm-svn: 60501
|
| |
|
|
| |
llvm-svn: 60469
|
| |
|
|
| |
llvm-svn: 60468
|
| |
|
|
|
|
|
| |
unconditionally delete the block. All likely clients will
do the checking anyway.
llvm-svn: 60464
|
| |
|
|
|
|
| |
DeleteBlockIfDead method.
llvm-svn: 60463
|
| |
|
|
|
|
| |
FindAvailableLoadedValue
llvm-svn: 60169
|
| |
|
|
|
|
| |
if it has it.
llvm-svn: 60167
|
| |
|
|
| |
llvm-svn: 60166
|
| |
|
|
| |
llvm-svn: 58651
|
| |
|
|
| |
llvm-svn: 56994
|
| |
|
|
| |
llvm-svn: 55971
|
| |
|
|
| |
llvm-svn: 53760
|
| |
|
|
|
|
| |
more than once.
llvm-svn: 53731
|
| |
|
|
| |
llvm-svn: 53705
|
| |
|
|
|
|
| |
r48047 r48084 r48085 r48086 r48088 r48096 r48099 r48109 and r48123.
llvm-svn: 50265
|
| |
|
|
|
|
|
|
|
| |
as a global helper function. At the same type, switch it from taking
a vector of predecessors to an arbitrary sequential input. This allows
us to switch LoopSimplify to use a SmallVector for various temporary
vectors that it passed into SplitBlockPredecessors.
llvm-svn: 50020
|
| |
|
|
|
|
|
|
| |
Specifically, introduction of XXX::Create methods
for Users that have a potentially variable number of
Uses.
llvm-svn: 49277
|
| |
|
|
|
|
|
| |
Add the ability to remove just one instance of a BB from a phi node. This fixes
the compile error in the tree now.
llvm-svn: 48085
|
| |
|
|
| |
llvm-svn: 45418
|
| |
|
|
|
|
| |
This involves a small interface change.
llvm-svn: 44348
|
| |
|
|
|
|
|
|
| |
second part dominates all the blocks dominated
by original basic block. And first part dominates
second part.
llvm-svn: 40035
|