| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 77635
|
|
|
|
| |
llvm-svn: 76702
|
|
|
|
| |
llvm-svn: 74807
|
|
|
|
|
|
|
| |
an invoke instruction, since the value isn't really live across that
edge.
llvm-svn: 74242
|
|
|
|
|
|
|
|
| |
the predecessors themselves. This halves the time
to optimize the testcase, beyond what my previous patch did.
llvm-svn: 69792
|
|
|
|
|
|
| |
testcase from PR3549. More improvements to come.
llvm-svn: 69788
|
|
|
|
|
|
|
|
|
| |
There is now a direct way from value-use-iterator to incoming block in PHINode's API.
This way we avoid the iterator->index->iterator trip, and especially the costly
getOperandNo() invocation. Additionally there is now an assertion that the iterator
really refers to one of the PHI's Uses.
llvm-svn: 62869
|
|
|
|
|
|
|
|
|
|
|
| |
LoopPass*.
- Although less precise, this means they can be used in clients
without RTTI (who would otherwise need to include LoopPass.h, which
eventually includes things using dynamic_cast). This was the
simplest solution that presented itself, but I am happy to use a
better one if available.
llvm-svn: 58010
|
|
|
|
| |
llvm-svn: 55779
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove the GetResultInst instruction. It is still accepted in LLVM assembly
and bitcode, where it is now auto-upgraded to ExtractValueInst. Also, remove
support for return instructions with multiple values. These are auto-upgraded
to use InsertValueInst instructions.
The IRBuilder still accepts multiple-value returns, and auto-upgrades them
to InsertValueInst instructions.
llvm-svn: 53941
|
|
|
|
| |
llvm-svn: 51890
|
|
|
|
|
|
| |
iterator invalidation. Fixes PR2385.
llvm-svn: 51777
|
|
|
|
|
|
| |
about a third.
llvm-svn: 51565
|
|
|
|
|
|
| |
use it instead of duplicating its functionality.
llvm-svn: 51499
|
|
|
|
|
|
| |
makefile targets to find these better.
llvm-svn: 51143
|
|
|
|
|
|
|
|
|
|
|
| |
address of the PassInfo directly instead of calling getPassInfo.
This eliminates a bunch of dynamic initializations of static data.
Also, fold RegisterPassBase into PassInfo, make a bunch of its
data members const, and rearrange some code to initialize data
members in constructors instead of using setter member functions.
llvm-svn: 51022
|
|
|
|
|
|
|
| |
several things that were neither in an anonymous namespace nor static
but not intended to be global.
llvm-svn: 51017
|
|
|
|
| |
llvm-svn: 50604
|
|
|
|
|
|
|
|
| |
Specifically, introduction of XXX::Create methods
for Users that have a potentially variable number of
Uses.
llvm-svn: 49277
|
|
|
|
| |
llvm-svn: 47375
|
|
|
|
| |
llvm-svn: 45418
|
|
|
|
| |
llvm-svn: 41207
|
|
|
|
|
|
| |
branch is not necessary immediate dominators of merge blcok in all cases.
llvm-svn: 41144
|
|
|
|
| |
llvm-svn: 40604
|
|
|
|
| |
llvm-svn: 40034
|
|
|
|
|
|
|
|
| |
llvm-gcc build to succeed. Without this change it fails in libstdc++
compilation. This causes no regressions in dejagnu tests. However,
someone who knows this code better might want to review it.
llvm-svn: 39924
|
|
|
|
| |
llvm-svn: 39844
|
|
|
|
|
|
| |
This adds redundancy for now.
llvm-svn: 37492
|
|
|
|
| |
llvm-svn: 37407
|
|
|
|
| |
llvm-svn: 37403
|
|
|
|
| |
llvm-svn: 36994
|
|
|
|
| |
llvm-svn: 36873
|
|
|
|
| |
llvm-svn: 36662
|
|
|
|
|
|
|
| |
Due to darwin gcc bug, one version of darwin linker coalesces
static const int, which defauts PassID based pass identification.
llvm-svn: 36652
|
|
|
|
| |
llvm-svn: 36632
|
|
|
|
| |
llvm-svn: 36258
|
|
|
|
| |
llvm-svn: 36247
|
|
|
|
| |
llvm-svn: 36017
|
|
|
|
|
|
|
| |
the Transforms library. This reduces debug library size by 132 KB, debug
binary size by 376 KB, and reduces link time for llvm tools slightly.
llvm-svn: 33939
|
|
|
|
|
|
| |
Revert last patch which caused iteration invalidation.
llvm-svn: 33901
|
|
|
|
| |
llvm-svn: 33897
|
|
|
|
|
|
| |
delete some dead ones.
llvm-svn: 32694
|
|
|
|
|
|
| |
is 'unsigned'.
llvm-svn: 32279
|
|
|
|
|
|
| |
Transforms/LCSSA/2006-10-31-UnreachableBlock-2.ll
llvm-svn: 31317
|
|
|
|
| |
llvm-svn: 31315
|
|
|
|
| |
llvm-svn: 29925
|
|
|
|
|
|
| |
up lcssa much in practice.
llvm-svn: 29465
|