mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-25 14:32:53 +00:00
9506c930aa
positive and negative forms of constants together. This allows us to compile: int foo(int x, int y) { return (x-y) + (x-y) + (x-y); } into: _foo: ## @foo subl %esi, %edi leal (%rdi,%rdi,2), %eax ret instead of (where the 3 and -3 were not factored): _foo: imull $-3, 8(%esp), %ecx imull $3, 4(%esp), %eax addl %ecx, %eax ret this started out as: movl 12(%ebp), %ecx imull $3, 8(%ebp), %eax subl %ecx, %eax subl %ecx, %eax subl %ecx, %eax ret This comes from PR5359. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92381 91177308-0d34-0410-b5e6-96231b3b80d8 |
||
---|---|---|
.. | ||
2002-05-15-AgressiveSubMove.ll | ||
2002-05-15-MissedTree.ll | ||
2002-05-15-SubReassociate2.ll | ||
2002-05-15-SubReassociate.ll | ||
2002-07-09-DominanceProblem.ll | ||
2003-08-12-InfiniteLoop.ll | ||
2005-08-24-Crash.ll | ||
2005-09-01-ArrayOutOfBounds.ll | ||
2006-04-27-ReassociateVector.ll | ||
basictest.ll | ||
dg.exp | ||
inverses.ll | ||
looptest.ll | ||
mulfactor2.ll | ||
mulfactor.ll | ||
negation.ll | ||
otherops.ll | ||
shift-factor.ll | ||
shifttest.ll | ||
subtest2.ll | ||
subtest.ll |