summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PowerPC
Commit message (Collapse)AuthorAgeFilesLines
* linux/ppc does use alignment in bytes, not pow-2. This fixes PR6129.Chris Lattner2010-01-241-1/+0
| | | | | | | | It looks like linux/arm and linux/mips have the same setting, which are probably wrong. Someone who cares about ARM and MIPS should investigate with the testcase in PR6129. llvm-svn: 94381
* make -fno-rtti the default unless a directory builds with REQUIRES_RTTI.Chris Lattner2010-01-243-3/+0
| | | | llvm-svn: 94378
* move PR5945 here.Chris Lattner2010-01-241-0/+29
| | | | llvm-svn: 94350
* change the canonical form of "cond ? -1 : 0" to be Chris Lattner2010-01-241-8/+5
| | | | | | | | "sext cond" instead of a select. This simplifies some instcombine code, matches the policy for zext (cond ? 1 : 0 -> zext), and allows us to generate better code for a testcase on ppc. llvm-svn: 94339
* add a noteChris Lattner2010-01-231-0/+29
| | | | llvm-svn: 94317
* mcize lcomm, simplify .comm, extend both to support 64-bit sizes.Chris Lattner2010-01-231-1/+1
| | | | llvm-svn: 94299
* move the various directive enums out of the MCStreamer classChris Lattner2010-01-231-1/+1
| | | | | | into a new MCDirectives.h file. llvm-svn: 94294
* remove unneeded directive set.Chris Lattner2010-01-231-1/+0
| | | | llvm-svn: 94286
* Stop building RTTI information for *most* llvm libraries. NotableChris Lattner2010-01-223-0/+4
| | | | | | | | | | | missing ones are libsupport, libsystem and libvmcore. libvmcore is currently blocked on bugpoint, which uses EH. Once it stops using EH, we can switch it off. This #if 0's out 3 unit tests, because gtest requires RTTI information. Suggestions welcome on how to fix this. llvm-svn: 94164
* remove dead .erase.Chris Lattner2010-01-211-3/+1
| | | | llvm-svn: 94098
* fix a problem with a missing _, testcase pending.Chris Lattner2010-01-211-1/+1
| | | | llvm-svn: 94095
* eliminate FnStubInfo, using MachineModuleInfoMachO instead.Chris Lattner2010-01-201-73/+66
| | | | | | this makes function stub emission determinstic. llvm-svn: 94033
* split function stub printing out to its own function,Chris Lattner2010-01-201-46/+58
| | | | | | no functionality change. llvm-svn: 94030
* eliminate the GVStubs and HiddenGVStubs maps, and use Chris Lattner2010-01-201-23/+39
| | | | | | | | MachineModuleInfoMachO instead. This eliminates two sources of nondeterministic output in the ppc backend, but function stubs are still bad. llvm-svn: 94029
* revert 93934, removing the MCAsmInfo endianness bit. I can'tChris Lattner2010-01-201-2/+2
| | | | | | | stomache MCAsmInfo having this, and I found a better solution to this layering issue. llvm-svn: 93985
* give MCAsmInfo a 'has little endian' bit. This is unfortunate, butChris Lattner2010-01-191-2/+2
| | | | | | | | | I really want clients of the streamer to be able to say "emit this 64-bit integer" and have it get broken down right by the streamer. I may change this in the future, we'll see how it works out. llvm-svn: 93934
* Now that we have everything nicely factored (e.g. asmprinter is notChris Lattner2010-01-191-185/+0
| | | | | | | | | | | | | | | | | | | | | | | doing global variable classification anymore) and hookized, sink almost all target targets global variable emission code into AsmPrinter and out of each target. Some notes: 1. PIC16 does completely custom and crazy stuff, so it is not changed. 2. XCore has some custom handling for extra directives. I'll look at it next. 3. This switches linux/ppc to use .globl instead of .global. If .globl is actually wrong, let me know and I'll fix it. 4. This makes linux/ppc get a lot of random cases right which were obviously wrong before, it is probably now a bit healthier. 5. Blackfin will probably start getting .comm and other things that it didn't before. If this is undesirable, it should explicitly opt out of these things by clearing the relevant fields of MCAsmInfo. This leads to a nice diffstat: 14 files changed, 127 insertions(+), 830 deletions(-) llvm-svn: 93858
* add a bool for whether .lcomm takes an alignment instead of basing this on ↵Chris Lattner2010-01-191-1/+3
| | | | | | "isdarwin". llvm-svn: 93852
* hoist handling of external globals and special globals up to common code.Chris Lattner2010-01-191-29/+14
| | | | | | | | | | This makes a similar code dead in all the other targets, I'll clean it up in a bit. This also moves handling of lcomm up before acquisition of a section, since lcomm never needs a section. llvm-svn: 93851
* move production of .reference directives for static ctor/dtor list onChris Lattner2010-01-191-8/+1
| | | | | | darwin into common code. llvm-svn: 93849
* use BSSLocal classifier to identify 'lcomm' data instead ofChris Lattner2010-01-191-32/+23
| | | | | | duplicating the logic (differently) in lots of different targets. llvm-svn: 93847
* now that elf weak bss symbols are handled correctly, simplify a bunch of code.Chris Lattner2010-01-191-37/+11
| | | | llvm-svn: 93845
* introduce a section kind for common linkage. Use this to slightlyChris Lattner2010-01-191-17/+50
| | | | | | | | | simplify and commonize some of the asmprinter logic for globals. This also avoids printing the MCSection for .zerofill, which broke the llvm-gcc build. llvm-svn: 93843
* Even more explanation.Bill Wendling2010-01-191-0/+12
| | | | llvm-svn: 93841
* change an accessor to a predicate.Chris Lattner2010-01-191-2/+2
| | | | llvm-svn: 93839
* Cleanup handling of .zerofill on darwin:Chris Lattner2010-01-191-25/+36
| | | | | | | | | | | | | 1. TargetLoweringObjectFileMachO should decide if something goes in zerofill instead of having every target do it. 2. TargetLoweringObjectFileMachO should assign said symbols to the right MCSection, the asmprinters should just emit to the right section. 3. Since all zerofill stuff goes through mcstreamer anymore, MAI can have a bool "haszerofill" instead of having the textual directive to emit. llvm-svn: 93838
* - Add getLSDAEncoding to the PowerPC backend.Bill Wendling2010-01-182-1/+28
| | | | | | - Greatly improve the comments to the getLSDAEncoding method. llvm-svn: 93796
* now that MCSymbol::print doesn't use it's MAI argument, we can Chris Lattner2010-01-171-161/+65
| | | | | | | remove it and change all the code that prints MCSymbols to use << instead, which is much simpler and cleaner. llvm-svn: 93695
* move the mangler into libtarget from vmcore.Chris Lattner2010-01-161-1/+1
| | | | llvm-svn: 93664
* rename GetPrivateGlobalValueSymbolStub -> GetSymbolWithGlobalValueBase,Chris Lattner2010-01-161-6/+6
| | | | | | | | and add an explicit ForcePrivate argument. Switch FunctionEHFrameInfo to be MCSymbol based instead of string based. llvm-svn: 93646
* more string -> sym, getMangledName is now gone from this file.Chris Lattner2010-01-161-29/+35
| | | | llvm-svn: 93624
* use symbols instead of strings, eliminating a bunch of getMangledNameChris Lattner2010-01-161-39/+55
| | | | | | calls. Add FIXMEs about a bunch of nondeterminism in stub output. llvm-svn: 93621
* simplify some code.Chris Lattner2010-01-161-9/+5
| | | | llvm-svn: 93619
* switch more stuff onto MCSymbolsChris Lattner2010-01-161-38/+72
| | | | llvm-svn: 93608
* MCize a bunch more stuff, eliminating a lot of uses of the manglerChris Lattner2010-01-161-16/+40
| | | | | | and CurrentFnName. llvm-svn: 93594
* Teach PPC how to replaceMachineCodeForFunction correctly. (FixesJeffrey Yasskin2010-01-141-0/+2
| | | | | | JITTest.FunctionIsRecompiledAndRelinked.) llvm-svn: 93475
* just finish MCizing FnStubInfo which cleans it up and simplifies it.Chris Lattner2010-01-131-48/+33
| | | | llvm-svn: 93334
* don't call getNameWithPrefix repeatedly and unnecesarily.Chris Lattner2010-01-131-5/+7
| | | | llvm-svn: 93333
* properly use MCSymbol to print the strings aquired from getNameWithPrefix.Chris Lattner2010-01-131-25/+64
| | | | llvm-svn: 93332
* eliminate some uses of Mangler::makeNameProper.Chris Lattner2010-01-131-6/+7
| | | | llvm-svn: 93305
* change Mangler::makeNameProper to return its result in a SmallVectorChris Lattner2010-01-131-8/+16
| | | | | | | | | | | | instead of returning it in an std::string. Based on this change: 1. Change TargetLoweringObjectFileCOFF::getCOFFSection to take a StringRef 2. Change a bunch of targets to call makeNameProper with a smallstring, making several of them *much* more efficient. 3. Rewrite Mangler::makeNameProper to not build names and then prepend prefixes, not use temporary std::strings, and to avoid other crimes. llvm-svn: 93298
* constant materialization could be improved.Chris Lattner2010-01-071-0/+33
| | | | llvm-svn: 92921
* Reenable debug info on PPC. Works well enough toDale Johannesen2010-01-061-0/+1
| | | | | | bootstrap. llvm-svn: 92818
* Make sure debug info hook gets called when emittingDale Johannesen2010-01-061-12/+11
| | | | | | synonyms for PPC. llvm-svn: 92817
* Don't specify CR sub-registers as implicit defs of BL instructions.Jakob Stoklund Olesen2010-01-051-6/+2
| | | | | | | It is enough to give the super registers CR0, CR1, ..., and specifying the sub-registers as well causes confusion in the liveness computations. llvm-svn: 92778
* Change SelectCode's argument from SDValue to SDNode *, to make it moreDan Gohman2010-01-051-19/+17
| | | | | | | | | clear what information these functions are actually using. This is also a micro-optimization, as passing a SDNode * around is simpler than passing a { SDNode *, int } by value or reference. llvm-svn: 92564
* Add more plumbing. This time in the LowerArguments and "get" functions whichBill Wendling2009-12-221-1/+1
| | | | | | | | return partial registers. This affected the back-end lowering code some. Also patch up some places I missed before in the "get" functions. llvm-svn: 91880
* Fix wrong frame pointer save offset in the 64-bit PowerPC SVR4 ABI.Tilmann Scheller2009-12-181-1/+1
| | | | | | Patch contributed by Ken Werner of IBM! llvm-svn: 91681
* Add support for calls through function pointers in the 64-bit PowerPC SVR4 ABI.Tilmann Scheller2009-12-184-3/+141
| | | | | | Patch contributed by Ken Werner of IBM! llvm-svn: 91680
* Change indirect-globals to use a dedicated allocIndirectGV. This lets usJeffrey Yasskin2009-12-151-1/+0
| | | | | | | | | remove start/finishGVStub and the BufferState helper class from the MachineCodeEmitter interface. It has the side-effect of not setting the indirect global writable and then executable on ARM, but that shouldn't be necessary. llvm-svn: 91464
OpenPOWER on IntegriCloud