| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
Implement divide by negative power of two
llvm-svn: 21240
|
| |
|
|
|
|
| |
(1.5%) instructions in 186.crafty
llvm-svn: 21222
|
| |
|
|
| |
llvm-svn: 21207
|
| |
|
|
|
|
| |
boundary.
llvm-svn: 21206
|
| |
|
|
| |
llvm-svn: 21198
|
| |
|
|
| |
llvm-svn: 21197
|
| |
|
|
| |
llvm-svn: 21193
|
| |
|
|
| |
llvm-svn: 21188
|
| |
|
|
|
|
|
|
| |
Generate rotate left/right immediate
Generate code for brcondtwoway
Use new livein/liveout functionality
llvm-svn: 21187
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
case so that we emit
_test_fneg_sel:
.LBB_test_fneg_sel_0: ;
fsel f1, f1, f3, f2
blr
instead of:
_test_fneg_sel:
.LBB_test_fneg_sel_0: ;
fneg f0, f1
fneg f0, f0
fsel f1, f0, f3, f2
blr
llvm-svn: 21177
|
| |
|
|
| |
llvm-svn: 21163
|
| |
|
|
|
|
|
|
|
| |
32b: No longer pattern match fneg(fsub(fmul)) as fnmsub
Pattern match fsub a, mul(b, c) as fnmsub
Pattern match fadd a, mul(b, c) as fmadd
Those changes speed up hydro2d by 2.5%, distray by 6%, and scimark by 8%
llvm-svn: 21161
|
| |
|
|
|
|
| |
Optimized code sequence for (a < 0) ? b : 0
llvm-svn: 21150
|
| |
|
|
| |
llvm-svn: 21147
|
| |
|
|
|
|
| |
other things.
llvm-svn: 21127
|
| |
|
|
|
|
|
| |
quotient, not the remainder. Also, make sure to remove the old div operand
from the ExprMap and let SelectExpr insert the new one.
llvm-svn: 21111
|
| |
|
|
|
|
| |
time.
llvm-svn: 21105
|
| |
|
|
|
|
|
|
| |
Have LegalizeDAG handle SREM and UREM for us
Codegen SDIV and UDIV by constant as a multiply by magic constant instead
of integer divide, which is very slow.
llvm-svn: 21104
|
| |
|
|
|
|
| |
could miscompile. A correct solution will be found in the near future.
llvm-svn: 21095
|
| |
|
|
|
|
|
|
|
| |
indicate that it is not a boolean function.
Properly emit the pseudo instruction for conditional branch, so that we
can fix up conditional branches whose displacements are too large.
Reserve the right amount of opcode space for said pseudo instructions.
llvm-svn: 21094
|
| |
|
|
| |
llvm-svn: 21091
|
| |
|
|
| |
llvm-svn: 21090
|
| |
|
|
|
|
|
| |
that regalloc doesn't cleverly reuse early arg regs loading later arg regs.
This fixes almost all outstanding failures in the pattern isel.
llvm-svn: 21086
|
| |
|
|
| |
llvm-svn: 21077
|
| |
|
|
| |
llvm-svn: 21076
|
| |
|
|
| |
llvm-svn: 21070
|
| |
|
|
| |
llvm-svn: 21066
|
| |
|
|
|
|
| |
Start implementation of integer varargs
llvm-svn: 21065
|
| |
|
|
|
|
| |
Implement not, nor, nand, and eqv
llvm-svn: 21060
|
| |
|
|
|
|
|
|
| |
Implement ISD::FABS and ISD::FNEG nodes
Implement SHL_PARTS, SRL_PARTS, and SRA_PARTS
Generate PowerPC 'fneg', 'fabs', and 'fnabs' instructions
llvm-svn: 21018
|
| |
|
|
| |
llvm-svn: 21010
|
| |
|
|
|
|
| |
Generate PowerPC 'subfic' instruction when appropriate
llvm-svn: 20995
|
| |
|
|
|
|
|
|
|
| |
Teach the SelectionDAG code how to expand and promote it
Have PPC32 LowerCallTo generate ISD::UNDEF for int arg regs used up by fp
arguments, but not shadowing their value. This allows us to do the right
thing with both fixed and vararg floating point arguments.
llvm-svn: 20988
|
| |
|
|
|
|
|
| |
LowerCallTo and ISD::CALL are going to need to be modified, regs are being
set in the wrong order.
llvm-svn: 20981
|
| |
|
|
| |
llvm-svn: 20979
|
| |
|
|
|
|
| |
part to make sure we get the side effects and to avoid confusing the CFG.
llvm-svn: 20977
|
| |
|
|
|
|
| |
Fix calls with no arguments
llvm-svn: 20975
|
| |
|
|
|
|
|
| |
18.8 to 14.8 seconds. The Pattern ISel is now often faster than the
Simple ISel, esp. on memory intensive code.
llvm-svn: 20973
|
| |
|
|
| |
llvm-svn: 20972
|
| |
|
|
|
|
| |
say that we support them, for the purposes of generating fsel instructions.
llvm-svn: 20970
|
| |
|
|
| |
llvm-svn: 20969
|
| |
|
|
|
|
|
|
|
|
| |
generate compare immediate for integer compare with constant
fold setcc into branch
fold setcc into select
Code generation quality for Shootout is now on par with the Simple ISel
llvm-svn: 20968
|
| |
|
|
|
|
|
|
| |
LowerCallTo.
Handle ISD::ADD in SelectAddr, allowing us to have nonzero immediates for
loads and stores, amazing!
llvm-svn: 20946
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Tell the SelectionDAG ISel to expand SEXTLOAD of i1 and i8, rather than
complicate the code in ISD::SEXTLOAD to do it by hand
Combine the FP and Int ISD::LOAD codegen
Generate better code for constant pool loads
As a result, all of Shootout, and likely many other programs are now
working.
llvm-svn: 20945
|
| |
|
|
|
|
|
| |
Implement SINT_TO_FP and UINT_TO_FP
Remove some dead code from the simple ISel
llvm-svn: 20944
|
| |
|
|
|
|
| |
Shootout now works.
llvm-svn: 20940
|
| |
|
|
|
|
|
| |
don't support things like memcpy directly. This allows a handful of the
Shootout programs to work, yay!
llvm-svn: 20939
|
| |
|
|
| |
llvm-svn: 20935
|
| |
|
|
| |
llvm-svn: 20934
|
| |
|
|
| |
llvm-svn: 20933
|