summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Rename SSARegMap -> MachineRegisterInfo in keeping with the idea Chris Lattner2007-12-311-18/+18
| | | | | | | | | | | | | | that "machine" classes are used to represent the current state of the code being compiled. Given this expanded name, we can start moving other stuff into it. For now, move the UsedPhysRegs and LiveIn/LoveOuts vectors from MachineFunction into it. Update all the clients to match. This also reduces some needless #includes, such as MachineModuleInfo from MachineFunction. llvm-svn: 45467
* Remove attribution from file headers, per discussion on llvmdev.Chris Lattner2007-12-291-2/+2
| | | | llvm-svn: 45418
* Fix unintented change from last commitNicolas Geoffray2007-12-211-3/+3
| | | | llvm-svn: 45282
* Enable EH for linux/ppc32 targetsNicolas Geoffray2007-12-211-11/+9
| | | | llvm-svn: 45281
* implement __builtin_return_addr(0) on ppc.Chris Lattner2007-12-081-4/+32
| | | | llvm-svn: 44700
* Implement ExpandOperationResult for ppc i64 fp->int, which fixesChris Lattner2007-11-281-0/+9
| | | | | | | CodeGen/Generic/fp_to_int.ll among others. Its unclear why this just started failing... llvm-svn: 44407
* Unify CALLSEQ_{START,END}. They take 4 parameters: the chain, two stackBill Wendling2007-11-131-2/+7
| | | | | | | | | | | adjustment fields, and an optional flag. If there is a "dynamic_stackalloc" in the code, make sure that it's bracketed by CALLSEQ_START and CALLSEQ_END. If not, then there is the potential for the stack to be changed while the stack's being used by another instruction (like a call). This can only result in tears... llvm-svn: 44037
* Disable a couple more things for ppcf128.Dale Johannesen2007-10-231-2/+4
| | | | llvm-svn: 43267
* Use ptr type in the immediate field of a BxA instruction so we don't end up ↵Evan Cheng2007-10-221-1/+2
| | | | | | selecting 32-bit call instruction for ppc64. llvm-svn: 43228
* comment fixesChris Lattner2007-10-191-3/+3
| | | | llvm-svn: 43168
* More ppcf128 issues (maybe the last)?Dale Johannesen2007-10-191-0/+7
| | | | llvm-svn: 43160
* Change LowerFP_TO_SINT to create the specific code it needs instead of Chris Lattner2007-10-151-4/+11
| | | | | | | | | | unconditionally creating an i64 bitcast. With the future legalizer design, operation legalization can't introduce new nodes with illegal types. This fixes the rest of olden on ppc32. llvm-svn: 43005
* Fix type mismatch error in PPC Altivec (only causesDale Johannesen2007-10-141-2/+2
| | | | | | a problem when asserts are on). From vecLib. llvm-svn: 42959
* Mark vector pow, ctpop, cttz, and ctlz as Expand on PowerPC.Dan Gohman2007-10-121-1/+4
| | | | llvm-svn: 42904
* Set ISD::FPOW to Expand.Dan Gohman2007-10-111-1/+3
| | | | llvm-svn: 42881
* Next PPC long double bits: ppcf128->i32 conversion.Dale Johannesen2007-10-101-0/+62
| | | | | | | Surprisingly complicated. Adds getTargetNode for 2 outputs, no inputs (missing). llvm-svn: 42822
* When we start enabling SMUL_LOHI/UMUL_LOHI or SDIVREM/UDIVREM inDan Gohman2007-10-081-0/+14
| | | | | | target-indepenent lowering, don't use them on PowerPC. llvm-svn: 42755
* Next powerpc long double bits. Comparisons work,Dale Johannesen2007-10-061-0/+4
| | | | | | although not well, and shortening FP converts. llvm-svn: 42672
* First round of ppc long double. call/return andDale Johannesen2007-10-051-1/+13
| | | | | | | | | basic arithmetic works. Rename RTLIB long double functions to distinguish different flavors of long double; the lib functions have different names, alas. llvm-svn: 42644
* Fold the adjust_trampoline intrinsic intoDuncan Sands2007-09-111-3/+0
| | | | | | | init_trampoline. There is now only one trampoline intrinsic. llvm-svn: 41841
* Add lengthof and endof templates that hide a lot of sizeof computations.Owen Anderson2007-09-071-5/+6
| | | | | | Patch by Sterling Stein! llvm-svn: 41758
* Enhance APFloat to retain bits of NaNs (fixes oggenc).Dale Johannesen2007-08-311-5/+5
| | | | | | | Use APFloat interfaces for more references, mostly of ConstantFPSDNode. llvm-svn: 41632
* Use i64 on a PPC64 machineBill Wendling2007-08-301-1/+1
| | | | llvm-svn: 41590
* rename isOperandValidForConstraint to LowerAsmOperandForConstraint, Chris Lattner2007-08-251-12/+20
| | | | | | changing the interface to allow for future changes. llvm-svn: 41384
* Vector fneg must be expanded into fsub -0.0, X.Evan Cheng2007-07-301-0/+11
| | | | llvm-svn: 40586
* Support for trampolines, except for X86 codegen which isDuncan Sands2007-07-271-1/+4
| | | | | | still under discussion. llvm-svn: 40549
* Assert when TLS is not implemented.Lauro Ramos Venancio2007-07-111-0/+7
| | | | llvm-svn: 39737
* Change getCopyToParts and getCopyFromParts to always use target-endianDan Gohman2007-07-091-2/+2
| | | | | | | | register ordering, for both physical and virtual registers. Update the PPC target lowering for calls to expect registers for the call result to already be in target order. llvm-svn: 38471
* Move ComputeMaskedBits, MaskedValueIsZero, and ComputeNumSignBits fromDan Gohman2007-06-221-4/+5
| | | | | | | | | TargetLowering to SelectionDAG so that they have more convenient access to the current DAG, in preparation for the ValueType routines being changed from standalone functions to members of SelectionDAG for the pre-legalize vector type changes. llvm-svn: 37704
* describe an argument, hide it.Chris Lattner2007-06-191-1/+3
| | | | llvm-svn: 37650
* If a function is vararg, never pass inreg arguments in registers. Thanks toChris Lattner2007-06-191-1/+2
| | | | | | Anton for half of this patch. llvm-svn: 37641
* Rename MVT::getVectorBaseType to MVT::getVectorElementType.Dan Gohman2007-06-141-2/+2
| | | | llvm-svn: 37579
* Apply this patch:Dan Gohman2007-05-181-1/+1
| | | | | | http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20070514/049845.html llvm-svn: 37240
* fix some subtle inline asm selection issuesChris Lattner2007-05-151-9/+17
| | | | llvm-svn: 37067
* Fix a bug in PPCTargetLowering::isLegalAddressingMode, scales other than 0/1/2Chris Lattner2007-04-091-0/+3
| | | | | | are always unsupported. llvm-svn: 35835
* Starting implementation of the ELF32 ABI specification of varargs handling.Nicolas Geoffray2007-04-031-9/+171
| | | | | | | LowerVASTART emits the right code if the subtarget is ELF32, the other intrinsics (VAARG, VACOPY and VAEND) are not yet implemented. llvm-svn: 35625
* The PPC64 ELF ABI is "intended to use the same structure layout and calling ↵Nicolas Geoffray2007-04-031-13/+13
| | | | | | | | | convention rules as the 64-bit PowerOpen ABI" (Reference http://www.linux-foundation.org/spec/ELF/ppc64/). Change all ELF tests to ELF32. llvm-svn: 35624
* The ELF ABI specifies F1-F8 registers as argument registers for double, notNicolas Geoffray2007-04-031-3/+3
| | | | | | F1-F10. This affects only ELF, not MachO. llvm-svn: 35622
* implement the new addressing mode description hook.Chris Lattner2007-03-301-1/+34
| | | | llvm-svn: 35521
* "The C standards do say that "char" may either be a "signed char" or "unsignedLauro Ramos Venancio2007-03-271-1/+1
| | | | | | | | char" and it is up to the compilers implementation or the platform which is followed." http://www.arm.linux.org.uk/docs/faqs/signedchar.php llvm-svn: 35382
* switch TargetLowering::getConstraintType to take the entire constraint,Chris Lattner2007-03-251-12/+14
| | | | | | not just the first letter. No functionality change. llvm-svn: 35322
* Stack and register alignment of call arguments in the ELF ABINicolas Geoffray2007-03-131-6/+52
| | | | llvm-svn: 35083
* More flexible TargetLowering LSR hooks for testing whether an immediate is a ↵Evan Cheng2007-03-121-2/+3
| | | | | | legal target address immediate or scale. llvm-svn: 35074
* Switch PPC return lower to use an autogenerated CC description.Chris Lattner2007-03-061-40/+30
| | | | llvm-svn: 34940
* Implemented the frameaddress intrinsic for PPC.Nicolas Geoffray2007-03-011-1/+23
| | | | llvm-svn: 34787
* Differentiate between the MachO and the ELF ABI the CALL instruction.Nicolas Geoffray2007-02-271-2/+3
| | | | llvm-svn: 34667
* always lower to RETFLAG, never leave it as just ret.Chris Lattner2007-02-261-8/+7
| | | | llvm-svn: 34639
* no really, this is the right patchChris Lattner2007-02-251-1/+1
| | | | llvm-svn: 34605
* always promote float varargs to double.Chris Lattner2007-02-251-1/+1
| | | | llvm-svn: 34604
* implement support for the linux/ppc function call ABI. Patch byChris Lattner2007-02-251-52/+97
| | | | | | Nicolas Geoffray! llvm-svn: 34574
OpenPOWER on IntegriCloud