summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PowerPC
Commit message (Collapse)AuthorAgeFilesLines
* Alter 79292 to produce output that actually assembles.Dale Johannesen2009-08-261-0/+2
| | | | llvm-svn: 80119
* Make linkerprivate work for ARM and PPC. Testcase coversDale Johannesen2009-08-241-4/+4
| | | | | | | | | all Darwin targets; could be split into separate tests for the chip subdirectories, but from Chris' last mail on testing I assume he'd rather have only one test. Generic seems to be the best available, maybe there should be a Darwin subdirectory? llvm-svn: 79877
* eliminate the last DOUTs from the targets.Chris Lattner2009-08-231-1/+2
| | | | llvm-svn: 79833
* Change Pass::print to take a raw ostream instead of std::ostream,Chris Lattner2009-08-231-1/+1
| | | | | | update all code that this affects. llvm-svn: 79830
* remove various std::ostream version of printing methods fromChris Lattner2009-08-231-3/+2
| | | | | | | | MachineInstr and MachineOperand. This required eliminating a bunch of stuff that was using DOUT, I hope that bill doesn't mind me stealing his fun. ;-) llvm-svn: 79813
* Forgot to update some CMakeLists.Benjamin Kramer2009-08-221-1/+1
| | | | llvm-svn: 79780
* rename TAI -> MAI, being careful not to make MAILJMP instructions :)Chris Lattner2009-08-221-13/+13
| | | | llvm-svn: 79777
* rename COFFMCAsmInfo -> MCAsmInfoCOFF, likewise for darwin.Chris Lattner2009-08-223-6/+6
| | | | llvm-svn: 79773
* Rename TargetAsmInfo (and its subclasses) to MCAsmInfo.Chris Lattner2009-08-225-26/+25
| | | | llvm-svn: 79763
* Record variable debug info at ISel time directly.Devang Patel2009-08-221-41/+0
| | | | llvm-svn: 79742
* eliminate AsmPrinter::SwitchToSection and just have clientsChris Lattner2009-08-191-21/+25
| | | | | | talk to the MCStreamer directly instead. llvm-svn: 79405
* Simplify RegScavenger::FindUnusedReg.Jakob Stoklund Olesen2009-08-181-1/+1
| | | | | | | | | - Drop the Candidates argument and fix all callers. Now that RegScavenger tracks available registers accurately, there is no need to restict the search. - Make sure that no aliases of the found register are in use. This was a potential bug. llvm-svn: 79369
* PowerPC inline asm was emitting two output operandsDale Johannesen2009-08-182-26/+12
| | | | | | | | | for a single "m" constraint; this is wrong because the opcode of a load or store would have to change in parallel. This patch makes it always compute addresses into a register, which is correct but not as efficient as possible. 7144566. llvm-svn: 79292
* Add support for the PowerPC 64-bit SVR4 ABI.Tilmann Scheller2009-08-159-72/+361
| | | | | | | | | | | | | | | | | The Link Register is volatile when using the 32-bit SVR4 ABI. Make it possible to use the 64-bit SVR4 ABI. Add non-volatile registers for the 64-bit SVR4 ABI. Make sure r2 is a reserved register when using the 64-bit SVR4 ABI. Update PPCFrameInfo for the 64-bit SVR4 ABI. Add FIXME for 64-bit Darwin PPC. Insert NOP instruction after direct function calls. Emit official procedure descriptors. Create TOC entries for GlobalAddress references. Spill 64-bit non-volatile registers to the correct slots. Only custom lower VAARG when using the 32-bit SVR4 ABI. Use simple VASTART lowering for the 64-bit SVR4 ABI. llvm-svn: 79091
* Simplify a few more things, eliminating a few more dependencies onDan Gohman2009-08-151-1/+1
| | | | | | "the current basic block". llvm-svn: 79069
* TargetRegistry: Change AsmPrinter constructor to be typed as returning anDaniel Dunbar2009-08-131-4/+4
| | | | | | AsmPrinter instance (instead of just a FunctionPass) llvm-svn: 78962
* Remove HasCrazyBSS and add a flag in TAI to indicate that '.section' Bruno Cardoso Lopes2009-08-132-1/+4
| | | | | | must be emitted for PowerPC-Linux '.bss' section llvm-svn: 78958
* Push LLVMContexts through the IntegerType APIs.Owen Anderson2009-08-131-1/+2
| | | | llvm-svn: 78948
* TargetRegistry: Reorganize AsmPrinter construction so that clients pass in theDaniel Dunbar2009-08-131-5/+5
| | | | | | | | | TargetAsmInfo. This eliminates a dependency on TargetMachine.h from TargetRegistry.h, which technically was a layering violation. - Clients probably can only sensibly pass in the same TargetAsmInfo as the TargetMachine has, but there are only limited clients of this API. llvm-svn: 78928
* Revert 78892 and 78895, these break generating working executables onDaniel Dunbar2009-08-133-13/+11
| | | | | | | | | | | | | | | | | | | | | x86_64-apple-darwin10. --- Reverse-merging r78895 into '.': U test/CodeGen/PowerPC/2008-12-12-EH.ll U lib/Target/DarwinTargetAsmInfo.cpp --- Reverse-merging r78892 into '.': U include/llvm/Target/DarwinTargetAsmInfo.h U lib/Target/X86/X86TargetAsmInfo.cpp U lib/Target/X86/X86TargetAsmInfo.h U lib/Target/ARM/ARMTargetAsmInfo.h U lib/Target/ARM/ARMTargetMachine.cpp U lib/Target/ARM/ARMTargetAsmInfo.cpp U lib/Target/PowerPC/PPCTargetAsmInfo.cpp U lib/Target/PowerPC/PPCTargetAsmInfo.h U lib/Target/PowerPC/PPCTargetMachine.cpp G lib/Target/DarwinTargetAsmInfo.cpp llvm-svn: 78919
* fix a minor fixme. When building with SL and later tools, the ".eh" symbolsChris Lattner2009-08-133-11/+13
| | | | | | don't need to be exported from the .o files. llvm-svn: 78892
* Various AsmWriter output cleanups. Use WriteAsOperand instead ofDan Gohman2009-08-131-15/+5
| | | | | | PrintUnmangledNameSafely. llvm-svn: 78878
* Change TargetAsmInfo to be constructed via TargetRegistry from a Target+TripleChris Lattner2009-08-122-8/+13
| | | | | | | | pair instead of from a virtual method on TargetMachine. This cuts the final ties of TargetAsmInfo to TargetMachine, meaning that MC can now use TargetAsmInfo. llvm-svn: 78802
* Add contexts to some of the MVT APIs. No functionality change yet, just the ↵Owen Anderson2009-08-121-1/+1
| | | | | | infrastructure work needed to get the contexts to where they need to be first. llvm-svn: 78759
* fix CodeGen/PowerPC/2007-01-15-AsmDialect.ll, fallout from r78742Chris Lattner2009-08-111-2/+2
| | | | llvm-svn: 78747
* second half of commit.Chris Lattner2009-08-111-2/+2
| | | | llvm-svn: 78744
* pass "is64Bit" flag into PPC TAI ctors instead of a whole targetmachine.Chris Lattner2009-08-112-20/+7
| | | | llvm-svn: 78743
* eliminate asmflavor from subtarget, PPCTAI is the only clientChris Lattner2009-08-113-19/+4
| | | | | | and each callee knows that it returns. llvm-svn: 78742
* Change the asmprinter to print the comment character before theChris Lattner2009-08-111-4/+0
| | | | | | | | | | "inlineasmstart/end" strings so that the contents of the directive are separate from the comment character. This lets elf targets get #APP/#NOAPP for free even if they don't use "#" as the comment character. This also allows hoisting the darwin stuff up to the shared TAI class. llvm-svn: 78737
* factorize more darwin TAI stuff. Note that this givesChris Lattner2009-08-111-6/+0
| | | | | | darwin/arm support for .no_dead_strip llvm-svn: 78734
* factorize darwin ProtectedDirective and SetDirective.Chris Lattner2009-08-111-2/+2
| | | | llvm-svn: 78732
* all darwin targets have .space and .zerofill, pull up.Chris Lattner2009-08-111-1/+0
| | | | llvm-svn: 78730
* move LCOMMDirective = "\t.lcomm\t" up to DarwinTAI, eliminateChris Lattner2009-08-112-31/+29
| | | | | | template in PPC backend for TAI. llvm-svn: 78727
* Split EVT into MVT and EVT, the former representing _just_ a primitive type, ↵Owen Anderson2009-08-114-554/+554
| | | | | | | | while the latter is capable of representing either a primitive or an extended type. llvm-svn: 78713
* pass the TargetTriple down from each target ctor to theChris Lattner2009-08-111-4/+3
| | | | | | LLVMTargetMachine ctor. It is currently unused. llvm-svn: 78711
* SjLj based exception handling unwinding support. This patch is nasty, brutishJim Grosbach2009-08-111-3/+3
| | | | | | | | | | | | | and short. Well, it's kinda short. Definitely nasty and brutish. The front-end generates the register/unregister calls into the SjLj runtime, call-site indices and landing pad dispatch. The back end fills in the LSDA with the call-site information provided by the front end. Catch blocks are not yet implemented. Built on Darwin and verified no llvm-core "make check" regressions. llvm-svn: 78625
* Rename MVT to EVT, in preparation for splitting SimpleValueType out into its ↵Owen Anderson2009-08-104-619/+619
| | | | | | own struct type. llvm-svn: 78610
* Continue the SimpleValueType-ification.Owen Anderson2009-08-101-1/+1
| | | | llvm-svn: 78593
* Start moving TargetLowering away from using full MVTs and towards ↵Owen Anderson2009-08-102-2/+2
| | | | | | SimpleValueType, which will simplify the privatization of IntegerType in the future. llvm-svn: 78584
* split MachO section handling stuff out to its out .h/.cpp file.Chris Lattner2009-08-101-1/+1
| | | | llvm-svn: 78576
* Fix a weird ppc64-specific link error during an llvm-gcc build:Chris Lattner2009-08-101-0/+2
| | | | | | | | | | ld: bad offset (0x00000091) for lo14 instruction pic-base fix-up in ___popcountdi2 from libgcc/./_popcountsi2_s.o The problem is that the non lazy symbol pointers need to be 8 byte aligned on ppc64 and .section doesn't have an implicit alignment like ".non_lazy_symbol_pointer" does. llvm-svn: 78572
* Make the big switch: Change MCSectionMachO to represent a section *semantically*Chris Lattner2009-08-101-31/+27
| | | | | | | | | | | | | | | | instead of syntactically as a string. This means that it keeps track of the segment, section, flags, etc directly and asmprints them in the right format. This also includes parsing and validation support for llvm-mc and "attribute(section)", so we should now start getting errors about invalid section attributes from the compiler instead of the assembler on darwin. Still todo: 1) Uniquing of darwin mcsections 2) Move all the Darwin stuff out to MCSectionMachO.[cpp|h] 3) there are a few FIXMEs, for example what is the syntax to get the S_GB_ZEROFILL segment type? llvm-svn: 78547
* 1. Make MCSection an abstract class.Chris Lattner2009-08-081-1/+1
| | | | | | | | | 2. Move section switch printing to MCSection virtual method which takes a TAI. This eliminates textual formatting stuff from TLOF. 3. Eliminate SwitchToSectionDirective, getSectionFlagsAsString, and TLOFELF::AtIsCommentChar. llvm-svn: 78510
* make printInstruction return void since its result is omitted. Make the Chris Lattner2009-08-081-1/+1
| | | | | | error condition get trapped with an assert. llvm-svn: 78449
* don't check the result of printInstruction anymore.Chris Lattner2009-08-081-4/+1
| | | | llvm-svn: 78444
* Remove some dead code.Daniel Dunbar2009-08-051-9/+0
| | | | llvm-svn: 78219
* Remove dead code. MDNode and MDString are not Constant anymore.Devang Patel2009-08-051-3/+0
| | | | llvm-svn: 78207
* Major calling convention code refactoring.Dan Gohman2009-08-053-277/+307
| | | | | | | | | | | | | | | | | | | Instead of awkwardly encoding calling-convention information with ISD::CALL, ISD::FORMAL_ARGUMENTS, ISD::RET, and ISD::ARG_FLAGS nodes, TargetLowering provides three virtual functions for targets to override: LowerFormalArguments, LowerCall, and LowerRet, which replace the custom lowering done on the special nodes. They provide the same information, but in a more immediately usable format. This also reworks much of the target-independent tail call logic. The decision of whether or not to perform a tail call is now cleanly split between target-independent portions, and the target dependent portion in IsEligibleForTailCallOptimization. This also synchronizes all in-tree targets, to help enable future refactoring and feature work. llvm-svn: 78142
* Don't flush the raw_ostream between each MachineFunction. These flushDan Gohman2009-08-051-2/+0
| | | | | | | | | | | calls were originally put in place because errs() at one time was not unbuffered, and these print routines are commonly used with errs() for debugging. However, errs() is now properly unbuffered, so the flush calls are no longer needed. This significantly reduces the number of write(2) calls for regular asm printing when there are many small functions. llvm-svn: 78137
* make MergeableCString be a SectionKind "abstract class", andChris Lattner2009-08-041-0/+1
| | | | | | | | add new concrete versions for 1/2/4-byte mergable strings. These are not actually created yet. llvm-svn: 78055
OpenPOWER on IntegriCloud