| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 88762
|
| |
|
|
| |
llvm-svn: 88761
|
| |
|
|
|
|
| |
replace broken code in VirtRegRewriter.
llvm-svn: 88753
|
| |
|
|
|
|
|
|
| |
- If destination is a physical register and it has a subreg index, use the
sub-register instead.
This fixes PR5423.
llvm-svn: 88745
|
| |
|
|
| |
llvm-svn: 88738
|
| |
|
|
| |
llvm-svn: 88737
|
| |
|
|
|
|
|
|
|
|
| |
When splitting an edge after a machine basic block with fall-through, we
forgot to insert a jump instruction. Fix this by calling updateTerminator() on
the fall-through block when relevant.
Also be more precise in PHIElimination::isLiveIn.
llvm-svn: 88728
|
| |
|
|
| |
llvm-svn: 88727
|
| |
|
|
|
|
|
|
| |
inserted into the numbering.
PreAllocSplitting is now using this API to insert code.
llvm-svn: 88725
|
| |
|
|
| |
llvm-svn: 88719
|
| |
|
|
|
|
|
|
|
|
|
| |
The BasicBlock associated with a MachineBasicBlock does not necessarily
correspond to the code in the MBB.
Don't insert a new IR BasicBlock when splitting critical edges. We are not
supposed to modify the IR during codegen, and we should be able to do just
fine with a NULL BB.
llvm-svn: 88707
|
| |
|
|
| |
llvm-svn: 88706
|
| |
|
|
| |
llvm-svn: 88704
|
| |
|
|
| |
llvm-svn: 88703
|
| |
|
|
|
|
|
|
| |
target-specific AsmPrinters. Not all comments need DebugInfo.
Re-enable the line numbers comment test.
llvm-svn: 88697
|
| |
|
|
|
|
|
|
|
|
| |
code-size win, and not when it's only likely to be code-size neutral,
such as when only a single instruction would be eliminated and a new
branch would be required.
This fixes rdar://7392894.
llvm-svn: 88692
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
D0<def,dead> = ...
...
= S0<use, kill>
S0<def> = ...
...
D0<def> =
The first D0 def is correctly marked dead, however, livevariables should have
added an implicit def of S0 or we end up with a use without a def.
llvm-svn: 88690
|
| |
|
|
|
|
| |
along the critical path.
llvm-svn: 88682
|
| |
|
|
| |
llvm-svn: 88672
|
| |
|
|
| |
llvm-svn: 87069
|
| |
|
|
|
|
| |
PPC is such a target; make it work.
llvm-svn: 87060
|
| |
|
|
| |
llvm-svn: 87040
|
| |
|
|
| |
llvm-svn: 87036
|
| |
|
|
| |
llvm-svn: 87034
|
| |
|
|
| |
llvm-svn: 87030
|
| |
|
|
| |
llvm-svn: 87024
|
| |
|
|
|
|
|
|
|
| |
and don't assume that the call doesn't throw. It would be nice if there were a
way to determine which is the callee and which is a parameter. In practice, the
architecture we care about normally only have one operand for a call instruction
(x86 and arm).
llvm-svn: 87023
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 86972
|
| |
|
|
|
|
| |
MachineBasicBlock so other passes can utilize it.
llvm-svn: 86947
|
| |
|
|
| |
llvm-svn: 86928
|
| |
|
|
| |
llvm-svn: 86926
|
| |
|
|
|
|
| |
miscompilations casued by PreAllocSplitting.
llvm-svn: 86919
|
| |
|
|
|
|
| |
can be made to fall through into the other.
llvm-svn: 86909
|
| |
|
|
|
|
| |
"nounwind" attribute.
llvm-svn: 86897
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 86856
|
| |
|
|
| |
llvm-svn: 86855
|
| |
|
|
|
|
| |
the numbers mean.
llvm-svn: 86854
|
| |
|
|
| |
llvm-svn: 86853
|