| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
individual operands instead of taking a temporary array
llvm-svn: 86619
|
|
|
|
|
|
| |
from various APIs, addressing PR5325.
llvm-svn: 86231
|
|
|
|
| |
llvm-svn: 85717
|
|
|
|
|
|
| |
of the ScalarEvolution pass without needing to #include ScalarEvolution.h.
llvm-svn: 85716
|
|
|
|
|
|
| |
clears out more information than just the stored backedge taken count.
llvm-svn: 85664
|
|
|
|
|
|
| |
VISIBILITY_HIDDEN removal.
llvm-svn: 85043
|
|
|
|
|
|
|
| |
Chris claims we should never have visibility_hidden inside any .cpp file but
that's still not true even after this commit.
llvm-svn: 85042
|
|
|
|
| |
llvm-svn: 83649
|
|
|
|
|
|
| |
instructions.
llvm-svn: 83606
|
|
|
|
| |
llvm-svn: 83601
|
|
|
|
| |
llvm-svn: 82898
|
|
|
|
|
|
|
|
| |
where the induction variable has a non-unit stride, such as {0,+,2}, and
there are expressions such as {1,+,2} inside the loop formed with
or or add nsw operators.
llvm-svn: 82151
|
|
|
|
| |
llvm-svn: 80918
|
|
|
|
| |
llvm-svn: 80632
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SCEVUnknowns, as the non-SCEVUnknown cases in the getSCEVAtScope code
can also end up repeatedly climing through the same expression trees,
which can be unusably slow when the trees are very tall.
Also, add a quick check for SCEV pointer equality to the main
SCEV comparison routine, as the full comparison code can be expensive
in the case of large expression trees.
These fix compile-time problems in some pathlogical cases.
llvm-svn: 80623
|
|
|
|
|
|
|
|
| |
will always return the same value. This isn't currently necessary,
since this code doesn't currently ever get called under circumstances
where it would matter, but it may some day.
llvm-svn: 80017
|
|
|
|
| |
llvm-svn: 80014
|
|
|
|
| |
llvm-svn: 79882
|
|
|
|
|
|
| |
update all code that this affects.
llvm-svn: 79830
|
|
|
|
|
|
| |
and hasNoSignedWrap, for consistency with the nuw and nsw properties.
llvm-svn: 79539
|
|
|
|
| |
llvm-svn: 79533
|
|
|
|
|
|
|
| |
by hand, and fix a few places that were using hasInitializer() that
appear to depend on the initializer value.
llvm-svn: 79441
|
|
|
|
|
|
|
|
| |
TargetData is not present. It still uses TargetData when available.
This generalization also fixed some limitations in the TargetData
case; the attached testcase covers this.
llvm-svn: 79344
|
|
|
|
| |
llvm-svn: 78948
|
|
|
|
| |
llvm-svn: 78426
|
|
|
|
|
|
|
|
| |
change back are
metadata related, which I'm waiting on to avoid conflicting with Devang.
llvm-svn: 77721
|
|
|
|
| |
llvm-svn: 77516
|
|
|
|
| |
llvm-svn: 77494
|
|
|
|
| |
llvm-svn: 77193
|
|
|
|
| |
llvm-svn: 77080
|
|
|
|
|
|
|
| |
the step value as unsigned, the start value and the addrec
itself still need to be treated as signed.
llvm-svn: 77078
|
|
|
|
|
|
| |
analyzing add recurrences.
llvm-svn: 77034
|
|
|
|
|
|
|
|
|
|
|
|
| |
affected after a PHI node has been analyzed, just remove affected
SCEVs from the Scalars map, so that they'll be (lazily) recreated as
needed. This avoids creating SCEV objects that aren't actually needed.
Also, rewrite the associated def-use walking code to be non-recursive
and to continue traversing past Instructions that don't have an
entry in the Scalars map.
llvm-svn: 77032
|
|
|
|
|
|
| |
thanks to contexts-on-types. More to come.
llvm-svn: 77011
|
|
|
|
| |
llvm-svn: 76929
|
|
|
|
| |
llvm-svn: 76702
|
|
|
|
|
|
|
|
| |
(x pred y) with more thorough code that does more complete canonicalization
before resorting to range checks. This helps it find more cases where
the canonicalized expressions match.
llvm-svn: 76671
|
|
|
|
|
|
|
| |
as they aren't currently prepared to handle complicated overflow
cases.
llvm-svn: 76524
|
|
|
|
| |
llvm-svn: 76523
|
|
|
|
| |
llvm-svn: 76521
|
|
|
|
| |
llvm-svn: 76505
|
|
|
|
|
|
|
| |
by determining if (B pred (B-A)) is known, as it doesn't handle
overflow correctly.
llvm-svn: 76504
|
|
|
|
| |
llvm-svn: 76496
|
|
|
|
| |
llvm-svn: 76492
|
|
|
|
|
|
|
|
|
|
|
|
| |
Getelementptrs that are defined to wrap are virtually useless to
optimization, and getelementptrs that are undefined on any kind
of overflow are too restrictive -- it's difficult to ensure that
all intermediate addresses are within bounds. I'm going to take
a different approach.
Remove a few optimizations that depended on this flag.
llvm-svn: 76437
|
|
|
|
|
|
|
|
|
| |
in a convenient manner, factoring out some common code from
InstructionCombining and ValueTracking. Move the contents of
BinaryOperators.h into Operator.h and use Operator to generalize them
to support ConstantExprs as well as Instructions.
llvm-svn: 76232
|
|
|
|
|
|
|
|
| |
number of issues in
our current context-passing stuff, which is also fixed here
llvm-svn: 76089
|
|
|
|
|
|
|
| |
analysis. This allows indvars to emit a simpler loop trip count
expression.
llvm-svn: 76085
|
|
|
|
| |
llvm-svn: 75703
|
|
|
|
|
|
|
|
|
| |
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
|