summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Tidy up.Jim Grosbach2011-07-191-12/+8
| | | | llvm-svn: 135507
* Tighten conditional for 'mov' cc_out.Jim Grosbach2011-07-191-1/+2
| | | | | | | Make sure we only clobber the cc_out operand if it is indeed a default non-setting operand. llvm-svn: 135506
* Reapply r135457. This needs llvm-gcc change, that I forgot to check-in ↵Devang Patel2011-07-192-2/+19
| | | | | | yesterday. llvm-svn: 135504
* ARM assembly parsing for MOV (immediate).Jim Grosbach2011-07-193-16/+63
| | | | | | | | Add range checking for the immediate operand and handle the "mov" mnemonic choosing between encodings based on the value of the immediate. Add tests for fixups, encoding choice and values, and diagnostic for out of range values. llvm-svn: 135500
* Remove unused code.Jim Grosbach2011-07-191-54/+3
| | | | | | cc_out and pred operands are added during parsing via custom C++ now. llvm-svn: 135497
* Fix comments.Akira Hatanaka2011-07-191-10/+10
| | | | llvm-svn: 135496
* Remove redundant instructions.Akira Hatanaka2011-07-191-16/+12
| | | | | | | | - In EmitAtomicBinaryPartword, mask incr in loopMBB only if atomic.swap is the instruction being expanded, instead of masking it in thisMBB. - Remove redundant Or in EmitAtomicCmpSwap. llvm-svn: 135495
* Separate code that modifies control flow from code that adds instruction to Akira Hatanaka2011-07-191-18/+18
| | | | | | basic blocks. llvm-svn: 135490
* ARM range checking for so_imm operands in assembly parsing.Jim Grosbach2011-07-192-0/+15
| | | | llvm-svn: 135489
* Revert "Make a provision to encode inline location in a variable. This will ↵Bob Wilson2011-07-192-19/+2
| | | | | | | | enable dwarf writer to easily distinguish between two instances of a inlined variable in one basic block." This reverts commit 9fec5e346efdf744b151ae6604f912908315fa7a. llvm-svn: 135486
* Convert ConstantFoldGetElementPtr to use ArrayRef.Jay Foad2011-07-193-27/+25
| | | | llvm-svn: 135483
* Convert SimplifyGEPInst to use ArrayRef.Jay Foad2011-07-193-10/+11
| | | | llvm-svn: 135482
* Convert gep_type_begin and gep_type_end to use ArrayRef.Jay Foad2011-07-191-1/+1
| | | | llvm-svn: 135481
* Convert TargetData::getIndexedOffset to use ArrayRef.Jay Foad2011-07-199-28/+21
| | | | llvm-svn: 135478
* Use ArrayRef in ConstantFoldInstOperands and ConstantFoldCall.Jay Foad2011-07-197-41/+37
| | | | llvm-svn: 135477
* Add intrinsics for the zext / sext instructions.Richard Osborne2011-07-191-7/+13
| | | | llvm-svn: 135476
* Add intrinsics for the testct, testwct instructions.Richard Osborne2011-07-191-1/+9
| | | | llvm-svn: 135475
* Add intrinsics for the peek and endin instructions.Richard Osborne2011-07-191-1/+8
| | | | llvm-svn: 135474
* Introduce MCCodeGenInfo, which keeps information that can affect codegenEvan Cheng2011-07-1954-280/+406
| | | | | | | (including compilation, assembly). Move relocation model Reloc::Model from TargetMachine to MCCodeGenInfo so it's accessible even without TargetMachine. llvm-svn: 135468
* Make EmitAtomic functions return the correct MachineBasicBlocks so thatAkira Hatanaka2011-07-191-22/+28
| | | | | | | ExpandISelPseudos::runOnMachineFunction does not visit instructions that have just been added. llvm-svn: 135465
* Do not insert instructions in reverse order.Akira Hatanaka2011-07-191-14/+16
| | | | llvm-svn: 135464
* Make a provision to encode inline location in a variable. This will enable ↵Devang Patel2011-07-192-2/+19
| | | | | | dwarf writer to easily distinguish between two instances of a inlined variable in one basic block. llvm-svn: 135457
* Revert r135423.Devang Patel2011-07-192-24/+0
| | | | llvm-svn: 135454
* Micro-opt: Only emit compact unwind if there is a compact unwind encoding to ↵Bill Wendling2011-07-191-1/+1
| | | | | | emit. llvm-svn: 135452
* Use the CompactUnwindEncoding from the Frame, if it's defined.Bill Wendling2011-07-191-7/+2
| | | | llvm-svn: 135451
* Add a frame with the compact unwind encoding if it exists.Bill Wendling2011-07-191-0/+3
| | | | llvm-svn: 135450
* Add a method to set compact unwind encoding information in a frame.Bill Wendling2011-07-191-0/+6
| | | | llvm-svn: 135449
* Rename CompactEncoding to CompactUnwindEncoding.Bill Wendling2011-07-191-2/+2
| | | | llvm-svn: 135448
* Fixed a bug where the MC subtarget informationSean Callanan2011-07-191-0/+1
| | | | | | | wasn't being initialized by the enhanced disassembler, leading to assertion failures. llvm-svn: 135447
* Move the compact encoding from the target-specific library to the code-genBill Wendling2011-07-181-3/+4
| | | | | | library. llvm-svn: 135443
* Revamp our handling of tLDMIA[_UPD] and tSTMIA[_UPD] to avoid having ↵Owen Anderson2011-07-183-12/+40
| | | | | | multiple instructions with the same encoding. This resolves another conflict when bringing up the new-style disassembler. llvm-svn: 135442
* Eliminate TargetAsmInfo::getCompactUnwindEncoding. This get rid of theEvan Cheng2011-07-181-3/+0
| | | | | | use of TargetFrameLowering in TargetAsmInfo. llvm-svn: 135439
* Move getInitialFrameState from TargetFrameInfo to MCAsmInfo (suggestions forEvan Cheng2011-07-1838-108/+89
| | | | | | better location welcome). llvm-svn: 135438
* Mark the Darwin assembler workout as isCodeGenOnly, so that it doesn't cause ↵Owen Anderson2011-07-181-1/+1
| | | | | | decoding conflicts in the new-style disassembler. llvm-svn: 135434
* Add APInt(numBits, ArrayRef<uint64_t> bigVal) constructor to prevent future ↵Jeffrey Yasskin2011-07-1810-32/+41
| | | | | | | | | ambiguity errors like the one corrected by r135261. Migrate all LLVM callers of the old constructor to the new one. llvm-svn: 135431
* Compiler warning.Andrew Trick2011-07-181-3/+3
| | | | llvm-svn: 135426
* Sink getDwarfRegNum, getLLVMRegNum, getSEHRegNum from TargetRegisterInfo downEvan Cheng2011-07-1858-456/+397
| | | | | | | | | to MCRegisterInfo. Also initialize the mapping at construction time. This patch eliminate TargetRegisterInfo from TargetAsmInfo. It's another step towards fixing the layering violation. llvm-svn: 135424
* During bottom up fast-isel, instructions emitted to materalize registers are ↵Devang Patel2011-07-182-0/+24
| | | | | | | | at top of basic block and do not have debug location. This may misguide debugger while entering the basic block and sometimes debugger provides semi useful view of current location to developer by picking up previous known location as current location. Assign a sensible location to the first instruction in a basic block, if it does not have one location derived from source file, so that debugger can provide meaningful user experience to developers in edge cases. [take 2] llvm-svn: 135423
* indvars: LinearFunctionTestReplace for non-canonical IVs.Andrew Trick2011-07-181-48/+292
| | | | | | | | | | For -disable-iv-rewrite, perform LFTR without generating a new "canonical" induction variable. Instead find the "best" existing induction variable for use in the loop exit test and compute the final value of that IV for use in the new loop exit test. In short, convert to a simple eq/ne exit test as long as it's cheap to do so. llvm-svn: 135420
* Do not treat atomic.load.sub differently than other atomic binary intrinsics.Akira Hatanaka2011-07-181-12/+2
| | | | llvm-svn: 135418
* Set mayLoad or mayStore flags for SC and LL in order to prevent LICM from Akira Hatanaka2011-07-183-85/+23
| | | | | | | | moving them out of the loop. Previously, stores and loads to a stack frame object were inserted to accomplish this. Remove the code that was needed to do this. Patch by Sasa Stankovic. llvm-svn: 135415
* Re-apply r135319 with a fix for the constant island pass.Owen Anderson2011-07-183-48/+29
| | | | | | Original Log: Get rid of the separate opcodes for the Darwin versions of tBL, tBLXi, and tBLXr, using pseudo-instructions to lower to the single final opcode. Update the ARM disassembler for this change. llvm-svn: 135414
* Fix a crash when building 177.mesa for armv6.Jakob Stoklund Olesen2011-07-181-1/+1
| | | | | | | | | | | | When splitting a live range immediately before an LDR_POST instruction that redefines the address register, make sure to use the correct value number in leaveIntvBefore. We need the value number entering the instruction. <rdar://problem/9793765> llvm-svn: 135413
* indvars: Added verification that LFTR and other indvars goodness doesAndrew Trick2011-07-181-1/+20
| | | | | | not interfere with BackedgeTakenCount computation. llvm-svn: 135412
* indvars: Added isHighCostExpansion. Avoid generating extra ops in theAndrew Trick2011-07-181-17/+51
| | | | | | | preheader for the sole purpose of LFTR, since LFTR itself is usually not a clear optimization. llvm-svn: 135409
* Be more smart with VCVTSS2SD. Also place the patterns close to theBruno Cardoso Lopes2011-07-181-20/+10
| | | | | | definitions. llvm-svn: 135407
* Add AVX 128-bit sqrt versionsBruno Cardoso Lopes2011-07-181-0/+11
| | | | llvm-svn: 135404
* Change destination register operands of SC instructions so that uniqueAkira Hatanaka2011-07-181-8/+13
| | | | | | virtual registers are used. llvm-svn: 135403
* Migrate LLVM and Clang to use the new makeArrayRef(...) functions where ↵Frits van Bommel2011-07-1810-42/+35
| | | | | | | | previously explicit non-default constructors were used. Mostly mechanical with some manual reformatting. llvm-svn: 135390
* Fix PR10387.Jakob Stoklund Olesen2011-07-181-1/+1
| | | | | | | | | | | | | When trying to rematerialize a value before an instruction that has an early-clobber redefine of the virtual register, make sure to look up the correct value number. Early-clobber defs are moved one slot back, so getBaseIndex is needed to find the used value number. Bugpoint was unable to reduce the test case for this, see PR10388. llvm-svn: 135378
OpenPOWER on IntegriCloud