| Commit message (Collapse) | Author | Age | Files | Lines | 
| ... |  | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
slots.  The AsmPrinter will use this information to determine whether to
print a spill/reload comment.
Remove default argument values.  It's too easy to pass a wrong argument
value when multiple arguments have default values.  Make everything
explicit to trap bugs early.
Update all targets to adhere to the new interfaces..
llvm-svn: 87022
 | 
| | 
| 
| 
| 
| 
|  | 
StringsEqualNoCase (from StringExtras.h) to it.
llvm-svn: 87020
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
making it visible to clients and adding LLVM-style cast capability.
This will be used by AsmPrinter to determine when to emit spill comments
for an instruction.
llvm-svn: 87019
 | 
| | 
| 
| 
|  | 
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
 | 
| | 
| 
| 
| 
| 
| 
|  | 
to directly follow the jump table. Move the layout changes to prior to any
constant island handling.
llvm-svn: 86999
 | 
| | 
| 
| 
|  | 
llvm-svn: 86987
 | 
| | 
| 
| 
| 
| 
|  | 
quite tricky.
llvm-svn: 86986
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
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
 | 
| | 
| 
| 
| 
| 
| 
|  | 
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
 | 
| | 
| 
| 
|  | 
llvm-svn: 86928
 | 
| | 
| 
| 
|  | 
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
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
- Edges are split before any phis are eliminated, so the code is SSA.
- Create a proper IR BasicBlock for the split edges.
- LiveVariables::addNewBlock now has same syntax as
  MachineDominatorTree::addNewBlock. Algorithm calculates predecessor live-out
  set rather than successor live-in set.
This feature still causes some miscompilations.
llvm-svn: 86867
 | 
| | 
| 
| 
| 
| 
|  | 
folded into target icmp instructions.
llvm-svn: 86858
 | 
| | 
| 
| 
|  | 
llvm-svn: 86857
 | 
| | 
| 
| 
|  | 
llvm-svn: 86856
 | 
| | 
| 
| 
|  | 
llvm-svn: 86855
 | 
| | 
| 
| 
| 
| 
|  | 
the numbers mean.
llvm-svn: 86854
 | 
| | 
| 
| 
|  | 
llvm-svn: 86853
 | 
| | 
| 
| 
|  | 
llvm-svn: 86851
 | 
| | 
| 
| 
|  | 
llvm-svn: 86850
 |