|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | 
| 
| 
| | llvm-svn: 93093 | 
| | 
| 
| 
| | llvm-svn: 93038 | 
| | 
| 
| 
| | llvm-svn: 92760 | 
| | 
| 
| 
| | llvm-svn: 92739 | 
| | 
| 
| 
| 
| 
| | non-zero trip count. Use SmallVector's pop_back_val().
llvm-svn: 92734 | 
| | 
| 
| 
| 
| 
| 
| | RecursivelyDeleteDeadPHINode, and DeleteDeadPHIs return a flag
indicating whether they made any changes.
llvm-svn: 92732 | 
| | 
| 
| 
| 
| 
| | dereference the type pointer.
llvm-svn: 92726 | 
| | 
| 
| 
| | llvm-svn: 92606 | 
| | 
| 
| 
| | llvm-svn: 92605 | 
| | 
| 
| 
| | llvm-svn: 92604 | 
| | 
| 
| 
| | llvm-svn: 92603 | 
| | 
| 
| 
| | llvm-svn: 92602 | 
| | 
| 
| 
| | llvm-svn: 92601 | 
| | 
| 
| 
| | llvm-svn: 92600 | 
| | 
| 
| 
| | llvm-svn: 92599 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | Intrinsic::dbg_stoppoint
 Intrinsic::dbg_region_start 
 Intrinsic::dbg_region_end 
 Intrinsic::dbg_func_start
AutoUpgrade simply ignores these intrinsics now.
llvm-svn: 92557 | 
| | 
| 
| 
| 
| 
| 
| | by moving one method out of line and eliminating redundant checks
from other methods.
llvm-svn: 92337 | 
| | 
| 
| 
| 
| 
| 
| | things that occur in types.  "operands" are things that occur
in values.
llvm-svn: 92322 | 
| | 
| 
| 
| | llvm-svn: 92264 | 
| | 
| 
| 
| | llvm-svn: 92260 | 
| | 
| 
| 
| 
| 
| 
| 
| | getMDKindID/getMDKindNames methods to LLVMContext (and add
convenience methods to Module), eliminating MetadataContext.
Move the state that it maintains out to LLVMContext.
llvm-svn: 92259 | 
| | 
| 
| 
| | llvm-svn: 92256 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | I asked Devang to do back on Sep 27.  Instead of going through the
MetadataContext class with methods like getMD() and getMDs(), just
ask the instruction directly for its metadata with getMetadata()
and getAllMetadata().
This includes a variety of other fixes and improvements: previously
all Value*'s were bloated because the HasMetadata bit was thrown into
value, adding a 9th bit to a byte.  Now this is properly sunk down to
the Instruction class (the only place where it makes sense) and it
will be folded away somewhere soon.
This also fixes some confusion in getMDs and its clients about 
whether the returned list is indexed by the MDID or densely packed.
This is now returned sorted and densely packed and the comments make
this clear.
This introduces a number of fixme's which I'll follow up on.
llvm-svn: 92235 | 
| | 
| 
| 
| 
| 
| 
| | doesn't exist already, eliminate registerMDKind.  Tidy up a bunch
of random stuff.
llvm-svn: 92225 | 
| | 
| 
| 
| 
| 
| | no functionality change.
llvm-svn: 91848 | 
| | 
| 
| 
| 
| 
| | the underlying PHI node insertion issue in SSAUpdate is fixed.
llvm-svn: 91821 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | 'GetValueInMiddleOfBlock' case, instead of inserting 
duplicates.
A similar fix is almost certainly needed by the machine-level
SSAUpdate implementation.
llvm-svn: 91820 | 
| | 
| 
| 
| 
| 
| 
| 
| | contains another loop, or an instruction. The loop form is
substantially more efficient on large loops than the typical
code it replaces.
llvm-svn: 91654 | 
| | 
| 
| 
| | llvm-svn: 91645 | 
| | 
| 
| 
| 
| 
| 
| 
| | isPodLike type trait.  This is a generally useful type trait for
more than just DenseMap, and we really care about whether something
acts like a pod, not whether it really is a pod.
llvm-svn: 91421 | 
| | 
| 
| 
| 
| 
| | about the potential use of these uninitialized members under certain conditions.
llvm-svn: 91239 | 
| | 
| 
| 
| | llvm-svn: 90836 | 
| | 
| 
| 
| 
| 
| | a compile time perf optimization to avoid a load.
llvm-svn: 90507 | 
| | 
| 
| 
| 
| 
| | Patch by Howard Hinnant!
llvm-svn: 90365 | 
| | 
| 
| 
| | llvm-svn: 90324 | 
| | 
| 
| 
| | llvm-svn: 89645 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | it may be used in contexts where preheader insertion may have failed due
to an indirectbr.
Make LoopSimplify's LoopSimplify::SeparateNestedLoop properly fail in
the case that it would require splitting an indirectbr edge.
These fix PR5502.
llvm-svn: 89484 | 
| | 
| 
| 
| 
| 
| | introduce these, and it's beneficial to later passes to clean them up.
llvm-svn: 89298 | 
| | 
| 
| 
| | llvm-svn: 89297 | 
| | 
| 
| 
| | llvm-svn: 86933 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | llvm.invariant.start to be used without necessarily being paired with a call
to llvm.invariant.end.  If you run the entire optimization pipeline then such
calls are in fact deleted (adce does it), but that's actually a good thing since
we probably do want them to be zapped late in the game.  There should really be
an integration test that checks that the llvm.invariant.start call lasts long
enough that all passes that do interesting things with it get to do their stuff
before it is deleted.  But since no passes do anything interesting with it yet
this will have to wait for later.
llvm-svn: 86840 | 
| | 
| 
| 
| | llvm-svn: 86748 | 
| | 
| 
| 
| 
| 
| | into libanalysis and transformutils.
llvm-svn: 86735 | 
| | 
| 
| 
| | llvm-svn: 86666 | 
| | 
| 
| 
| 
| 
| | individual operands instead of taking a temporary array
llvm-svn: 86619 | 
| | 
| 
| 
| | llvm-svn: 86575 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | the loop. This is needed because with indirectbr it may not be possible
for LoopSimplify to guarantee that all loop exit predecessors are
inside the loop. This fixes PR5437.
LCCSA no longer actually requires LoopSimplify form, but for now it
must still have the dependency because the PassManager doesn't know
how to schedule LoopSimplify otherwise.
llvm-svn: 86569 | 
| | 
| 
| 
| 
| 
| | from various APIs, addressing PR5325.
llvm-svn: 86231 | 
| | 
| 
| 
| 
| 
| 
| | on loops having dedicated exits, which LoopSimplify can no longer always
guarantee.
llvm-svn: 86181 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | unsplittable critical edges, which means the introduction of
loops which cannot be transformed to LoopSimplify form. Fix
LoopSimplify to avoid transforming such loops into invalid
code.
llvm-svn: 86176 |