summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
Commit message (Collapse)AuthorAgeFilesLines
...
* Fixed error in CPPBackend from a contextification API change.Reid Kleckner2009-08-191-3/+4
| | | | llvm-svn: 79483
* Remove temporary testing code.Dan Gohman2009-08-191-1/+0
| | | | llvm-svn: 79443
* Add an x86 peep that narrows TEST instructions to forms that useDan Gohman2009-08-191-6/+103
| | | | | | | a smaller encoding. These kinds of patterns are very frequent in sqlite3, for example. llvm-svn: 79439
* Update Cortex-A8 instruction itineraries for integer instructions.David Goodwin2009-08-196-365/+650
| | | | llvm-svn: 79436
* Add support for Neon VEXT (vector extract) shuffles.Bob Wilson2009-08-193-1/+69
| | | | | | | | This is derived from a patch by Anton Korzh. I modified it to recognize the VEXT shuffles during legalization and lower them to a target-specific DAG node. llvm-svn: 79428
* eliminate AsmPrinter::SwitchToSection and just have clientsChris Lattner2009-08-1913-73/+94
| | | | | | talk to the MCStreamer directly instead. llvm-svn: 79405
* Implement sse4.2 string/text processing instructions:Eric Christopher2009-08-184-1/+178
| | | | | | | | Add patterns and instruction encoding information. Add custom lowering to deal with hardwired return register of uncertain type (xmm0). llvm-svn: 79377
* Simplify RegScavenger::FindUnusedReg.Jakob Stoklund Olesen2009-08-184-13/+5
| | | | | | | | | - 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
* Add support for mergeable sections back into the XCore backend.Richard Osborne2009-08-181-5/+18
| | | | llvm-svn: 79368
* Put data with relocations in the same sections as data without relocations.Richard Osborne2009-08-181-1/+7
| | | | llvm-svn: 79351
* fix COFF targets (mingw/cygwin) to provide ehframe and LSDA sectionsChris Lattner2009-08-181-0/+8
| | | | llvm-svn: 79346
* Text sections should have 'exec' flag set. This seems to unbreak libstdc++ ↵Anton Korobeynikov2009-08-181-0/+3
| | | | | | | | on linux. Patch by Dmitry Gorbachev! llvm-svn: 79334
* remove some pointless null switchtosections. The IntelAsmPrinter doesn't ↵Chris Lattner2009-08-181-4/+2
| | | | | | really work anyway. llvm-svn: 79321
* Fix revsh pattern.Evan Cheng2009-08-182-2/+2
| | | | llvm-svn: 79318
* add support for some targetflags on GV operands. This allows us toChris Lattner2009-08-181-2/+44
| | | | | | | | | | | send instructions like: NEW: movl "L___stack_chk_guard$non_lazy_ptr" - "L1$pb"(%esi), %eax OLD: movl L___stack_chk_guard$non_lazy_ptr-"L1$pb"(%esi), %eax through the streamer. Several fixmes. llvm-svn: 79317
* Fix function alignment at -Os on x86 to be 1, not 2. getFunctionAlignmentDan Gohman2009-08-181-1/+1
| | | | | | returns a log2 value. llvm-svn: 79293
* 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
* Clear the uniquing table when initializing TLOF to avoid a crash when the ↵Benjamin Kramer2009-08-171-0/+6
| | | | | | TLOF is reinitialized with a different MCContext. llvm-svn: 79253
* Update getSectionForConstant() to to allow mergable sections to be nulled outRichard Osborne2009-08-171-3/+3
| | | | | | if not supported by the ELF subtarget. llvm-svn: 79249
* the MinPad argument to PadToColumn only really makes sense to be 1,Chris Lattner2009-08-172-5/+5
| | | | | | just remove the argument and replace it with 1. llvm-svn: 79246
* Avoid emitting XMM save code in soft-float or no-implicit-float modeDan Gohman2009-08-161-22/+25
| | | | | | or some other situation where no xmm registers need to be saved. llvm-svn: 79207
* Delete an unused field.Dan Gohman2009-08-161-3/+0
| | | | llvm-svn: 79206
* Fix use after free in Thumb2SizeReduction (PR4707). A MachineInstr was used ↵Benjamin Kramer2009-08-161-1/+4
| | | | | | after erasure. llvm-svn: 79189
* Styalistic and format changes. No functionality change.Bill Wendling2009-08-161-73/+85
| | | | llvm-svn: 79187
* add support for external symbols + X86::MOVPC32r.Chris Lattner2009-08-162-59/+123
| | | | llvm-svn: 79175
* implement support for lowering references to global addresses. For example, ↵Chris Lattner2009-08-162-5/+53
| | | | | | | | | | | | | we now can asmprint: NEW: movl "L___stack_chk_guard$non_lazy_ptr", %eax OLD: movl L___stack_chk_guard$non_lazy_ptr, %eax where 'new' is coming out of the MCInst version of the printer. llvm-svn: 79170
* more formatting improvements, no functionality change.Chris Lattner2009-08-161-57/+65
| | | | llvm-svn: 79167
* code formatting improvements, no functionality change.Chris Lattner2009-08-161-74/+85
| | | | llvm-svn: 79165
* An overhaul of the exception handling code. This is arguably more correct thanBill Wendling2009-08-151-55/+81
| | | | | | | | | | | | | what was there before. In "no FP mode", we weren't generating labels and unwind table entries after each "push" instruction. While more than likely "okay", it's not technically correct. The major thing was that the ordering of when to define a new CFA register and at what offset wasn't correct. This would cause the exception handling to fail in ways most miserable to users. I also cleaned up some code a bit. There's one function which has a "return" at the beginning, so it's never used. Should I just remove it? :-) llvm-svn: 79139
* Reapply r79127. It was fixed by d0k.Bill Wendling2009-08-155-9/+43
| | | | llvm-svn: 79136
* Revert r79127. It was causing compilation errors.Bill Wendling2009-08-155-43/+9
| | | | llvm-svn: 79135
* Change allowsUnalignedMemoryAccesses to take type argument since some targetsEvan Cheng2009-08-155-9/+43
| | | | | | | | | | support unaligned mem access only for certain types. (Should it be size instead?) ARM v7 supports unaligned access for i16 and i32, some v6 variants support it as well. llvm-svn: 79127
* the .eh_frame sections we generate need to be writable (whichChris Lattner2009-08-151-1/+2
| | | | | | | is why they are datarel). This should fix PR4724, and is fallout from r78890. llvm-svn: 79111
* Use the new API for creating an OpaqueType.Nicolas Geoffray2009-08-151-2/+4
| | | | llvm-svn: 79107
* tidy upChris Lattner2009-08-151-1/+2
| | | | llvm-svn: 79101
* Update cpp generation with new LLVM API for primitive types.Nicolas Geoffray2009-08-151-6/+7
| | | | llvm-svn: 79098
* Revert a few changes that were done in 78603.Sanjiv Gupta2009-08-152-14/+15
| | | | | | | | PIC16DebugInfo currently rely on NameStr of composite type descriptors to uniquely identify debug info for two aggregate type decls with same name. This implementation will change when we have MDNodes based debug info implemenatation in place llvm-svn: 79097
* Move XCore AsmPrinter to XCore/AsmPrinter directory.Richard Osborne2009-08-156-9/+32
| | | | llvm-svn: 79094
* 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
* Turn on if-conversion for thumb2.Evan Cheng2009-08-159-51/+57
| | | | llvm-svn: 79084
* update for rename.Chris Lattner2009-08-151-2/+2
| | | | llvm-svn: 79082
* rename PIC16Section.h -> MCSectionPIC16.h for consistency withChris Lattner2009-08-153-2/+2
| | | | | | the class it defines. llvm-svn: 79081
* cmake likes its explicit list of files to build.Chris Lattner2009-08-151-0/+1
| | | | llvm-svn: 79080
* use XCore-specific section with xcore specific cp/dp flags to restore Chris Lattner2009-08-151-14/+26
| | | | | | | | support for globals going into the appropriate sections with the flags. This hopefully finishes unbreaking the previous behavior that I broke before. llvm-svn: 79079
* If ELF subtargets don't want to support 4/8/16-byte mergable sections, allow Chris Lattner2009-08-151-3/+3
| | | | | | them to null out the default section pointers. llvm-svn: 79078
* add support for target-specific ELF section flags, add a new MCSectionXCoreChris Lattner2009-08-152-0/+89
| | | | | | | class which represents the XCore cp/dp section flags. No functionality change yet. llvm-svn: 79077
* Simplify a few more things, eliminating a few more dependencies onDan Gohman2009-08-152-3/+1
| | | | | | "the current basic block". llvm-svn: 79069
* Do not use frame register to reference fixed stack objects if the function ↵Evan Cheng2009-08-152-13/+14
| | | | | | is frameless. llvm-svn: 79067
* On x86-64, for a varargs function, don't store the xmm registers toDan Gohman2009-08-153-18/+126
| | | | | | | the register save area if %al is 0. This avoids touching xmm regsiters when they aren't actually used. llvm-svn: 79061
* Leaf functions which do not save CSRs can be frameless even with ↵Evan Cheng2009-08-142-1/+10
| | | | | | -disable-fp-elim. llvm-svn: 79039
OpenPOWER on IntegriCloud