| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 98853
|
| |
|
|
|
|
|
| |
RecyclingAllocator to allow client code to be simpler, and
simplify several clients.
llvm-svn: 98847
|
| |
|
|
|
|
|
|
|
|
|
|
| |
BumpPtrAllocator-allocated region to allow it to be stored in a more
compact form and to avoid the need for a non-trivial destructor call.
Use this new mechanism in ScalarEvolution instead of
FastFoldingSetNode to avoid leaking memory in the case where a
FoldingSetNodeID uses heap storage, and to reduce overall memory
usage.
llvm-svn: 98829
|
| |
|
|
| |
llvm-svn: 98793
|
| |
|
|
| |
llvm-svn: 98762
|
| |
|
|
|
|
|
|
|
|
| |
pointer and length, and allocate the arrays in ScalarEvolution's
BumpPtrAllocator, so that they get released when their owning
SCEV gets released. SCEVs are immutable, so they don't need to worry
about operand array resizing. This fixes a memory leak reported
in PR6637.
llvm-svn: 98755
|
| |
|
|
| |
llvm-svn: 98542
|
| |
|
|
|
|
| |
shift instructions.
llvm-svn: 98416
|
| |
|
|
| |
llvm-svn: 98408
|
| |
|
|
| |
llvm-svn: 98403
|
| |
|
|
|
|
| |
Use CodeMetrics.analyzeBasicBlock() to estimate BB size.
llvm-svn: 98401
|
| |
|
|
|
|
| |
the inner GEP is not a ConstantInt.
llvm-svn: 98359
|
| |
|
|
|
|
|
| |
compute a set of reachable blocks for itself each time it is called, which
is fairly frequently.
llvm-svn: 98179
|
| |
|
|
| |
llvm-svn: 98178
|
| |
|
|
|
|
| |
They are lots of trouble, and they don't matter. This fixes PR6559.
llvm-svn: 98103
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Caller cost info would be reset everytime a callee was inlined. If the
caller has lots of calls and there is some mutual recursion going on, the
caller cost info could be calculated many times.
This patch reduces inliner runtime from 240s to 0.5s for a function with 20000
small function calls.
This is a more conservative version of r98089 that doesn't break the clang
test CodeGenCXX/temp-order.cpp. That test relies on rather extreme inlining
for constant folding.
llvm-svn: 98099
|
| |
|
|
| |
llvm-svn: 98094
|
| |
|
|
|
|
|
|
|
|
|
| |
The Caller cost info would be reset everytime a callee was inlined. If the
caller has lots of calls and there is some mutual recursion going on, the
caller cost info could be calculated many times.
This patch reduces inliner runtime from 240s to 0.5s for a function with 20000
small function calls.
llvm-svn: 98089
|
| |
|
|
|
|
| |
can sometimes help reduce function size.
llvm-svn: 98088
|
| |
|
|
|
|
| |
as LCSSA no longer transforms such uses.
llvm-svn: 98033
|
| |
|
|
| |
llvm-svn: 98026
|
| |
|
|
|
|
|
|
|
| |
This patch updates LLVMDebugVersion to 8.
Debug info descriptors encoded using LLVMDebugVersion 7 is supported.
Corresponding llvmgcc and clang FE commits are required.
llvm-svn: 98020
|
| |
|
|
|
|
| |
file(s) in debug info.
llvm-svn: 97994
|
| |
|
|
|
|
| |
the context is a type. This also eliminates need of CompileUnitMaps maintained by dwarf writer.
llvm-svn: 97990
|
| |
|
|
|
|
| |
light weight wrappers.
llvm-svn: 97988
|
| |
|
|
|
|
| |
This is a first step towards eliminating checks in Descriptor constructors.
llvm-svn: 97975
|
| |
|
|
| |
llvm-svn: 97963
|
| |
|
|
|
|
| |
This is a first step towards eliminating unncessary constructor checks in light weight DIDescriptor wrappers.
llvm-svn: 97947
|
| |
|
|
| |
llvm-svn: 97865
|
| |
|
|
| |
llvm-svn: 97830
|
| |
|
|
|
|
| |
No functionality change.
llvm-svn: 97793
|
| |
|
|
| |
llvm-svn: 97659
|
| |
|
|
|
|
| |
of loops.
llvm-svn: 97642
|
| |
|
|
| |
llvm-svn: 97639
|
| |
|
|
|
|
|
| |
by loop depth and emit loop-invariant subexpressions outside of loops.
This speeds up MultiSource/Applications/viterbi and others.
llvm-svn: 97580
|
| |
|
|
|
|
|
| |
emitted after the increment. Make sure the insert position
reflects this. This fixes PR6453.
llvm-svn: 97537
|
| |
|
|
| |
llvm-svn: 97488
|
| |
|
|
|
|
| |
tantalyzing enough that people keep trying to use it.
llvm-svn: 97483
|
| |
|
|
| |
llvm-svn: 97459
|
| |
|
|
| |
llvm-svn: 97453
|
| |
|
|
| |
llvm-svn: 97449
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
didn't fold anything.
llvm-svn: 97049
|
| |
|
|
| |
llvm-svn: 97048
|
| |
|
|
| |
llvm-svn: 97042
|
| |
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
| |
getelementptr. Despite only doing so in the case where x is a known
array object and c can be converted to an index within range, this
could still be invalid if c is actually the address of an object
allocated outside of LLVM. Also, SCEVExpander, the original motivation
for this code, has since been improved to avoid inttoptr+ptroint in
more cases.
llvm-svn: 96950
|
| |
|
|
|
|
|
|
|
|
| |
operators.
The test difference is just due to the multiplication operands
being commuted (and thus requiring a more elaborate match). In
optimized code, that expression would be folded.
llvm-svn: 96816
|