| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
LICM "cheap" instructions are not particularly beneficial to start with. This will just end up making the copies harder to coalesce.
llvm-svn: 63728
|
|
|
|
|
|
| |
register pressure. We want to avoid spilling more instructions if it's possible.
llvm-svn: 63725
|
|
|
|
|
|
|
|
|
| |
loops, hoisting instructions all the way out in one step rather
than hoisting them one nest level at a time. Also, make a few
other code simplifications. This speeds up MachineLICM
by several fold.
llvm-svn: 62283
|
|
|
|
| |
llvm-svn: 61715
|
|
|
|
|
|
|
|
| |
several places. isTerminator() returns true for a superset
of cases, and includes things like FP_REG_KILL, which are
nither return or branch but aren't safe to move/remat/etc.
llvm-svn: 61373
|
|
|
|
| |
llvm-svn: 61184
|
|
|
|
|
|
| |
isReg, etc., from isRegister, etc.
llvm-svn: 57006
|
|
|
|
| |
llvm-svn: 55779
|
|
|
|
| |
llvm-svn: 55578
|
|
|
|
| |
llvm-svn: 55074
|
|
|
|
|
|
| |
hoisting out some "test" and "cmp" instructions. This was obvious badness.
llvm-svn: 54908
|
|
|
|
| |
llvm-svn: 53166
|
|
|
|
|
|
|
| |
several things that were neither in an anonymous namespace nor static
but not intended to be global.
llvm-svn: 51017
|
|
|
|
| |
llvm-svn: 50990
|
|
|
|
|
|
|
|
| |
possible for it to produce worse code than before.
The rest of this patch is code cleanup.
llvm-svn: 50987
|
|
|
|
| |
llvm-svn: 48142
|
|
|
|
| |
llvm-svn: 47629
|
|
|
|
|
|
| |
would have been a Godsend here!
llvm-svn: 47625
|
|
|
|
| |
llvm-svn: 46930
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
both work right according to the new flags.
This removes the TII::isReallySideEffectFree predicate, and adds
TII::isInvariantLoad.
It removes NeverHasSideEffects+MayHaveSideEffects and adds
UnmodeledSideEffects as machine instr flags. Now the clients
can decide everything they need.
I think isRematerializable can be implemented in terms of the
flags we have now, though I will let others tackle that.
llvm-svn: 45843
|
|
|
|
|
|
|
| |
Make MachineInstr::getDesc return a reference instead
of a pointer, since it can never be null.
llvm-svn: 45695
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
that it is cheap and efficient to get.
Move a variety of predicates from TargetInstrInfo into
TargetInstrDescriptor, which makes it much easier to query a predicate
when you don't have TII around. Now you can use MI->getDesc()->isBranch()
instead of going through TII, and this is much more efficient anyway. Not
all of the predicates have been moved over yet.
Update old code that used MI->getInstrDescriptor()->Flags to use the
new predicates in many places.
llvm-svn: 45674
|
|
|
|
| |
llvm-svn: 45573
|
|
|
|
| |
llvm-svn: 45572
|
|
|
|
| |
llvm-svn: 45571
|
|
|
|
| |
llvm-svn: 45569
|
|
|
|
| |
llvm-svn: 45499
|
|
|
|
| |
llvm-svn: 45496
|
|
|
|
|
|
|
| |
instruction. Also, use "splice" to move the new instruction instead of
remove/insert (where it was leaking memory anyway).
llvm-svn: 45492
|
|
|
|
| |
llvm-svn: 45418
|
|
|
|
| |
llvm-svn: 45245
|
|
|
|
| |
llvm-svn: 45178
|
|
|
|
| |
llvm-svn: 44892
|
|
|
|
| |
llvm-svn: 44881
|
|
|
|
| |
llvm-svn: 44874
|
|
|
|
|
|
| |
- Fix subtle bug when creating initially creating this map.
llvm-svn: 44873
|
|
|
|
|
|
|
|
| |
because those with side effects will be caught by other checks in here.
Also, simplify the check for a BB in a sub loop.
llvm-svn: 44871
|
|
|
|
| |
llvm-svn: 44727
|
|
|
|
|
|
|
| |
isTriviallyReMaterializable -> hasNoSideEffects
isReallyTriviallyReMaterializable -> isTriviallyReMaterializable
llvm-svn: 44702
|
|
|
|
|
|
|
| |
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20071203/056043.html
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20071203/056048.html
llvm-svn: 44696
|
|
_foo:
li r2, 0
LBB1_1: ; bb
li r5, 0
stw r5, 0(r3)
addi r2, r2, 1
addi r3, r3, 4
cmplw cr0, r2, r4
bne cr0, LBB1_1 ; bb
LBB1_2: ; return
blr
to:
_foo:
li r2, 0
li r5, 0
LBB1_1: ; bb
stw r5, 0(r3)
addi r2, r2, 1
addi r3, r3, 4
cmplw cr0, r2, r4
bne cr0, LBB1_1 ; bb
LBB1_2: ; return
blr
ZOMG!! :-)
Moar to come...
llvm-svn: 44687
|