summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Use the right floating point load/store instructions in ↵Jakob Stoklund Olesen2010-02-262-26/+18
| | | | | | | | | | | | | | | | | | PPCInstrInfo::foldMemoryOperandImpl(). The PowerPC floating point registers can represent both f32 and f64 via the two register classes F4RC and F8RC. F8RC is considered a subclass of F4RC to allow cross-class coalescing. This coalescing only affects whether registers are spilled as f32 or f64. Spill slots must be accessed with load/store instructions corresponding to the class of the spilled register. PPCInstrInfo::foldMemoryOperandImpl was looking at the instruction opcode which is wrong. X86 has similar floating point register classes, but doesn't try to fold memory operands, so there is no problem there. llvm-svn: 97262
* Remove dead codeJakob Stoklund Olesen2010-02-261-4/+0
| | | | llvm-svn: 97261
* Replace a temporary std::string with SmallString.Benjamin Kramer2010-02-261-1/+2
| | | | llvm-svn: 97259
* Move dbg_value generation to target-independent FastISel,Dale Johannesen2010-02-262-29/+28
| | | | | | as X86 is currently the only FastISel target. Per review. llvm-svn: 97255
* Add type printing for Metadata pseudo.Dale Johannesen2010-02-261-0/+1
| | | | llvm-svn: 97251
* Move the EnableFullLoadPRE flag from a separate command-line option to anBob Wilson2010-02-261-5/+6
| | | | | | argument of createGVNPass and set it automatically for -O3. llvm-svn: 97245
* Remove unused "NoPRE" parameter in GVN and createGVNPass().Bob Wilson2010-02-262-6/+5
| | | | llvm-svn: 97235
* pass in more section kinds, enough to get the .align 0x90Chris Lattner2010-02-261-5/+9
| | | | | | stuff to emit optimal nops in the right places. llvm-svn: 97233
* The cloner has nothing to do if any of the main or ISR entrypoints are not Sanjiv Gupta2010-02-261-0/+3
| | | | | | present in the module. llvm-svn: 97232
* fix PR6435 another bug from the MallocInst elimination work.Chris Lattner2010-02-261-3/+1
| | | | llvm-svn: 97231
* Reapply things reverted back in 97220, with the fixed test case.Sanjiv Gupta2010-02-264-18/+69
| | | | llvm-svn: 97228
* movl is a cheaper way to materialize 0 without clobbering EFLAGS than movabsq.Dan Gohman2010-02-261-1/+1
| | | | llvm-svn: 97227
* Fix XCoreTargetLowering::isLegalAddressingMode() to handle VoidTy.Richard Osborne2010-02-261-3/+1
| | | | | | | Previously LoopStrengthReduce would sometimes be unable to find a legal formula, causing an assertion failure. llvm-svn: 97226
* Revert r97211 and r97213 to get the build green again.Chandler Carruth2010-02-264-69/+16
| | | | llvm-svn: 97220
* Currently in LLVM, names of libcalls are assigned during TargetLoweringSanjiv Gupta2010-02-263-12/+51
| | | | | | | | object construction. There is no provision to change them when the code for a function generated. So we have to change these names while printing assembly. llvm-svn: 97213
* Before converting an operand to mem, check if it is legal to do so.Sanjiv Gupta2010-02-261-4/+18
| | | | llvm-svn: 97211
* Delete a bunch of redundant predicates.Dan Gohman2010-02-261-44/+41
| | | | llvm-svn: 97201
* Fix comments.Bill Wendling2010-02-261-3/+3
| | | | llvm-svn: 97200
* Add another (and hopefully the last) exception case, where once we recalculateBill Wendling2010-02-261-3/+11
| | | | | | | the alignment requirement, if it no longer makes the TType base offset overflow into extra bytes, then we need to pad to those bytes ourselves. llvm-svn: 97196
* And should use the correct variable.Bill Wendling2010-02-261-1/+1
| | | | llvm-svn: 97193
* Got assertion check backwards.Bill Wendling2010-02-261-1/+1
| | | | llvm-svn: 97192
* Catch a corner case where adding the padding to the "TType base offset" fieldBill Wendling2010-02-251-2/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | will eliminate the need for padding in the "Call site table length". E.g., if we have this: GCC_except_table1: Lexception1: .byte 0xff ## @LPStart Encoding = omit .byte 0x9b ## @TType Encoding = indirect pcrel sdata4 .byte 0x7f ## @TType base offset .byte 0x03 ## Call site Encoding = udata4 .byte 0x89 ## Call site table length with padding of 1. We want to emit the padding like this: GCC_except_table1: Lexception1: .byte 0xff ## @LPStart Encoding = omit .byte 0x9b ## @TType Encoding = indirect pcrel sdata4 .byte 0xff ## @TType base offset .space 1,0 ## Padding .byte 0x03 ## Call site Encoding = udata4 .byte 0x89 ## Call site table length and not with padding on the "Call site table length" entry. llvm-svn: 97183
* rewrite OptimizeGlobalAddressOfMalloc to fix PR6422, some bugsChris Lattner2010-02-251-79/+73
| | | | | | introduced when mallocinst was eliminated. llvm-svn: 97178
* Make comment more meaningful.Bill Wendling2010-02-251-1/+2
| | | | llvm-svn: 97169
* Fix ExpandVectorBuildThroughStack for the case where theDan Gohman2010-02-251-3/+3
| | | | | | | operands are themselves vectors. Based on a patch by Micah Villmow for PR6338. llvm-svn: 97165
* Added the following 32-bit Thumb instructions for disassembly only: SMC, RFE,Johnny Chen2010-02-251-0/+59
| | | | | | and SRS. llvm-svn: 97164
* Added the 32-bit Thumb instructions (BXJ) for disassembly only.Johnny Chen2010-02-251-0/+11
| | | | llvm-svn: 97163
* Added the 32-bit Thumb instructions (MRS and MSR) for disassembly only.Johnny Chen2010-02-251-0/+50
| | | | llvm-svn: 97159
* This is a patch to the assembler frontend to detect when aligning a textKevin Enderby2010-02-251-3/+9
| | | | | | | | section with TextAlignFillValue and calls EmitCodeAlignment() instead of calling EmitValueToAlignment(). This allows x86 assembly code to be aligned with optimal nops. llvm-svn: 97158
* Fix TextAlignFillValue in a few placesDaniel Dunbar2010-02-251-0/+4
| | | | llvm-svn: 97151
* Added the following 16-bit Thumb instructions for disassembly only: YIELD, WFE,Johnny Chen2010-02-251-0/+42
| | | | | | WFI, SEV, SETEND. llvm-svn: 97149
* Teach the constant folder about union types.Dan Gohman2010-02-251-0/+34
| | | | llvm-svn: 97142
* Remove code which assumes it knows how vectors are stored in memory.Dan Gohman2010-02-251-12/+2
| | | | llvm-svn: 97141
* Revert r97064. Duncan pointed out that bitcasts are defined inDan Gohman2010-02-254-65/+13
| | | | | | | | terms of store and load, which means bitcasting between scalar integer and vector has endian-specific results, which undermines this whole approach. llvm-svn: 97137
* Make the side-numbering of instructions used by metadata (which is needed toNick Lewycky2010-02-252-2/+2
| | | | | | | | | keep track of instructions that return void) per-function. This fixes PR5278. This breaks backwards compatibility with the metadata format. That's okay because we haven't released the metadata bitcode yet. llvm-svn: 97132
* Make LoopSimplify change conditional branches in loop exiting blocksDan Gohman2010-02-253-27/+61
| | | | | | | | | | | | which branch on undef to branch on a boolean constant for the edge exiting the loop. This helps ScalarEvolution compute trip counts for loops. Teach ScalarEvolution to recognize single-value PHIs, when safe, and ForgetSymbolicName to forget such single-value PHI nodes as apprpriate in ForgetSymbolicName. llvm-svn: 97126
* Dump the presence of attached metadata even if we don't know what it is. ThisNick Lewycky2010-02-251-6/+10
| | | | | | | | format is not parsable, even if the module is legal. To get parsable output, dump the module instead of the function or smaller, since metadata kind are attached to the module (not the context). llvm-svn: 97124
* Modernize comment.Nick Lewycky2010-02-251-1/+1
| | | | llvm-svn: 97121
* Correct whitespace.Nick Lewycky2010-02-251-1/+1
| | | | llvm-svn: 97120
* Each field of auxiliary debug entry is only 1 byte long.Sanjiv Gupta2010-02-251-1/+1
| | | | llvm-svn: 97108
* Added tNOP for disassembly only.Johnny Chen2010-02-251-1/+8
| | | | llvm-svn: 97105
* Truncate from i64 to i32 is "free" on x86-32, because it involves Dan Gohman2010-02-251-2/+2
| | | | | | just discarding one of the registers. llvm-svn: 97100
* Revert this patch for the time being. Needs more testing.Scott Michel2010-02-253-150/+11
| | | | llvm-svn: 97099
* Added tSVC and tTRAP for disassembly only.Johnny Chen2010-02-251-0/+18
| | | | llvm-svn: 97098
* Large stack frame patch for the CellSPU: handle stack frames that exceed 8176Scott Michel2010-02-253-11/+150
| | | | | | | | | | | | | (511*16) bytes register displacement (D-form). NOTE: This is a potential headache, given the SPU's local core limitations, allowing the software developer to commit stack overrun suicide unknowingly. Also, large SPU stack frames will cause code size explosion. But, one presumes that the software developer knows what they're doing... Contributed by Kalle.Raiskila@nokia.com, edited slightly before commit. llvm-svn: 97091
* MC'ize padding when padding the ULEB128 value.Bill Wendling2010-02-251-7/+5
| | | | llvm-svn: 97087
* LLVM puts padding bytes in the __gcc_except_tab section after theBill Wendling2010-02-243-41/+52
| | | | | | | | | | GCC_except_table label but before the Lexception, which the FDE references. This causes problems as the FDE does not point to the start of an LSDA chunk. Use an unnormalized uleb128 for the call-site table length that includes the padding. llvm-svn: 97078
* clean up various VT manipulations, patch by Micah Villmow! PR6337Chris Lattner2010-02-241-9/+6
| | | | llvm-svn: 97072
* Create a stack frame on ARM whenJakob Stoklund Olesen2010-02-241-41/+41
| | | | | | | | | | | - Function uses all scratch registers AND - Function does not use any callee saved registers AND - Stack size is too big to address with immediate offsets. In this case a register must be scavenged to calculate the address of a stack object, and the scavenger needs a spare register or emergency spill slot. llvm-svn: 97071
* Check for comparisons of +/- zero when optimizing less-than-or-equal andBob Wilson2010-02-241-22/+31
| | | | | | | | greater-than-or-equal SELECT_CCs to NEON vmin/vmax instructions. This is only allowed when UnsafeFPMath is set or when at least one of the operands is known to be nonzero. llvm-svn: 97065
OpenPOWER on IntegriCloud