| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 86794
|
| |
|
|
|
|
| |
function it's generated for.
llvm-svn: 86779
|
| |
|
|
| |
llvm-svn: 86771
|
| |
|
|
| |
llvm-svn: 86763
|
| |
|
|
| |
llvm-svn: 86753
|
| |
|
|
|
|
|
|
|
| |
constant whose component type is not a legal type for the target.
(If the target ConstantPool cannot handle this type either, it has
an opportunity to merge elements. In practice any target with
8-bit bytes must support i8 *as data*). 7320806 (partial).
llvm-svn: 86751
|
| |
|
|
| |
llvm-svn: 86748
|
| |
|
|
|
|
|
|
| |
Critical edges leading to a PHI node are split when the PHI source variable is
live out from the predecessor block. This help the coalescer eliminate more
PHI joins.
llvm-svn: 86725
|
| |
|
|
|
|
|
| |
Clean up some whitespace.
No functional changes.
llvm-svn: 86724
|
| |
|
|
|
|
| |
just throw them away.
llvm-svn: 86678
|
| |
|
|
| |
llvm-svn: 86642
|
| |
|
|
| |
llvm-svn: 86641
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch forbids implicit conversion of DenseMap::const_iterator to
DenseMap::iterator which was possible because DenseMapIterator inherited
(publicly) from DenseMapConstIterator. Conversion the other way around is now
allowed as one may expect.
The template DenseMapConstIterator is removed and the template parameter
IsConst which specifies whether the iterator is constant is added to
DenseMapIterator.
Actually IsConst parameter is not necessary since the constness can be
determined from KeyT but this is not relevant to the fix and can be addressed
later.
Patch by Victor Zverovich!
llvm-svn: 86636
|
| |
|
|
| |
llvm-svn: 86634
|
| |
|
|
|
|
| |
be renamed to break anti-dependencies.
llvm-svn: 86628
|
| |
|
|
| |
llvm-svn: 86601
|
| |
|
|
| |
llvm-svn: 86600
|
| |
|
|
|
|
|
|
|
|
|
|
| |
instructions. This makes CodeGen dumps significantly less noisy.
Example before:
BL <ga:@bar>, %R0<imp-def>, %R1<imp-def,dead>, %R2<imp-def,dead>, %R3<imp-def,dead>, %R12<imp-def,dead>, %LR<imp-def,dead>, %D0<imp-def,dead>, %D1<imp-def,dead>, %D2<imp-def,dead>, %D3<imp-def,dead>, %D4<imp-def,dead>, %D5<imp-def,dead>, %D6<imp-def,dead>, %D7<imp-def,dead>, %D16<imp-def,dead>, %D17<imp-def,dead>, %D18<imp-def,dead>, %D19<imp-def,dead>, %D20<imp-def,dead>, %D21<imp-def,dead>, %D22<imp-def,dead>, %D23<imp-def,dead>, %D24<imp-def,dead>, %D25<imp-def,dead>, %D26<imp-def,dead>, %D27<imp-def,dead>, %D28<imp-def,dead>, %D29<imp-def,dead>, %D30<imp-def,dead>, %D31<imp-def,dead>, %CPSR<imp-def,dead>, %FPSCR<imp-def,dead>
Same example after:
BL <ga:@bar>, %R0<imp-def>, %R1<imp-def,dead>, %LR<imp-def,dead>, %CPSR<imp-def,dead>, ...
llvm-svn: 86583
|
| |
|
|
|
|
| |
dependencies were overly conservative for memory access that are known not to alias.
llvm-svn: 86580
|
| |
|
|
| |
llvm-svn: 86564
|
| |
|
|
| |
llvm-svn: 86522
|
| |
|
|
| |
llvm-svn: 86521
|
| |
|
|
| |
llvm-svn: 86446
|