summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
Commit message (Collapse)AuthorAgeFilesLines
* Fix JIT encoding of conditional branchesNate Begeman2005-08-262-27/+19
| | | | llvm-svn: 23076
* add initial support for converting select_cc -> fsel in the legalizerChris Lattner2005-08-263-2/+67
| | | | | | | | | 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. llvm-svn: 23075
* SUBFIC produces two results, not one.Nate Begeman2005-08-261-4/+4
| | | | llvm-svn: 23073
* Implement SHL_PARTS and SRL_PARTSNate Begeman2005-08-261-0/+38
| | | | llvm-svn: 23072
* Emit the lo/hi parts in the right order :)Chris Lattner2005-08-251-1/+1
| | | | llvm-svn: 23068
* implement support for 64-bit add/sub, fix a broken assertion for 64-bitChris Lattner2005-08-251-2/+58
| | | | | | | return. Allow the udiv breaker-upper to work with any non-zero constant operand. llvm-svn: 23066
* simplify the add/sub_parts codeChris Lattner2005-08-251-16/+24
| | | | llvm-svn: 23065
* Finish implementing SDIV/UDIV by copying over the majik constant code fromChris Lattner2005-08-251-3/+180
| | | | | | ISelPattern llvm-svn: 23062
* Simplify some code. It's not clear why the UDIV expanded sequenceChris Lattner2005-08-251-13/+7
| | | | | | doesn't work for large uint constants, but we'll keep the current behavior llvm-svn: 23061
* Implement setcc correctly for G5 and non-G5 systemsChris Lattner2005-08-251-11/+17
| | | | llvm-svn: 23060
* implement setcc on the G5. We're still missing the non-g5 specific bits, butChris Lattner2005-08-251-0/+121
| | | | | | they will come later. llvm-svn: 23059
* Remove option to make SetCC illegal on PowerPC after long discussion withNate Begeman2005-08-251-11/+0
| | | | | | | Chris. This will be accomplished through correctly modeling CR's and subregs. llvm-svn: 23056
* Add support for sdiv by 2^k and -2^k. Producing code like:Chris Lattner2005-08-251-1/+27
| | | | | | | | | _test: srawi r2, r3, 2 addze r3, r2 blr llvm-svn: 23052
* fit in 80 colsChris Lattner2005-08-251-1/+1
| | | | llvm-svn: 23051
* add an enum valueChris Lattner2005-08-251-2/+3
| | | | llvm-svn: 23048
* Implement support for taking the address of constant pool indices, whichChris Lattner2005-08-251-0/+10
| | | | | | | is used by the int -> FP code among other things. This gets 2005-05-12-Int64ToFP past that failure, to dying on lack of support for add_parts llvm-svn: 23042
* Add support for FP constants, fixing UnitTests/2004-02-02-NegativeZeroChris Lattner2005-08-251-6/+25
| | | | llvm-svn: 23038
* Fully implement frame index, so that we can pass the address of alloca'sChris Lattner2005-08-251-4/+12
| | | | | | around to functions and stuff llvm-svn: 23036
* implement unconditional branches, fixing UnitTests/2003-05-02-DependentPHI.cChris Lattner2005-08-251-1/+4
| | | | llvm-svn: 23034
* LFS/STFS load and store FP values, not integer ones. This change allows usChris Lattner2005-08-251-4/+4
| | | | | | | | | | | | | | | | | | | | | | | to codegen this: float foo() { return 1.245; } into this: _foo: lis r2, ha16(.CPI_foo_0) lfs f1, lo16(.CPI_foo_0)(r2) blr instead of this: _foo: lis r2, ha16(.CPI_foo_0) lfs r2, lo16(.CPI_foo_0)(r2) <-- ouch or f1, r2, r2 <-- ouch blr with the dag isel. llvm-svn: 23033
* Fix a broken assertionChris Lattner2005-08-251-1/+1
| | | | llvm-svn: 23032
* Fix a warningChris Lattner2005-08-251-0/+1
| | | | llvm-svn: 23031
* fix a warning in optimized buildChris Lattner2005-08-251-1/+1
| | | | llvm-svn: 23030
* Fix some warningsChris Lattner2005-08-252-0/+2
| | | | llvm-svn: 23029
* Split IMPLICIT_DEF into IMPLICIT_DEF_GPR and IMPLICIT_DEF_FP, so that theChris Lattner2005-08-245-7/+21
| | | | | | | instructions take a consistent reg class. Implement ISD::UNDEF in the dag->dag selector to generate this, fixing UnitTests/2003-07-06-IntOverflow. llvm-svn: 23028
* implement support for callsChris Lattner2005-08-241-3/+99
| | | | llvm-svn: 23026
* Remove some dead cases.Chris Lattner2005-08-241-7/+1
| | | | | | | | | | | | | Emit the indcall sequence as: mtctr inreg mr R12, inreg btctr If inreg and R12 aren't coallesced, this reduces the odds of having the mtctr and btctr in the same dispatch group. :) llvm-svn: 23023
* add an ideaChris Lattner2005-08-241-0/+30
| | | | llvm-svn: 23020
* Adjust to new interfaceChris Lattner2005-08-241-4/+4
| | | | llvm-svn: 23010
* Whoops, fix a thinko. All cases except SETNE are now handled by theNate Begeman2005-08-241-11/+3
| | | | | | target independent code in SelectionDAG.cpp llvm-svn: 23002
* Remove unused statisticNate Begeman2005-08-241-3/+5
| | | | | | Prefer 'neg X' to 'subfic 0, X' since neg does not set XER[CA] llvm-svn: 23001
* Add the "ppc specific" setcc-equivalent select_cc casesNate Begeman2005-08-241-4/+25
| | | | | | Prefer 'neg X' to 'subfic 0, X' since it does not set XER[CA] llvm-svn: 23000
* Add callseq_begin/end supportChris Lattner2005-08-241-0/+10
| | | | | | Call stil not supported yet llvm-svn: 22998
* Adjust to new livevars interfaceChris Lattner2005-08-231-4/+4
| | | | llvm-svn: 22991
* Simplify this code by using LiveVariables::KillsRegisterChris Lattner2005-08-231-35/+11
| | | | llvm-svn: 22988
* Fix PR618 and Regression/CodeGen/CBackend/2005-08-23-Fmod.ll by not emittingChris Lattner2005-08-231-0/+14
| | | | | | x%y for 'rem' on fp values. llvm-svn: 22984
* add a noteChris Lattner2005-08-231-0/+20
| | | | llvm-svn: 22982
* Ack, typoNate Begeman2005-08-231-1/+1
| | | | llvm-svn: 22981
* Add an option to make SetCC illegal as a beta optionNate Begeman2005-08-231-0/+10
| | | | llvm-svn: 22979
* Remove some instructions we no longer generateNate Begeman2005-08-231-24/+0
| | | | llvm-svn: 22976
* Remove some regs that are not used.Chris Lattner2005-08-222-8/+1
| | | | llvm-svn: 22975
* Nate noticed that 30% of the malloc/frees in llc come from calls to ↵Chris Lattner2005-08-222-44/+44
| | | | | | | | | | LowercaseString in the asmprinter. This changes the .td files to use lower case register names, avoiding the need to do this call. This speeds up the asmprinter from 1.52s to 1.06s on kc++ in a release build. llvm-svn: 22974
* Fix a crash I introduced into the IA64 backend with my copyfromreg change.Chris Lattner2005-08-221-1/+3
| | | | | | It used to crash on any function that took float arguments. llvm-svn: 22973
* Add a pass name for -time-passes outputChris Lattner2005-08-221-0/+1
| | | | llvm-svn: 22970
* Implement stores.Chris Lattner2005-08-221-0/+26
| | | | llvm-svn: 22963
* Fix compilation of:Chris Lattner2005-08-221-1/+1
| | | | | | | | | | | | float %test2(float* %P) { %Q = load float* %P %R = add float %Q, %Q ret float %R } By returning the right result. llvm-svn: 22961
* Make sure expressions only have one use before emitting them into a place ↵Chris Lattner2005-08-221-3/+4
| | | | | | that is conditionally executed llvm-svn: 22960
* Implement most of load support. There is still a bug though.Chris Lattner2005-08-211-8/+96
| | | | llvm-svn: 22959
* Don't print out the MBB label for the entry mbbChris Lattner2005-08-211-2/+6
| | | | llvm-svn: 22953
* Simplify the logic for BRTWOWAY_CC handling. The isel code alreadyChris Lattner2005-08-211-16/+7
| | | | | | | | simplifies BRTWOWAY into BR if one of the results is a fall-through. Unless I'm missing something, there is no reason to duplicate this in the target-specific code. llvm-svn: 22952
OpenPOWER on IntegriCloud