| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
using the Curiously Recurring Template Pattern with LoopBase.
This will help further refactoring, and future functionality for
Loop. Also, Headers can now foward-declare Loop, instead of pulling
in LoopInfo.h or doing tricks.
llvm-svn: 75519
|
| |
|
|
|
|
|
| |
check for avoiding re-analyzing a widening cast needed to happen
earlier, as getSCEV itself may result in a isLoopGuardedByCond query.
llvm-svn: 75511
|
| |
|
|
| |
llvm-svn: 75497
|
| |
|
|
|
|
|
|
| |
SCEVZeroExtendExpr ahead of the most expensive analysis. This
speeds up analysis and helps avoid pathologically bad behavior
on the testcase in PR4534.
llvm-svn: 75496
|
| |
|
|
|
|
|
| |
a bunch of redundent code in Profile methods, and prepares for upcoming
changes to do improved memoization.
llvm-svn: 75494
|
| |
|
|
|
|
| |
and use it from one more place. Patch by Jakub Staszak!
llvm-svn: 75478
|
| |
|
|
|
|
|
|
|
|
|
| |
so that all code paths get it. PR4256 was about a case where the
phi translation loop would find all preds in the Visited cache, so
it could get by without re-sorting the NonLocalPointerDeps cache.
Fix this by resorting it earlier, there is no reason not to do this.
This patch inspired by Jakub Staszak's patch.
llvm-svn: 75476
|
| |
|
|
|
|
|
|
|
| |
Constants.cpp and ConstantFold.cpp.
This involves temporarily hard wiring some parts to use the global context. This isn't ideal, but it's
the only way I could figure out to make this process vaguely incremental.
llvm-svn: 75445
|
| |
|
|
| |
llvm-svn: 75384
|
| |
|
|
|
|
|
|
|
| |
Make llvm_unreachable take an optional string, thus moving the cerr<< out of
line.
LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for
NDEBUG builds.
llvm-svn: 75379
|
| |
|
|
|
|
| |
and abort()/exit() -> llvm_report_error().
llvm-svn: 75363
|
| |
|
|
|
|
| |
breaks encapsulation. Also remove a dead prototype for setSCEV.
llvm-svn: 75272
|
| |
|
|
|
|
|
| |
of loops. Add several new functions to for working with ScalarEvolution's
add-hoc value-range analysis functionality.
llvm-svn: 75252
|
| |
|
|
|
|
|
|
|
|
|
|
| |
to a loop deletion more thorough. Don't prune the def-use tree search at
instructions that don't have SCEVs computed, because an instruction with
a user that has a computed SCEV may itself lack a computed SCEV. Also,
remove loop-related values from the ValuesAtScopes and
ConstantEvolutionLoopExitValues maps as well.
This fixes a regression in 483.xalancbmk.
llvm-svn: 75030
|
| |
|
|
|
|
| |
module is required.
llvm-svn: 75025
|
| |
|
|
|
|
|
| |
these instructions, no autoupgrade or backwards compatibility support is
provided.
llvm-svn: 74991
|
| |
|
|
| |
llvm-svn: 74985
|
| |
|
|
| |
llvm-svn: 74920
|
| |
|
|
| |
llvm-svn: 74918
|
| |
|
|
| |
llvm-svn: 74910
|
| |
|
|
| |
llvm-svn: 74878
|
| |
|
|
|
|
| |
through the ValueTracking API.
llvm-svn: 74873
|
| |
|
|
|
|
| |
files.
llvm-svn: 74844
|
| |
|
|
|
|
|
| |
than a wider one, before trying to compare their contents which will crash
if their sizes are different.
llvm-svn: 74792
|
| |
|
|
| |
llvm-svn: 74754
|
| |
|
|
| |
llvm-svn: 74733
|
| |
|
|
|
|
| |
Thanks Duncan!
llvm-svn: 74706
|
| |
|
|
|
|
|
|
|
| |
While
we could do this, doing so requires adjusting the demanded mask and the code isn't
doing that yet. This fixes PR4495
llvm-svn: 74699
|
| |
|
|
| |
llvm-svn: 74680
|
| |
|
|
|
|
| |
No functionality change.
llvm-svn: 74652
|
| |
|
|
| |
llvm-svn: 74647
|
| |
|
|
|
|
|
|
| |
arguments/elements
to not have to create a temporary vector (in the API at least). Patch by Jay Foad!
llvm-svn: 74584
|
| |
|
|
| |
llvm-svn: 74551
|
| |
|
|
| |
llvm-svn: 74510
|
| |
|
|
| |
llvm-svn: 74499
|
| |
|
|
| |
llvm-svn: 74492
|
| |
|
|
|
|
|
|
|
|
| |
Constant. This lets ConstantInts be handled as SCEVConstant instead
of SCEVUnknown, as getUnknown no longer has special-case code for
ConstantInt and friends. This usually doesn't affect the final
output, since the constants end up getting folded later, but it
does make intermediate expressions more obvious in many cases.
llvm-svn: 74459
|
| |
|
|
|
|
|
|
| |
an individual exhaustive evaluation reflects only the exit value
implied by an individual exit, which may differ from the actual
exit value of the loop if there are other exits. This fixes PR4477.
llvm-svn: 74447
|
| |
|
|
| |
llvm-svn: 74439
|
| |
|
|
|
|
|
|
|
|
| |
on-the-fly passes as well.
Also don't call finalizers for LoopPass if initialization was not called.
Add a unittest that tests that these methods are called, in the proper
order, and the correct number of times.
llvm-svn: 74438
|
| |
|
|
|
|
|
| |
(otherwise harmless) uninitialized value warnings that
Duncan found with gcc-4.4.
llvm-svn: 74437
|
| |
|
|
| |
llvm-svn: 74416
|
| |
|
|
| |
llvm-svn: 74415
|
| |
|
|
| |
llvm-svn: 74402
|
| |
|
|
| |
llvm-svn: 74401
|
| |
|
|
| |
llvm-svn: 74400
|
| |
|
|
| |
llvm-svn: 74394
|
| |
|
|
|
|
| |
of a team of individual allocations and a team of std::maps.
llvm-svn: 74393
|
| |
|
|
| |
llvm-svn: 74391
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This helps it avoid reusing an instruction that doesn't dominate all
of the users, in cases where the original instruction was inserted
before all of the users were known. This may result in redundant
expansions of sub-expressions that depend on loop-unpredictable values
in some cases, however this isn't very common, and it primarily impacts
IndVarSimplify, so GVN can be expected to clean these up.
This eliminates the need for IndVarSimplify's FixUsesBeforeDefs,
which fixes several bugs.
llvm-svn: 74352
|