|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | 
| 
| 
| | 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 | 
| | 
| 
| 
| 
| 
| | is 'unsigned'.
llvm-svn: 32279 | 
| | 
| 
| 
| 
| 
| | Transforms/LCSSA/2006-10-31-UnreachableBlock-2.ll
llvm-svn: 31317 | 
| | 
| 
| 
| | llvm-svn: 31315 | 
| | 
| 
| 
| | llvm-svn: 29925 |