| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
| |
with calls, is
not unrolling loops that contain calls that would be better off getting inlined. This mostly
comes up when an interleaved devirtualization pass has devirtualized a call which the inliner
will inline on a future pass. Thus, rather than blocking all loops containing calls, add
a metric for "inline candidate calls" and block loops containing those instead.
llvm-svn: 113535
|
| |
|
|
| |
llvm-svn: 113521
|
| |
|
|
|
|
|
|
|
|
|
| |
and into CodeMetrics. They
don't use any InlineCostAnalyzer state, and are useful for other clients who don't necessarily want to use
all of InlineCostAnalyzer's logic, some of which is fairly inlining-specific.
No intended functionality change.
llvm-svn: 113499
|
| |
|
|
|
|
|
|
| |
AliasAnalysis, and some code for implementing the new query on top of
existing implementations by making standard alias and getModRefInfo
queries.
llvm-svn: 113329
|
| |
|
|
|
|
|
|
| |
#include clutter
and exposing internal details.
llvm-svn: 113252
|
| |
|
|
|
|
| |
teach LazyValueInfo to use them.
llvm-svn: 113196
|
| |
|
|
| |
llvm-svn: 113144
|
| |
|
|
| |
llvm-svn: 113135
|
| |
|
|
|
|
|
|
|
|
| |
Loop::hasLoopInvariantOperands method. Remove
a useless and confusing Loop::isLoopInvariant(Instruction)
method, which didn't do what you thought it did.
No functionality change.
llvm-svn: 113133
|
| |
|
|
| |
llvm-svn: 113109
|
| |
|
|
| |
llvm-svn: 113077
|
| |
|
|
| |
llvm-svn: 113073
|
| |
|
|
|
|
|
|
|
| |
invertible. ScalarEvolution's folding routines don't always succeed
in canonicalizing equal expressions to a single canonical form, and
this can cause these asserts to fail, even though there's no actual
correctness problem. This fixes PR8066.
llvm-svn: 113021
|
| |
|
|
|
|
|
|
| |
global when it
is provable that they're equivalent. This fixes PR4855.
llvm-svn: 112994
|
| |
|
|
|
|
| |
comments, these don't happen anymore.
llvm-svn: 112901
|
| |
|
|
|
|
|
|
| |
default edges of
switches. Just return the conservatively correct answer.
llvm-svn: 112876
|
| |
|
|
|
|
|
|
| |
LVI lattice, undef and the full set ConstantRange should not
be treated as equivalent.
llvm-svn: 112843
|
| |
|
|
|
|
| |
by 112440 are resolved.
llvm-svn: 112692
|
| |
|
|
| |
llvm-svn: 112667
|
| |
|
|
| |
llvm-svn: 112666
|
| |
|
|
|
|
| |
inner loop doesn't update all the variables in the outer loop.
llvm-svn: 112665
|
| |
|
|
| |
llvm-svn: 112638
|
| |
|
|
| |
llvm-svn: 112608
|
| |
|
|
|
|
|
|
|
| |
dealing with ptrtoint ConstantExpr's.
Unfortunately, the only testcase I have for this is huge and doesn't reduce well because the error is
sensitive to iteration-order issues, since the problem only occurs when merging values in a particular order.
llvm-svn: 112489
|
| |
|
|
|
|
| |
llvm::format.
llvm-svn: 112479
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
assertingvh so we get a violent explosion if the pointer dangles.
2) Fix AliasSetTracker::deleteValue to remove call sites with
by-pointer comparisons instead of by-alias queries. Using
findAliasSetForCallSite can cause alias sets to get merged
when they shouldn't, and can also miss alias sets when the
call is readonly.
#2 fixes PR6889, which only repros with a .c file :(
llvm-svn: 112452
|
| |
|
|
|
|
|
| |
This has the side effect of reversing the order of most of
IVUser's results.
llvm-svn: 112442
|
| |
|
|
|
|
|
| |
all applicable addrecs before recursing on getMulExpr, instead of
recursing on getMulExpr for each one.
llvm-svn: 112433
|
| |
|
|
|
|
| |
operations.
llvm-svn: 112432
|
| |
|
|
| |
llvm-svn: 112431
|
| |
|
|
|
|
| |
with the Add code.
llvm-svn: 112430
|
| |
|
|
| |
llvm-svn: 112429
|
| |
|
|
| |
llvm-svn: 112428
|
| |
|
|
|
|
|
|
|
| |
of the sets is volatile. We were dropping the volatile bit of the
merged in set, leading (luckily) to assertions in cases like
PR7535. I cannot produce a testcase that repros with opt, but this
is obviously correct.
llvm-svn: 112402
|
| |
|
|
| |
llvm-svn: 112401
|
| |
|
|
| |
llvm-svn: 112400
|
| |
|
|
| |
llvm-svn: 112337
|
| |
|
|
| |
llvm-svn: 112323
|
| |
|
|
|
|
| |
adjacent operands at once, instead of just two at a time.
llvm-svn: 112299
|
| |
|
|
|
|
|
|
| |
transformation collect all the addrecs with the same loop
add combine them at once rather than starting everything over
at the first chance.
llvm-svn: 112290
|
| |
|
|
|
|
| |
to DenseMap.
llvm-svn: 112281
|
| |
|
|
|
|
|
|
| |
condition previously. Update tests for this change.
This fixes PR5652.
llvm-svn: 112270
|
| |
|
|
|
|
|
| |
return to avoid needing two calls to test for equivalence, and sort
addrecs by their degree before examining their operands.
llvm-svn: 112267
|
| |
|
|
|
|
|
|
|
| |
you try to load it. Thus,
any load in the default address space that completes implies that the base value that it GEP'd from
was not null.
llvm-svn: 112015
|
| |
|
|
| |
llvm-svn: 111972
|
| |
|
|
| |
llvm-svn: 111971
|
| |
|
|
|
|
| |
null.
llvm-svn: 111959
|
| |
|
|
| |
llvm-svn: 111906
|
| |
|
|
|
|
| |
Patch by Alexander Herz!
llvm-svn: 111861
|
| |
|
|
|
|
| |
PR 7920.
llvm-svn: 111820
|