summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Add AVX SSE4.1 Horizontal Minimum and Position instructionBruno Cardoso Lopes2010-07-031-0/+3
| | | | llvm-svn: 107552
* Remove isSS argument from CreateFixedObject. Fixed objects cannot be spill ↵Evan Cheng2010-07-0318-70/+56
| | | | | | slots so it's always false. llvm-svn: 107550
* Add AVX SSE4.1 round instructionsBruno Cardoso Lopes2010-07-031-0/+76
| | | | llvm-svn: 107549
* Detect and handle COPY in many places.Jakob Stoklund Olesen2010-07-039-40/+67
| | | | | | | This code is transitional, it will soon be possible to eliminate isExtractSubreg, isInsertSubreg, and isMoveInstr in most places. llvm-svn: 107547
* Simple refactoring of SSE4.1 instructions, making room for the AVX formsBruno Cardoso Lopes2010-07-021-151/+117
| | | | llvm-svn: 107540
* 80-col fixup.Eric Christopher2010-07-021-1/+2
| | | | llvm-svn: 107537
* Add a new target independent COPY instruction and code to lower it.Jakob Stoklund Olesen2010-07-021-0/+49
| | | | | | | | | | | The COPY instruction is intended to replace the target specific copy instructions for virtual registers as well as the EXTRACT_SUBREG and INSERT_SUBREG instructions in MachineFunctions. It won't we used in a selection DAG. COPY is lowered to native register copies by LowerSubregs. llvm-svn: 107529
* - Add support for the rest of AVX SSE3 instructionsBruno Cardoso Lopes2010-07-022-19/+89
| | | | | | | - Fix VEX prefix to be emitted with 3 bytes whenever VEX_5M represents a REX equivalent two byte leading opcode llvm-svn: 107523
* Custom inserters (e.g., conditional moves in Thumb1 can introduceJim Grosbach2010-07-021-1/+14
| | | | | | | | | | | | new basic blocks, and if used as a function argument, that can cause call frame setup / destroy pairs to be split across a basic block boundary. That prevents us from doing a simple assertion to check that the pairs match and alloc/ dealloc the same amount of space. Modify the assertion to only check the amount allocated when there are matching pairs in the same basic block. rdar://8022442 llvm-svn: 107517
* MDString is already checked earlier.Devang Patel2010-07-021-1/+1
| | | | llvm-svn: 107516
* Remove early IT block formation. It's not used.Evan Cheng2010-07-023-213/+6
| | | | llvm-svn: 107513
* - Two-address pass should not assume unfolding is always successful.Evan Cheng2010-07-022-12/+27
| | | | | | | | | - X86 unfolding should check if the instructions being unfolded has memoperands. If there is no memoperands, then it must assume conservative alignment. If this would introduce an expensive sse unaligned load / store, then unfoldMemoryOperand etc. should not unfold the instruction. llvm-svn: 107509
* Propagate the AlignStack bit in InlineAsm's to the Dale Johannesen2010-07-026-12/+23
| | | | | | | | | | | | | | | | | | | PrologEpilog code, and use it to determine whether the asm forces stack alignment or not. gcc consistently does not do this for GCC-style asms; Apple gcc inconsistently sometimes does it for asm blocks. There is no convenient place to put a bit in either the SDNode or the MachineInstr form, so I've added an extra operand to each; unlovely, but it does allow for expansion for more bits, should we need it. PR 5125. Some existing testcases are affected. The operand lists of the SDNode and MachineInstr forms are indexed with awesome mnemonics, like "2"; I may fix this someday, but not now. I'm not making it any worse. If anyone is inspired I think you can find all the right places from this patch. llvm-svn: 107506
* Remove invalid assertJakob Stoklund Olesen2010-07-021-1/+0
| | | | llvm-svn: 107505
* Properly handle debug values during inline spilling.Jakob Stoklund Olesen2010-07-021-13/+32
| | | | llvm-svn: 107503
* beautify outputGabor Greif2010-07-021-0/+1
| | | | llvm-svn: 107500
* use ArgOperand APIGabor Greif2010-07-021-2/+2
| | | | llvm-svn: 107498
* Don't claim to preserve AliasAnalysis. First, this is doesn't actuallyDan Gohman2010-07-021-1/+0
| | | | | | | have any effect, and second, deleting stores can potentially invalidate an AliasAnalysis, and there's currently no notification for this. llvm-svn: 107496
* Rematerialize as much as possible before inserting spills and reloads.Jakob Stoklund Olesen2010-07-021-60/+179
| | | | | | | | | | This allows us to recognize the common case where all uses could be rematerialized, and no stack slot allocation is necessary. If some values could be fully rematerialized, remove them from the live range before allocating a stack slot for the rest. llvm-svn: 107492
* 80-column and trailing whitespace cleanup.Jim Grosbach2010-07-021-28/+33
| | | | llvm-svn: 107490
* grammar tweaksJim Grosbach2010-07-021-3/+3
| | | | llvm-svn: 107489
* Fix incorrect asm-printing of some NEON immediates. Fix weak testcase soBob Wilson2010-07-022-4/+4
| | | | | | | that it checks the immediate values, not just the instructions opcodes. Radar 8110263. llvm-svn: 107487
* use ArgOperand API (found by my previous commit)Gabor Greif2010-07-021-6/+6
| | | | llvm-svn: 107482
* IndirectBr is not safe to speculatively execute (!)Dan Gohman2010-07-021-0/+1
| | | | llvm-svn: 107454
* Rename CreateReg to CreateRegs, and MakeReg to CreateReg.Dan Gohman2010-07-025-14/+15
| | | | llvm-svn: 107451
* Shrink down SSE3 code by more multiclass refactoringBruno Cardoso Lopes2010-07-011-149/+99
| | | | llvm-svn: 107448
* Make the "linker_private" linkage type emit a non-weak symbol to the file. ItBill Wendling2010-07-011-1/+1
| | | | | | will still be stripped by the linker when it generates the final image. llvm-svn: 107440
* Shrink down SSE3 code by some multiclass refactoring - 1st partBruno Cardoso Lopes2010-07-011-74/+17
| | | | llvm-svn: 107438
* ARM function alignments were off by a power of two. svn 83242 changedBob Wilson2010-07-011-1/+1
| | | | | | | | | getFunctionAlignment and the corresponding use of that value in the ARM asm printer, but now we're using the standard asm printer. The result of this was that function alignments were dropped completely for Thumb functions. Radar 8143571. llvm-svn: 107435
* Implement the "linker_private_weak" linkage type. This will be used forBill Wendling2010-07-0112-19/+41
| | | | | | | | | | | | | | | | | | | | | | | Objective-C metadata types which should be marked as "weak", but which the linker will remove upon final linkage. However, this linkage isn't specific to Objective-C. For example, the "objc_msgSend_fixup_alloc" symbol is defined like this: .globl l_objc_msgSend_fixup_alloc .weak_definition l_objc_msgSend_fixup_alloc .section __DATA, __objc_msgrefs, coalesced .align 3 l_objc_msgSend_fixup_alloc: .quad _objc_msgSend_fixup .quad L_OBJC_METH_VAR_NAME_1 This is different from the "linker_private" linkage type, because it can't have the metadata defined with ".weak_definition". Currently only supported on Darwin platforms. llvm-svn: 107433
* Do not require line number entry for undefined local variable.Devang Patel2010-07-011-2/+4
| | | | | | This is a regression caused by r106792 and caught by gdb testsuite. llvm-svn: 107430
* MC: Fix some stray hunks I didn't intend to commit.Daniel Dunbar2010-07-011-1/+2
| | | | llvm-svn: 107428
* MC: Pass the target instance to the AsmParser constructor.Daniel Dunbar2010-07-012-7/+4
| | | | llvm-svn: 107426
* MC: Fix an error message.Daniel Dunbar2010-07-011-1/+1
| | | | llvm-svn: 107424
* Remove context sensitivity concerns from interprocedural-basic-aa, andDan Gohman2010-07-011-35/+55
| | | | | | | make it more aggressive in cases where both pointers are known to live in the same function. llvm-svn: 107420
* MC: Move COFF enumeration constants to llvm/Support/COFF.h, patch by MichaelDaniel Dunbar2010-07-012-62/+62
| | | | | | Spencer! llvm-svn: 107418
* Debugging infomration is encoded in llvm IR using metadata. This is designedDevang Patel2010-07-011-0/+101
| | | | | | | | | such a way that debug info for symbols preserved even if symbols are optimized away by the optimizer. Add new special pass to remove debug info for such symbols. llvm-svn: 107416
* If a named mdnode is removed then mark module as changed.Devang Patel2010-07-011-1/+3
| | | | llvm-svn: 107412
* Move SSE3 Move patterns to a more appropriate sectionBruno Cardoso Lopes2010-07-011-30/+55
| | | | | | Add AVX SSE3 packed horizontal and & sub instructions llvm-svn: 107405
* Add AVX SSE3 packed addsub instructionsBruno Cardoso Lopes2010-07-011-23/+34
| | | | llvm-svn: 107404
* Temporarily disable on-demand fast-isel.Dan Gohman2010-07-012-8/+14
| | | | llvm-svn: 107393
* reformulate CallSite::getCallee to adapt to CallInst::ArgOffset, and make it ↵Gabor Greif2010-07-011-1/+3
| | | | | | work even if CallInst::op_* are private llvm-svn: 107390
* Use FuncInfo's isExportedInst accessor method instead ofDan Gohman2010-07-011-1/+1
| | | | | | doing the work manually. llvm-svn: 107384
* Rename CreateRegForValue to CreateReg, and change its argumentDan Gohman2010-07-015-11/+11
| | | | | | | from a Value to a Type, because it doesn't actually care about the Value. llvm-svn: 107383
* Fast isel no longer needs DeadMachineInstrElim to clean up after it.Dan Gohman2010-07-011-12/+8
| | | | llvm-svn: 107381
* Teach fast-isel to avoid loading a value from memory when it's alreadyDan Gohman2010-07-011-0/+24
| | | | | | | available in a register. This is pretty primitive, but it reduces the number of instructions in common testcases by 4%. llvm-svn: 107380
* Enable on-demand fast-isel.Dan Gohman2010-07-013-2/+11
| | | | llvm-svn: 107377
* Fix X86FastISel's add folding to actually work, and not fall backDan Gohman2010-07-011-4/+8
| | | | | | to SelectionDAG. llvm-svn: 107376
* Add AVX SSE3 replicate and convert instructionsBruno Cardoso Lopes2010-07-011-22/+45
| | | | llvm-svn: 107375
* Teach X86FastISel to fold constant offsets and scaled indices inDan Gohman2010-07-011-14/+23
| | | | | | the same address. llvm-svn: 107373
OpenPOWER on IntegriCloud