aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2010-02-27remove a bogus pattern, which had the same pattern as STDUChris Lattner
but codegen'd differently. This really wanted to use some sort of subreg to get the low 4 bytes of the G8RC register or something. However, it's invalid and nothing is testing it, so I'm just zapping the bogosity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97345 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27fix an incorrect (overly conservative) predicate.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97316 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27fix grammaro's pointed out by danielChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97313 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27Re-apply 97040 with fix. This survives a ppc self-host llvm-gcc bootstrap.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97310 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27The TType is always absptr on Mach-O...at least for now.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97295 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-27fix PR6414, a nondeterminism issue in IPSCCP which was becauseChris Lattner
of a subtle interation in a loop operating in densemap order. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97288 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26Fix rdar://7694996 a miscompile of 183.equake from my patch yesterday,Chris Lattner
confusing the old MAT variable with the new GlobalType one. This caused us to promote the @disp global pointer into: @disp.body = internal global double*** undef instead of: @disp.body = internal global [3 x double**] undef git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97285 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26remove dead code, by this point all uses of CI are gone.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97283 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26Make APFloat's string-parsing routines a bit safer against very large exponents.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97278 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26A much cleaner (and less code!) way of inserting the correct amount of paddingBill Wendling
for alignment into the LSDA. If the TType base offset is emitted, then put the padding there. Otherwise, put it in the call site table length. There will be no conflict between the two sites when placing the padding in one place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97277 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26Added the follwoing 32-bit Thumb instructions for disassembly only:Johnny Chen
o Parallel addition and subtraction, signed/unsigned o Miscellaneous operations: QADD, QDADD, QSUB, QDSUB o Unsigned sum of absolute differences [and accumulate]: USAD8, USADA8 o Signed/Unsigned saturate: SSAT, SSAT16, USAT, USAT16 o Signed multiply accumulate long (halfwords): SMLAL<x><y> o Signed multiply accumulate/subtract [long] (dual): SMLAD[x], SMLALD[X], SMLSD[X], SMLSLD[X] o Signed dual multiply add/subtract [long]: SMUAD[X], SMUSD[X] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97276 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26Merge PPC instructions FMRS and FMRD into a single FMR instruction.Jakob Stoklund Olesen
This is possible because F8RC is a subclass of F4RC. We keep FMRSD around so fextend has a pattern. Also allow folding of memory operands on FMRSD. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97275 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26Comment typo.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97269 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26Use the right floating point load/store instructions in ↵Jakob Stoklund Olesen
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97262 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26Remove dead codeJakob Stoklund Olesen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97261 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26Replace a temporary std::string with SmallString.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97259 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26Move dbg_value generation to target-independent FastISel,Dale Johannesen
as X86 is currently the only FastISel target. Per review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97255 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26Add type printing for Metadata pseudo.Dale Johannesen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97251 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26Move the EnableFullLoadPRE flag from a separate command-line option to anBob Wilson
argument of createGVNPass and set it automatically for -O3. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97245 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26Remove unused "NoPRE" parameter in GVN and createGVNPass().Bob Wilson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97235 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26pass in more section kinds, enough to get the .align 0x90Chris Lattner
stuff to emit optimal nops in the right places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97233 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26The cloner has nothing to do if any of the main or ISR entrypoints are not Sanjiv Gupta
present in the module. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97232 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26fix PR6435 another bug from the MallocInst elimination work.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97231 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26Reapply things reverted back in 97220, with the fixed test case.Sanjiv Gupta
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97228 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26movl is a cheaper way to materialize 0 without clobbering EFLAGS than movabsq.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97227 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26Fix XCoreTargetLowering::isLegalAddressingMode() to handle VoidTy.Richard Osborne
Previously LoopStrengthReduce would sometimes be unable to find a legal formula, causing an assertion failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97226 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26Revert r97211 and r97213 to get the build green again.Chandler Carruth
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97220 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26Currently in LLVM, names of libcalls are assigned during TargetLoweringSanjiv Gupta
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97213 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26Before converting an operand to mem, check if it is legal to do so.Sanjiv Gupta
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97211 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26Delete a bunch of redundant predicates.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97201 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26Fix comments.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97200 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26Add another (and hopefully the last) exception case, where once we recalculateBill Wendling
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97196 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26And should use the correct variable.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97193 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-26Got assertion check backwards.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97192 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-25Catch a corner case where adding the padding to the "TType base offset" fieldBill Wendling
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97183 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-25rewrite OptimizeGlobalAddressOfMalloc to fix PR6422, some bugsChris Lattner
introduced when mallocinst was eliminated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97178 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-25Make comment more meaningful.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97169 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-25Fix ExpandVectorBuildThroughStack for the case where theDan Gohman
operands are themselves vectors. Based on a patch by Micah Villmow for PR6338. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97165 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-25Added the following 32-bit Thumb instructions for disassembly only: SMC, RFE,Johnny Chen
and SRS. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97164 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-25Added the 32-bit Thumb instructions (BXJ) for disassembly only.Johnny Chen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97163 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-25Added the 32-bit Thumb instructions (MRS and MSR) for disassembly only.Johnny Chen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97159 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-25This is a patch to the assembler frontend to detect when aligning a textKevin Enderby
section with TextAlignFillValue and calls EmitCodeAlignment() instead of calling EmitValueToAlignment(). This allows x86 assembly code to be aligned with optimal nops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97158 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-25Fix TextAlignFillValue in a few placesDaniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97151 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-25Added the following 16-bit Thumb instructions for disassembly only: YIELD, WFE,Johnny Chen
WFI, SEV, SETEND. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97149 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-25Teach the constant folder about union types.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97142 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-25Remove code which assumes it knows how vectors are stored in memory.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97141 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-25Revert r97064. Duncan pointed out that bitcasts are defined inDan Gohman
terms of store and load, which means bitcasting between scalar integer and vector has endian-specific results, which undermines this whole approach. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97137 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-25Make the side-numbering of instructions used by metadata (which is needed toNick Lewycky
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97132 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-25Make LoopSimplify change conditional branches in loop exiting blocksDan Gohman
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97126 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-25Dump the presence of attached metadata even if we don't know what it is. ThisNick Lewycky
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). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97124 91177308-0d34-0410-b5e6-96231b3b80d8