| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 115996
|
| |
|
|
|
|
| |
The bug that broke i386 linux has been fixed in r115191.
llvm-svn: 115204
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
passes now"
This reverts revision 114633. It was breaking llvm-gcc-i386-linux-selfhost.
It seems there is a downstream bug that is exposed by
-cgp-critical-edge-splitting=0. When that bug is fixed, this patch can go back
in.
Note that the changes to tailcallfp2.ll are not reverted. They were good are
required.
llvm-svn: 114859
|
| |
|
|
|
|
| |
break critical edges on demand.
llvm-svn: 114633
|
| |
|
|
|
|
|
|
| |
truncates are free only in the case where the extended type is legal but the
load type is not. If both types are illegal, such as when they are too big,
the load may not be legalized into an extended load.
llvm-svn: 114568
|
| |
|
|
|
|
|
| |
load when the type of the load is not legal, even if truncates are not free.
The load is going to be legalized to an extending load anyway.
llvm-svn: 114488
|
| |
|
|
| |
llvm-svn: 114487
|
| |
|
|
|
|
|
|
|
| |
walking the asm arguments once and stashing their Values. This is
wrong because the same memory location can be in the list twice, and
if the first one has a sunkaddr substituted, the stashed value for the
second one will be wrong (use-after-free). PR 8154.
llvm-svn: 114104
|
| |
|
|
| |
llvm-svn: 113769
|
| |
|
|
| |
llvm-svn: 113766
|
| |
|
|
| |
llvm-svn: 112104
|
| |
|
|
|
|
| |
PHI elimination is already doing all (most?) of the splitting needed. But machine-licm and machine-sink seem to miss some important optimizations when splitting is disabled.
llvm-svn: 111224
|
| |
|
|
| |
llvm-svn: 110460
|
| |
|
|
| |
llvm-svn: 110410
|
| |
|
|
|
|
|
|
| |
address of the static
ID member as the sole unique type identifier. Clean up APIs related to this change.
llvm-svn: 110396
|
| |
|
|
| |
llvm-svn: 109045
|
| |
|
|
| |
llvm-svn: 108522
|
| |
|
|
| |
llvm-svn: 107273
|
| |
|
|
|
|
|
|
|
| |
for an "i" constraint should get lowered; PR 6309. While
this argument was passed around a lot, this is the only
place it was used, so it goes away from a lot of other
places.
llvm-svn: 106893
|
| |
|
|
| |
llvm-svn: 106707
|
| |
|
|
|
|
|
| |
Probably the best way to know that all getOperand() calls have been handled
is to replace that API instead of updating.
llvm-svn: 101579
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
with a fix for self-hosting
rotate CallInst operands, i.e. move callee to the back
of the operand array
the motivation for this patch are laid out in my mail to llvm-commits:
more efficient access to operands and callee, faster callgraph-construction,
smaller compiler binary
llvm-svn: 101465
|
| |
|
|
| |
llvm-svn: 101434
|
| |
|
|
| |
llvm-svn: 101423
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
generate wrong code pretty much anywhere AFAICT.
A case that hits the bug reproducibly is impossible,
but the situation was like this:
Addr = ...
Store -> Addr
Addr2 = GEP , 0, 0
Store -> Addr2
Handling the first store, the code changed replaced Addr
with a sunkaddr and deleted Addr, but not its table
entry. Code in OptimizedBlock replaced Addr2 with a
bitcast; if that happened to reuse the memory of Addr,
the old table entry was erroneously found when handling
the second store.
llvm-svn: 100044
|
| |
|
|
| |
llvm-svn: 99564
|
| |
|
|
|
|
| |
to unify the almost identical code in CodeGenPrepare and InstCombineCalls.
llvm-svn: 98338
|
| |
|
|
|
|
| |
__strcpy_chk -> strcpy code.
llvm-svn: 98284
|
| |
|
|
| |
llvm-svn: 98274
|
| |
|
|
|
|
|
|
| |
that in InstCombineCalls.
More call lowering needed.
llvm-svn: 98228
|
| |
|
|
|
|
|
| |
and T->isPointerTy(). Convert most instances of the first form to the second form.
Requested by Chris.
llvm-svn: 96344
|
| |
|
|
| |
llvm-svn: 96109
|
| |
|
|
|
|
|
|
|
|
|
|
| |
and add a doxygen comment.
Cache the phi entry to avoid doing tons of
PHINode::getBasicBlockIndex calls in the common case.
On my insane testcase from re2c, this speeds up CGP from
617.4s to 7.9s (78x).
llvm-svn: 96083
|
| |
|
|
|
|
| |
instead of with pred_begin/end.
llvm-svn: 96078
|
| |
|
|
|
|
|
| |
container data. This prevents it from holding onto dangling
pointers and potentially behaving unpredictably.
llvm-svn: 95409
|
| |
|
|
|
|
|
|
|
|
|
|
| |
than the scaled register. This makes it more likely that subsequent
AddrModeMatcher queries will match the new address the same way as the
old, instead of accidentally matching what had been the base register
as the new scaled register, and then failing to match the scaled register.
This fixes some problems with address-mode sinking multiple muls into a
block, which will be a lot more common with some upcoming
LoopStrengthReduction changes.
llvm-svn: 93935
|
| |
|
|
| |
llvm-svn: 92611
|
| |
|
|
|
|
| |
introduced a non-deterministic behavior in the optimizer somewhere.
llvm-svn: 91598
|
| |
|
|
| |
llvm-svn: 90836
|
| |
|
|
| |
llvm-svn: 90487
|
| |
|
|
|
|
| |
Fix CodeGenPrepare to not try to split edges from indirectbr.
llvm-svn: 85690
|
| |
|
|
|
|
|
| |
load, to help SelectionDAG fold them into the loads, unless
conditions are unfavorable.
llvm-svn: 84271
|
| |
|
|
| |
llvm-svn: 82034
|
| |
|
|
| |
llvm-svn: 80766
|
| |
|
|
|
|
| |
constructors.
llvm-svn: 80049
|
| |
|
|
|
|
| |
This required converting a bunch of stuff off DOUT and other cleanups.
llvm-svn: 79819
|
| |
|
|
| |
llvm-svn: 78948
|
| |
|
|
|
|
| |
infrastructure work needed to get the contexts to where they need to be first.
llvm-svn: 78759
|
| |
|
|
|
|
| |
own struct type.
llvm-svn: 78610
|
| |
|
|
|
|
|
|
| |
change back are
metadata related, which I'm waiting on to avoid conflicting with Devang.
llvm-svn: 77721
|