aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/PowerPC/PPCISelLowering.cpp
AgeCommit message (Collapse)Author
2005-10-02fix an f32/f64 type mismatchChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23587 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-01Modify the ppc backend to use two register classes for FP: F8RC and F4RC.Chris Lattner
These are used to represent float and double values, and the two regclasses contain the same physical registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23577 91177308-0d34-0410-b5e6-96231b3b80d8
2005-09-28Add FP versions of the binary operators, keeping the int and fp worlds seperate.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23506 91177308-0d34-0410-b5e6-96231b3b80d8
2005-09-27Darwin, like many BSD systems, has a setjmp/longjmp which saves the signal maskChris Lattner
on setjmp calls and restores it on longjmp calls (both of which require syscalls). This makes the calls REALLY slow. Use _setjmp/_longjmp instead. This speeds up hexxagon from 120.31s to 15.68s: from 5.53x slower than GCC to 28% faster than GCC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23482 91177308-0d34-0410-b5e6-96231b3b80d8
2005-09-13Change the arg lowering code to use copyfromreg from vregs associatedChris Lattner
with incoming arguments instead of the pregs themselves. This fixes the scheduler from causing problems by moving a copyfromreg for an argument to after a select_cc node (now it can, and bad things won't happen). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23334 91177308-0d34-0410-b5e6-96231b3b80d8
2005-09-13Remove some dead vectorsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23329 91177308-0d34-0410-b5e6-96231b3b80d8
2005-09-10PowerPC cannot truncstore i1 nativelyChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23304 91177308-0d34-0410-b5e6-96231b3b80d8
2005-09-06Implement i64<->fp using the fctidz/fcfid instructions on PowerPC when weNate Begeman
are allowed to generate 64-bit-only PowerPC instructions for 32 bit hosts, such as the PowerPC 970. This speeds up 189.lucas from 81.99 to 32.64 seconds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23250 91177308-0d34-0410-b5e6-96231b3b80d8
2005-09-02Decouple fsqrt from gpul optimizations, implementing fsqrt.ll.Chris Lattner
Remove the -enable-gpopt option which is subsumed by feature flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23218 91177308-0d34-0410-b5e6-96231b3b80d8
2005-09-02Restore this patch now that the latent bug has been fixedChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23209 91177308-0d34-0410-b5e6-96231b3b80d8
2005-09-02Revert the previous patch which causes a mysterious regression in toast.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23207 91177308-0d34-0410-b5e6-96231b3b80d8
2005-09-01Implement small-arguments.ll:test3 by teaching the DAG optimizer thatChris Lattner
the results of calls to functions returning small values are properly sign/zero extended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23198 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-31Move FCTIWZ handling out of the instruction selectors and into legalization,Chris Lattner
getting them out of the business of making stack slots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23180 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-31Move SHL,SHR i64 -> legalizerChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23178 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-31lower sra_parts on the dag, implementing it for the dag isel, and exposingChris Lattner
the ops to dag optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23176 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-31Enable generation of AssertSext and AssertZext in the PPC backend.Nate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23168 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-30Fix a bug in my patch for legalizing to fsel. It cannot handle seteq/setne,Chris Lattner
which I failed to include when I moved the code over. This fixes MallocBench/gs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23140 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-30Fix some really strange indentation that xcode likes to use.Chris Lattner
no xcode, this is not right: if (!foo) break; X; git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23138 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-26implement SELECT_CC fully for the DAG->DAG isel!Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23101 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-26Make fsel emission work with both the pattern and dag-dag selectors, byChris Lattner
giving it a non-instruction opcode. The dag->dag selector used to not select the operands of the fsel, because it thought that whole tree was already selected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23091 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-26implement the other half of the select_cc -> fsel lowering, which handlesChris Lattner
when the RHS of the comparison is 0.0. Turn this on by default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23083 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-26add initial support for converting select_cc -> fsel in the legalizerChris Lattner
instead of in the backend. This currently handles fsel cases with registers, but doesn't have the 0.0 and -0.0 optimization enabled yet. Once this is finished, special hack for fp immediates can go away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23075 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-25Remove option to make SetCC illegal on PowerPC after long discussion withNate Begeman
Chris. This will be accomplished through correctly modeling CR's and subregs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23056 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-23Ack, typoNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22981 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-23Add an option to make SetCC illegal as a beta optionNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22979 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-17Make UINT_TO_FP and SINT_TO_FP use generic expansion.Jim Laskey
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22815 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-16updates for changes in nodesChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22808 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-16Implement BR_CC and BRTWOWAY_CC. This allows the removal of a rather nastyNate Begeman
fixme from the PowerPC backend. Emit slightly better code for legalizing select_cc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22805 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-16Pull the LLVM -> DAG lowering code out of the pattern selector so that itChris Lattner
can be shared with the DAG->DAG selector. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22799 91177308-0d34-0410-b5e6-96231b3b80d8