| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
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
|
| |
|
|
|
|
| |
called by jump threading.
llvm-svn: 96263
|
| |
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
odd offsets since the bitcasted pointer size and the offset pointer
size are going to be different types for the GEP vs base object.
llvm-svn: 96134
|
| |
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 96081
|
| |
|
|
|
|
|
|
| |
to a PHI, avoid it in the common case where the BB occurs
in the same index for multiple phis. This speeds up CGP on
an insane testcase from 8.35 to 3.58s.
llvm-svn: 96080
|
| |
|
|
|
|
| |
using pred_begin/end. It is much faster.
llvm-svn: 96079
|
| |
|
|
|
|
| |
instead of with pred_begin/end.
llvm-svn: 96078
|
| |
|
|
|
|
| |
deterministically sorted.
llvm-svn: 96071
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Functions explicitly marked inline will get an inlining threshold slightly
more aggressive than the default for -O3. This means than -O3 builds are
mostly unaffected while -Os builds will be a bit bigger and faster.
The difference depends entirely on how many 'inline's are sprinkled on the
source.
In the CINT2006 suite, only these tests are significantly affected under -Os:
Size Time
471.omnetpp +1.63% -1.85%
473.astar +4.01% -6.02%
483.xalancbmk +4.60% 0.00%
Note that 483.xalancbmk runs too quickly to give useful timing results.
llvm-svn: 96066
|
| |
|
|
| |
llvm-svn: 96005
|
| |
|
|
|
|
| |
offset distributions it doesn't expect.
llvm-svn: 96002
|
| |
|
|
|
|
|
|
|
| |
2. don't bother trying to merge globals in non-default sections,
doing so is quite dubious at best anyway.
3. fix a bug reported by Arnaud de Grandmaison where we'd try to
merge two globals in different address spaces.
llvm-svn: 95995
|
| |
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
| |
bug fixes, and with improved heuristics for analyzing foreign-loop
addrecs.
This change also flattens IVUsers, eliminating the stride-oriented
groupings, which makes it easier to work with.
llvm-svn: 95975
|
| |
|
|
|
|
|
|
| |
symbols.
Thanks to Duncan Sands for the testcase!
llvm-svn: 95877
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
what it does. Enhance it to return false to optimizing vector
sign extensions from vector comparisions, which is the idiom used
to get a splatted vector for a vector comparison.
Doing this breaks vector-casts.ll, add some compensating
transformations to handle the important case they cover without
depending on this canonicalization.
This fixes rdar://7434900 a serious pessimization of vector compares.
llvm-svn: 95855
|
| |
|
|
|
|
|
|
|
| |
block. Other blocks may have pointer cycles that will crash
basicaa and other alias analyses. In any case, there is no
point wasting cycles optimizing dead blocks. This fixes
rdar://7635088
llvm-svn: 95852
|
| |
|
|
|
|
| |
instead of considering x|undef -> x, which may not be true.
llvm-svn: 95850
|
| |
|
|
|
|
|
| |
Update testcase accordingly now that we can optimize another
section.
llvm-svn: 95846
|
| |
|
|
| |
llvm-svn: 95828
|
| |
|
|
| |
llvm-svn: 95807
|
| |
|
|
| |
llvm-svn: 95781
|
| |
|
|
|
|
| |
enable constant 0 offset lowering.
llvm-svn: 95691
|
| |
|
|
|
|
| |
consuming for a simple optimization.
llvm-svn: 95671
|
| |
|
|
| |
llvm-svn: 95643
|
| |
|
|
|
|
| |
xform.
llvm-svn: 95642
|
| |
|
|
| |
llvm-svn: 95641
|
| |
|
|
|
|
|
|
|
|
|
| |
Initial skeleton and SCEVUnknown lowering implemented,
the rest should come relatively quickly. Move testcase
to new directory.
Move pass to right before SimplifyLibCalls - which is
moved down a bit so we can take advantage of a few opts.
llvm-svn: 95628
|