| Commit message (Collapse) | Author | Age | Files | Lines | 
| | 
| 
| 
|  | 
llvm-svn: 86160
 | 
| | 
| 
| 
| 
| 
|  | 
the IR, and to implement the FIXME'd optimization.
llvm-svn: 83748
 | 
| | 
| 
| 
| 
| 
| 
|  | 
inserted only once, just use vector.  Don't compute ExitBlocks unless we
need it, change std::sort to array_pod_sort.
llvm-svn: 83747
 | 
| | 
| 
| 
|  | 
llvm-svn: 83701
 | 
| | 
| 
| 
|  | 
llvm-svn: 82991
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
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
 |