summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
Commit message (Collapse)AuthorAgeFilesLines
* Move default FrameReg val to getFrameIndexReference(). Otherwise, debug info ↵Jim Grosbach2009-11-221-1/+2
| | | | | | can get bogus values. llvm-svn: 89618
* Generate more correct debug info for frame indices.Jim Grosbach2009-11-222-35/+53
| | | | llvm-svn: 89576
* Minor optimization: when doing eq/ne comparions and RHS is a constant - swap ↵Anton Korobeynikov2009-11-221-0/+8
| | | | | | operands, this will allow us to fold imm into comparison. llvm-svn: 89574
* Drop unsupported imm operandsAnton Korobeynikov2009-11-221-31/+0
| | | | llvm-svn: 89573
* Use 2-byte alignment for functions. 4 bytes are clear overkill here.Anton Korobeynikov2009-11-221-1/+1
| | | | llvm-svn: 89572
* Use semicolon as assembler comment stringAnton Korobeynikov2009-11-221-0/+1
| | | | llvm-svn: 89571
* Revert 89562. We're being sneakier than I was giving us credit for, and thisJim Grosbach2009-11-211-4/+1
| | | | | | isn't necessary. llvm-svn: 89568
* Darwin requires a frame pointer for all non-leaf functions to support correctJim Grosbach2009-11-211-1/+4
| | | | | | backtraces. llvm-svn: 89562
* Add predicate operand to NEON instructions. Fix lots (but not all) 80 col ↵Evan Cheng2009-11-216-297/+414
| | | | | | violations in ARMInstrNEON.td. llvm-svn: 89542
* We are not using DBG_STOPPOINT anymore.Devang Patel2009-11-219-11/+0
| | | | llvm-svn: 89536
* Added two SubtargetFeatures::AddFeatures methods, which accept a ↵Viktor Kutuzov2009-11-211-0/+27
| | | | | | comma-separated string or already parsed command line parameters as input, and some code re-factoring to use these new methods. llvm-svn: 89516
* Fix a thinko that caused spurious @GOTOFFs.Dan Gohman2009-11-201-2/+2
| | | | llvm-svn: 89509
* Update for new getBlockAddress signature.Dan Gohman2009-11-201-2/+2
| | | | llvm-svn: 89507
* Target-independent support for TargetFlags on BlockAddress operands,Dan Gohman2009-11-208-17/+58
| | | | | | and support for blockaddresses in x86-32 PIC mode. llvm-svn: 89506
* Recommitting PALIGNR shift width fixes.Sean Callanan2009-11-201-8/+8
| | | | | | | Thanks to Daniel Dunbar for fixing clang intrinsics: http://llvm.org/viewvc/llvm-project?view=rev&revision=89499 llvm-svn: 89500
* Remove an incorrect overaggressive optimizationDale Johannesen2009-11-201-5/+3
| | | | | | (PPC specific). llvm-svn: 89496
* Reverting PALIGNR fix until I figure out how thisSean Callanan2009-11-201-8/+8
| | | | | | broke the Clang testsuite. llvm-svn: 89495
* Fixed PALIGNR to take 8-bit rotations in all cases.Sean Callanan2009-11-201-8/+8
| | | | | | | Also fixed the corresponding testcase, and the PALIGNR intrinsic (tested for correctness with llvm-gcc). llvm-svn: 89491
* Remat VLDRD from constpool. Clean up some instruction property specifications.Evan Cheng2009-11-204-9/+10
| | | | llvm-svn: 89478
* The verify() call of CPEIsInRange() isn't right for the assertion check ofJim Grosbach2009-11-201-2/+5
| | | | | | | | | | constant pool ranges, as CPEIsInRange() makes conservative assumptions about the potential alignment changes from branch adjustments. The verification, on the other hand, runs after those branch adjustments are made, so the effects on alignment are known and already taken into account. The sanity check in verify should check the range directly instead. llvm-svn: 89473
* Remove verifySizes() since it's not adding much value.Jim Grosbach2009-11-201-36/+0
| | | | llvm-svn: 89443
* Also CSE non-pic load from constant pools.Evan Cheng2009-11-201-1/+4
| | | | llvm-svn: 89440
* Fix codegen of conditional move of immediates. We were not making use of the ↵Evan Cheng2009-11-201-65/+127
| | | | | | immediate forms of cmov instructions at all. llvm-svn: 89423
* Update comment to reflect instruction.Eric Christopher2009-11-201-1/+1
| | | | llvm-svn: 89414
* When placing constant islands and adjusting for alignment padding, inlineJim Grosbach2009-11-191-7/+66
| | | | | | | | | | | assembly can confuse things utterly, as it's assumed that instructions in inline assembly are 4 bytes wide. For Thumb mode, that's often not true, so the calculations for when alignment padding will be present get thrown off, ultimately leading to out of range constant pool entry references. Making more conservative assumptions that padding may be necessary when inline asm is present avoids this situation. llvm-svn: 89403
* Refactor cmov selection code out to a separate function. No functionality ↵Evan Cheng2009-11-191-116/+122
| | | | | | change. llvm-svn: 89396
* Reverting the EH table patches.Bill Wendling2009-11-191-2/+2
| | | | | | | | | | | | | $ svn merge -c -89279 https://llvm.org/svn/llvm-project/llvm/trunk --- Reverse-merging r89279 into '.': U lib/CodeGen/AsmPrinter/DwarfException.cpp U lib/Target/TargetLoweringObjectFile.cpp $ svn merge -c -89270 https://llvm.org/svn/llvm-project/llvm/trunk --- Reverse-merging r89270 into '.': G lib/CodeGen/AsmPrinter/DwarfException.cpp G lib/Target/TargetLoweringObjectFile.cpp llvm-svn: 89379
* Added NLdStLN which is similar to NLdSt with the exception that op7_4 is notJohnny Chen2009-11-192-76/+169
| | | | | | | | fully specified at this level. Subclasses of NLdStLN can specify selective bit(s) for Inst{7-4}, as is done for VLD[234]LN* and VST[234]LN* inside ARMInstrNEON.td. llvm-svn: 89377
* fix typoJim Grosbach2009-11-191-1/+1
| | | | llvm-svn: 89369
* Fix a typo in a comment.Dan Gohman2009-11-191-1/+1
| | | | llvm-svn: 89360
* 80 col violation.Evan Cheng2009-11-191-1/+2
| | | | llvm-svn: 89337
* More consistent thumb1 asm printing.Evan Cheng2009-11-194-11/+27
| | | | llvm-svn: 89328
* Shrink ldr / str [sp, imm0-1024] to 16-bit instructions.Evan Cheng2009-11-191-8/+26
| | | | llvm-svn: 89326
* Eliminate more * 4 in Thumb1 asm printing for consistency sake.Evan Cheng2009-11-191-4/+4
| | | | llvm-svn: 89325
* - Add sugregister logic to handle f64=(f32,f32).Bruno Cardoso Lopes2009-11-194-2/+166
| | | | | | | | | | | | - Support mips1 like load/store of doubles: Instead of: sdc $f0, X($3) Generate: swc $f0, X($3) swc $f1, X+4($3) llvm-svn: 89322
* Only use small sections for non linux targets!Bruno Cardoso Lopes2009-11-191-0/+7
| | | | llvm-svn: 89316
* The "ReadOnlyWithRel" enum seems to apply more to what Darwin does with the EHBill Wendling2009-11-191-1/+1
| | | | | | exception table than DataRel. llvm-svn: 89279
* Add XCore support for indirectbr / blockaddress.Richard Osborne2009-11-184-1/+23
| | | | llvm-svn: 89273
* Attempt #2:Bill Wendling2009-11-181-1/+1
| | | | | | Place the EH table in the __TEXT section on MachO. It saves space. llvm-svn: 89270
* Added getDefaultSubtargetFeatures method to SubtargetFeatures class which ↵Viktor Kutuzov2009-11-181-0/+27
| | | | | | returns a correct feature string for given triple. llvm-svn: 89236
* Add ARMv6 itineraries.David Goodwin2009-11-183-13/+201
| | | | llvm-svn: 89218
* Fix a few places that were missed when we converted to unified syntax.Bob Wilson2009-11-181-2/+2
| | | | llvm-svn: 89214
* Add a target hook to allow changing the tail duplication limit based on theBob Wilson2009-11-184-0/+20
| | | | | | | | | contents of the block to be duplicated. Use this for ARM Cortex A8/9 to be more aggressive tail duplicating indirect branches, since it makes it much more likely that they will be predicted in the branch target buffer. Testcase coming soon. llvm-svn: 89187
* The llvm-gcc front-end and the pass manager use two separate TargetData objects.Bill Wendling2009-11-181-24/+116
| | | | | | | | | | | | | | | | | | This is probably not confined to *just* these two things. Anyway, the llvm-gcc front-end may look up the structure layout information for an abstract type. That information will be stored into a table with the FE's TD. Instruction combine can come along and also ask for information on that abstract type, but for a separate TD (the one associated with the pass manager). After the type is refined, the old structure layout information in the pass manager's TD file is out of date. If a new type is allocated in the same space as the old-unrefined type, then the structure type information in the pass manager's TD file will be wrong, but won't know it. Fix this by making the TD's structure type information an abstract type user. llvm-svn: 89176
* Enable arm jumpt table adjustment.Jim Grosbach2009-11-171-1/+1
| | | | llvm-svn: 89143
* Both Darwin as and GNU as violate ARM docs wrt printing of addrmode6Anton Korobeynikov2009-11-171-5/+2
| | | | | | alignment imm (in the same way). Fix asmprinting for non-darwin platforms. llvm-svn: 89137
* Set Inst{15-12} (Rd/Rt) to 0b1111 (PC) for BR_JTadd, BR_JTr, and BR_JTm toJohnny Chen2009-11-171-0/+3
| | | | | | distinguish between them and the more generic instructions (add, mov, and ldr). llvm-svn: 89108
* Re-apply 89011. It's not to be blamed.Evan Cheng2009-11-172-4/+7
| | | | llvm-svn: 89081
* Revert 89011. Buildbot thinks it might be breaking stuff.Evan Cheng2009-11-172-7/+4
| | | | llvm-svn: 89076
* When moving a block for table jumps, make sure the prior block terminatorJim Grosbach2009-11-171-7/+9
| | | | | | | is analyzable so it can be updated. If it's not, be safe and don't move the block. llvm-svn: 89022
OpenPOWER on IntegriCloud