| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 20920
|
| |
|
|
| |
llvm-svn: 20907
|
| |
|
|
|
|
| |
Simple ISel: fix i64 subtract
llvm-svn: 20903
|
| |
|
|
|
|
| |
More pattern isel updates
llvm-svn: 20902
|
| |
|
|
| |
llvm-svn: 20897
|
| |
|
|
|
|
|
| |
the correct register class. Also remove the loading of float data into int
regs part of varargs; it will need to be implemented differently later.
llvm-svn: 20857
|
| |
|
|
|
|
|
| |
going on with copies between floating point and integer register files
being generated. Once that is solved, varargs will be done.
llvm-svn: 20856
|
| |
|
|
|
|
| |
for explaining EXTRACT_ELEMENT to me.
llvm-svn: 20847
|
| |
|
|
| |
llvm-svn: 20841
|
| |
|
|
|
|
|
| |
handled correctly for floating point arguments, or more than 8 arguemnts.
This does however, allow hello world to run.
llvm-svn: 20832
|
| |
|
|
|
|
|
|
| |
1. void returns
2. multiplies
3. calls
llvm-svn: 20822
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
1) dynamic stack alloc
2) loads
3) shifts
4) subtract
5) immediate form of add, and, or, xor
6) change flag from -pattern-isel to -enable-ppc-pattern-isel
Remove dead arguments from getGlobalBaseReg in the simple ISel
llvm-svn: 20810
|
| |
|
|
| |
llvm-svn: 20809
|
|
|
be brought up to parity with the current simple ISel in the coming days.
Currently, -pattern-isel is required to trigger it.
llvm-svn: 20805
|