| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
This allows us to keep passing reduced masks to SimplifyDemandedBits, but
know about all the bits if SimplifyDemandedBits fails. This allows instcombine
to simplify cases like the one in the included testcase.
llvm-svn: 154011
|
|
|
|
|
|
| |
Add FIXMEs to places that are non-trivial to fix.
llvm-svn: 145661
|
|
|
|
|
|
|
| |
InstructionSimplify.cpp. Other fixups as needed.
Part of rdar://10500969
llvm-svn: 145559
|
|
|
|
| |
llvm-svn: 135375
|
|
|
|
| |
llvm-svn: 135040
|
|
|
|
|
|
| |
related tweaks to ExprMapKeyType.
llvm-svn: 129443
|
|
|
|
|
|
|
|
|
|
|
| |
with BasicAA's DecomposeGEPExpression, which recently began
using a TargetData. This fixes PR8968, though the testcase
is awkward to reduce.
Also, update several off GetUnderlyingObject's users
which happen to have a TargetData handy to pass it in.
llvm-svn: 124134
|
|
|
|
|
|
|
| |
function so that it can live in Analysis instead of
VMCore.
llvm-svn: 121885
|
|
|
|
| |
llvm-svn: 121727
|
|
|
|
| |
llvm-svn: 121514
|
|
|
|
|
|
|
| |
phi node itself if it occurs in an unreachable basic block. Protect
against this. Hopefully this will fix some more buildbots.
llvm-svn: 119493
|
|
|
|
|
|
|
|
| |
simplified to itself (this can only happen in unreachable blocks).
Change it to return null instead. Hopefully this will fix some
buildbot failures.
llvm-svn: 119490
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
class, uses DominatorTree which is an analysis. This change moves all of
the tricky hasConstantValue logic to SimplifyInstruction, and replaces it
with a very simple literal implementation. I already taught users of
hasConstantValue that need tricky stuff to use SimplifyInstruction instead.
I didn't update InlineFunction because the IR looks like it might be in a
funky state at the point it calls hasConstantValue, which makes calling
SimplifyInstruction dangerous since it can in theory do a lot of tricky
reasoning. This may be a pessimization, for example in the case where
all phi node operands are either undef or a fixed constant.
llvm-svn: 119459
|
|
|
|
| |
llvm-svn: 118822
|
|
|
|
|
|
| |
uint64_t, plus fixes for places I missed before.
llvm-svn: 116875
|
|
|
|
| |
llvm-svn: 116858
|
|
|
|
|
|
| |
for representing object sizes, for consistency with other parts of LLVM.
llvm-svn: 116831
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
exposes an initializeMyPassFunction(), which
must be called in the pass's constructor. This function uses static dependency declarations to recursively initialize
the pass's dependencies.
Clients that only create passes through the createFooPass() APIs will require no changes. Clients that want to use the
CommandLine options for passes will need to manually call the appropriate initialization functions in PassInitialization.h
before parsing commandline arguments.
I have tested this with all standard configurations of clang and llvm-gcc on Darwin. It is possible that there are problems
with the static dependencies that will only be visible with non-standard options. If you encounter any crash in pass
registration/creation, please send the testcase to me directly.
llvm-svn: 116820
|
|
|
|
| |
llvm-svn: 116815
|
|
|
|
|
|
|
|
|
| |
perform initialization without static constructors AND without explicit initialization
by the client. For the moment, passes are required to initialize both their
(potential) dependencies and any passes they preserve. I hope to be able to relax
the latter requirement in the future.
llvm-svn: 116334
|
|
|
|
| |
llvm-svn: 115996
|
|
|
|
| |
llvm-svn: 113073
|
|
|
|
|
|
|
| |
address-taken. This can occur normally, if the code which took the
address got DCEd.
llvm-svn: 111121
|
|
|
|
|
|
| |
had its address taken.
llvm-svn: 111058
|
|
|
|
| |
llvm-svn: 110460
|
|
|
|
| |
llvm-svn: 110410
|
|
|
|
|
|
|
|
| |
address of the static
ID member as the sole unique type identifier. Clean up APIs related to this change.
llvm-svn: 110396
|
|
|
|
|
|
| |
are unknown.
llvm-svn: 110090
|
|
|
|
| |
llvm-svn: 110074
|
|
|
|
| |
llvm-svn: 109045
|
|
|
|
| |
llvm-svn: 108162
|
|
|
|
| |
llvm-svn: 107657
|
|
|
|
| |
llvm-svn: 107656
|
|
|
|
|
|
| |
an argument aliasing itself. Thanks Duncan!
llvm-svn: 105288
|
|
|
|
| |
llvm-svn: 105009
|
|
|
|
| |
llvm-svn: 104970
|
|
|
|
| |
llvm-svn: 104957
|
|
|
|
|
|
| |
reference the stack.
llvm-svn: 104951
|
|
|
|
|
|
|
| |
effective no-op constructs, to make it more effective on
unoptimized IR.
llvm-svn: 104950
|
|
|
|
| |
llvm-svn: 104936
|
|
|
|
|
|
|
| |
option from lintModule, which was an artifact from being
based on Verifier code.
llvm-svn: 104765
|
|
|
|
|
|
| |
and Write, and add a comment explaining this.
llvm-svn: 104756
|
|
|
|
| |
llvm-svn: 104752
|
|
|
|
| |
llvm-svn: 104748
|
|
|
|
| |
llvm-svn: 104744
|
|
|
|
| |
llvm-svn: 102733
|
|
|
|
| |
llvm-svn: 102041
|
|
|
|
| |
llvm-svn: 100841
|
|
|
|
| |
llvm-svn: 100825
|
|
unintended behavior.
llvm-svn: 100798
|