| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
emitted after the increment. Make sure the insert position
reflects this. This fixes PR6453.
llvm-svn: 97537
|
| |
|
|
|
|
| |
a loop and is itself the only dependency).
llvm-svn: 97526
|
| |
|
|
|
|
|
|
| |
predecessors before returning. Otherwise, if multiple predecessor edges need
splitting, we only get one of them per iteration. This makes a small but
measurable compile time improvement with -enable-full-load-pre.
llvm-svn: 97521
|
| |
|
|
| |
llvm-svn: 97512
|
| |
|
|
| |
llvm-svn: 97453
|
| |
|
|
| |
llvm-svn: 97366
|
| |
|
|
| |
llvm-svn: 97313
|
| |
|
|
|
|
| |
of a subtle interation in a loop operating in densemap order.
llvm-svn: 97288
|
| |
|
|
|
|
| |
argument of createGVNPass and set it automatically for -O3.
llvm-svn: 97245
|
| |
|
|
| |
llvm-svn: 97235
|
| |
|
|
|
|
|
|
|
|
|
|
| |
which branch on undef to branch on a boolean constant for the edge
exiting the loop. This helps ScalarEvolution compute trip counts for
loops.
Teach ScalarEvolution to recognize single-value PHIs, when safe, and
ForgetSymbolicName to forget such single-value PHI nodes as apprpriate
in ForgetSymbolicName.
llvm-svn: 97126
|
| |
|
|
| |
llvm-svn: 97036
|
| |
|
|
|
|
| |
the DominatorTree. ...", in hopes of restoring poor old PPC bootstrap.
llvm-svn: 97027
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
argument is non-null, pass it along to PHITranslateSubExpr so that it can
prefer using existing values that dominate the PredBB, instead of just
blindly picking the first equivalent value that it finds on a uselist.
Also when the DominatorTree is specified, have PHITranslateValue filter
out any result that does not dominate the PredBB. This is basically just
refactoring the check that used to be in GetAvailablePHITranslatedSubExpr
and also in GVN.
Despite my initial expectations, this change does not affect the results
of GVN for any testcases that I could find, but it should help compile time.
Before this change, if PHITranslateSubExpr picked a value that does not
dominate, PHITranslateWithInsertion would then insert a new value, which GVN
would later determine to be redundant and would replace. By picking a good
value to begin with, we save GVN the extra work of inserting and then
replacing a new value.
llvm-svn: 97010
|
| |
|
|
|
|
| |
I don't have a small testcase for this.
llvm-svn: 96890
|
| |
|
|
|
|
| |
failures from ValueTable::verifyRemoved() when using -debug.
llvm-svn: 96805
|
| |
|
|
| |
llvm-svn: 96780
|
| |
|
|
|
|
|
|
|
| |
induction variable value and a loop-variant value, don't force the
insert position to be at the post-increment position, because it may
not be dominated by the loop-variant value. This fixes a
use-before-def problem noticed on PPC.
llvm-svn: 96774
|
| |
|
|
| |
llvm-svn: 96771
|
| |
|
|
|
|
| |
the division would have a remainder.
llvm-svn: 96693
|
| |
|
|
|
|
| |
scaled reuse.
llvm-svn: 96692
|
| |
|
|
|
|
| |
to be spurious
llvm-svn: 96662
|
| |
|
|
| |
llvm-svn: 96653
|
| |
|
|
|
|
|
|
| |
strides in foreign loops. This helps locate reuse opportunities
with existing induction variables in foreign loops and reduces
the need for inserting new ones. This fixes rdar://7657764.
llvm-svn: 96629
|
| |
|
|
|
|
|
|
| |
a loop exit value, so that if a loop gets deleted, ScalarEvolution
isn't stick holding on to dangling SCEVAddRecExprs for that loop. This
fixes PR6339.
llvm-svn: 96626
|
| |
|
|
| |
llvm-svn: 96614
|
| |
|
|
| |
llvm-svn: 96429
|
| |
|
|
|
|
| |
have overflowed.
llvm-svn: 96428
|
| |
|
|
| |
llvm-svn: 96387
|
| |
|
|
| |
llvm-svn: 96382
|
| |
|
|
| |
llvm-svn: 96378
|
| |
|
|
|
|
| |
terminator's list of successors.
llvm-svn: 96377
|
| |
|
|
| |
llvm-svn: 96372
|
| |
|
|
|
|
|
| |
and T->isPointerTy(). Convert most instances of the first form to the second form.
Requested by Chris.
llvm-svn: 96344
|
| |
|
|
|
|
|
| |
as it also peeks at which registers are being used by other uses. This
makes LSR less sensitive to use-list order.
llvm-svn: 96308
|
| |
|
|
|
|
| |
isInteger, we now have isFloatTy and isIntegerTy. Requested by Chris!
llvm-svn: 96223
|
| |
|
|
| |
llvm-svn: 96179
|
| |
|
|
| |
llvm-svn: 96178
|
| |
|
|
|
|
|
|
|
|
| |
with multiplication by constants distributed through, occasionally
those subexpressions can include both x and -x. For now, if this
condition is discovered within LSR, just prune such cases away,
as they won't be profitable. This fixes a "zero allocated in a
base register" assertion failure.
llvm-svn: 96177
|
| |
|
|
|
|
|
| |
the no-TLI case. But it should still default to declining the
transformation.
llvm-svn: 96152
|
| |
|
|
|
|
| |
because profitability can't be sufficiently approximated.
llvm-svn: 96148
|
| |
|
|
|
|
| |
from opt.
llvm-svn: 96135
|
| |
|
|
| |
llvm-svn: 96109
|
| |
|
|
|
|
|
|
|
|
|
|
| |
and add a doxygen comment.
Cache the phi entry to avoid doing tons of
PHINode::getBasicBlockIndex calls in the common case.
On my insane testcase from re2c, this speeds up CGP from
617.4s to 7.9s (78x).
llvm-svn: 96083
|
| |
|
|
|
|
| |
instead of with pred_begin/end.
llvm-svn: 96078
|
| |
|
|
|
|
| |
deterministically sorted.
llvm-svn: 96071
|
| |
|
|
| |
llvm-svn: 96005
|
| |
|
|
|
|
| |
offset distributions it doesn't expect.
llvm-svn: 96002
|
| |
|
|
|
|
| |
is breaking llvm-gcc bootstrap.
llvm-svn: 95988
|
| |
|
|
|
|
|
| |
doesn't matter, except that ScalarEvolution tends to need less time
to fold the results this way.
llvm-svn: 95979
|