| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
emitting comments. These flags carry semantic information not otherwise
easily derivable from the IR text.
llvm-svn: 87016
|
| |
|
|
| |
llvm-svn: 87015
|
| |
|
|
|
|
| |
make it permanent and remove old way of inserting intrinsics to encode debug info for line number and scopes.
llvm-svn: 87014
|
| |
|
|
|
|
| |
they really are not duplicable.
llvm-svn: 87009
|
| |
|
|
| |
llvm-svn: 87002
|
| |
|
|
|
|
|
| |
to directly follow the jump table. Move the layout changes to prior to any
constant island handling.
llvm-svn: 86999
|
| |
|
|
|
|
| |
to not take an undefined value as input.
llvm-svn: 86997
|
| |
|
|
| |
llvm-svn: 86987
|
| |
|
|
|
|
| |
quite tricky.
llvm-svn: 86986
|
| |
|
|
| |
llvm-svn: 86984
|
| |
|
|
| |
llvm-svn: 86980
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
running IPSCCP early, and we run functionattrs interlaced with the inliner,
we often (particularly for small or noop functions) completely propagate
all of the information about a call to its call site in IPSSCP (making a call
dead) and functionattrs is smart enough to realize that the function is
readonly (because it is interlaced with inliner).
To improve compile time and make the inliner threshold more accurate, realize
that we don't have to inline dead readonly function calls. Instead, just
delete the call. This happens all the time for C++ codes, here are some
counters from opt/llvm-ld counting the number of times calls were deleted vs
inlined on various apps:
Tramp3d opt:
5033 inline - Number of call sites deleted, not inlined
24596 inline - Number of functions inlined
llvm-ld:
667 inline - Number of functions deleted because all callers found
699 inline - Number of functions inlined
483.xalancbmk opt:
8096 inline - Number of call sites deleted, not inlined
62528 inline - Number of functions inlined
llvm-ld:
217 inline - Number of allocas merged together
2158 inline - Number of functions inlined
471.omnetpp:
331 inline - Number of call sites deleted, not inlined
8981 inline - Number of functions inlined
llvm-ld:
171 inline - Number of functions deleted because all callers found
629 inline - Number of functions inlined
Deleting a call is much faster than inlining it, and is insensitive to the
size of the callee. :)
llvm-svn: 86975
|
| |
|
|
| |
llvm-svn: 86972
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
cannot be folded into target cmp instruction.
- Avoid a phase ordering issue where early cmp optimization would prevent the
later count-to-zero optimization.
- Add missing checks which could cause LSR to reuse stride that does not have
users.
- Fix a bug in count-to-zero optimization code which failed to find the pre-inc
iv's phi node.
- Remove, tighten, loosen some incorrect checks disable valid transformations.
- Quite a bit of code clean up.
llvm-svn: 86969
|
| |
|
|
| |
llvm-svn: 86965
|
| |
|
|
| |
llvm-svn: 86964
|
| |
|
|
|
|
| |
other build system about the new C_INCLUDE_DIRS configure option.
llvm-svn: 86960
|
| |
|
|
|
|
| |
The clang patch is next.
llvm-svn: 86955
|
| |
|
|
|
|
|
|
| |
functions like floorf, ceilf, ... Add test for detecting nearbyintf.
This change was prompted by test/Transforms/SimplifyLibCalls/floor.ll
llvm-svn: 86954
|
| |
|
|
|
|
|
| |
which implements GCC PR18046. This also gets us 360 more
jump threads on 176.gcc.
llvm-svn: 86953
|
| |
|
|
| |
llvm-svn: 86952
|
| |
|
|
|
|
|
|
| |
making the new LVI stuff smart enough to subsume some special
cases in the old code. Disable them when LVI is around, the
testcase still passes.
llvm-svn: 86951
|
| |
|
|
|
|
|
| |
constant constraints. Improve the LVI lattice to include inequality
constraints.
llvm-svn: 86950
|
| |
|
|
|
|
| |
MachineBasicBlock so other passes can utilize it.
llvm-svn: 86947
|
| |
|
|
|
|
| |
way to do it forthcoming anyway.
llvm-svn: 86945
|
| |
|
|
|
|
|
|
| |
otherwise create a stub.
Add a test to make sure we don't create extraneous stubs.
llvm-svn: 86941
|
| |
|
|
| |
llvm-svn: 86933
|
| |
|
|
|
|
| |
CreateNSWSub functions.
llvm-svn: 86930
|
| |
|
|
| |
llvm-svn: 86929
|
| |
|
|
| |
llvm-svn: 86928
|
| |
|
|
| |
llvm-svn: 86927
|
| |
|
|
| |
llvm-svn: 86926
|
| |
|
|
|
|
| |
allows us to handle the test10 testcase.
llvm-svn: 86924
|
| |
|
|
| |
llvm-svn: 86923
|
| |
|
|
| |
llvm-svn: 86920
|
| |
|
|
|
|
| |
miscompilations casued by PreAllocSplitting.
llvm-svn: 86919
|
| |
|
|
|
|
| |
the basic.ll testcase.
llvm-svn: 86918
|
| |
|
|
| |
llvm-svn: 86917
|
| |
|
|
|
|
|
| |
This allows StringRef to skip controversial if(str) check in constructor.
Buildbots, wait for corresponding clang and llvm-gcc FE check-ins!
llvm-svn: 86914
|
| |
|
|
|
|
| |
can be made to fall through into the other.
llvm-svn: 86909
|
| |
|
|
|
|
| |
"nounwind" attribute.
llvm-svn: 86897
|
| |
|
|
| |
llvm-svn: 86895
|
| |
|
|
|
|
| |
strswitch.
llvm-svn: 86889
|
| |
|
|
|
|
| |
uses LVI info when -enable-jump-threading-lvi is passed.
llvm-svn: 86886
|
| |
|
|
|
|
|
| |
instead of typedefs for std::pair. This simplifies the type of
SameTails, which previously was std::vector<std::pair<std::vector<std::pair<unsigned, MachineBasicBlock *> >::iterator, MachineBasicBlock::iterator>
llvm-svn: 86885
|
| |
|
|
|
|
| |
in return registers will be returned through a hidden sret parameter introduced during SelectionDAG construction.
llvm-svn: 86876
|
| |
|
|
| |
llvm-svn: 86875
|
| |
|
|
|
|
| |
debug info.
llvm-svn: 86874
|
| |
|
|
| |
llvm-svn: 86873
|
| |
|
|
|
|
|
|
|
|
|
| |
tail merging support to handle more cases.
- Recognize several cases where tail merging is beneficial even when
the tail size is smaller than the generic threshold.
- Make use of MachineInstrDesc::isBarrier to help detect
non-fallthrough blocks.
- Check for and avoid disrupting fall-through edges in more cases.
llvm-svn: 86871
|