summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
Commit message (Collapse)AuthorAgeFilesLines
...
* Some dag combiner goodness:Evan Cheng2010-02-181-16/+32
| | | | | | | | Transform br (xor (x, y)) -> br (x != y) Transform br (xor (xor (x,y), 1)) -> br (x == y) Also normalize (and (X, 1) == / != 1 -> (and (X, 1)) != / == 0 to match to "test on x86" and "tst on arm" llvm-svn: 96556
* Added for disassembly only the variants of DMB, DSB, and ISB.Johnny Chen2010-02-181-0/+60
| | | | llvm-svn: 96540
* Remove the NEON N2VSInt instruction class: it's only used in one place andBob Wilson2010-02-171-10/+4
| | | | | | | since it has no pattern, there's not much point in distinguishing an "N2VS" class for intrinsics anyway. llvm-svn: 96525
* Added CLREX (Clear-Exclusive) for disassembly only.Johnny Chen2010-02-171-0/+8
| | | | | | A8.6.30 llvm-svn: 96523
* More cleanup for NEON:Bob Wilson2010-02-171-101/+90
| | | | | | | | | | | | * Use "S" abbreviation for scalar single FP registers in class and pattern names, instead of keeping the "D" (for "double") abbreviation and tacking on an "s" elsewhere in the name. * Move the scalar single FP register classes and patterns to be more consistent with other definitions in the file. * Rename "VNEGf32d" definition to "VNEGfd" for consistency. * Deleted the N2VDIntsPat pattern; N2VSPat is good enough. llvm-svn: 96521
* Added RFE for disassembly only.Johnny Chen2010-02-171-1/+16
| | | | | | | B6.1.8 RFE Return From Exception loads the PC and the CPSR from the word at the specified address and the following word respectively. llvm-svn: 96519
* Remember to define super registers in mips calls.Jakob Stoklund Olesen2010-02-171-3/+2
| | | | llvm-svn: 96504
* "Fix and issue in SparcAsmPrinter where multiple identical .LLGETPCHn ↵Chris Lattner2010-02-171-5/+6
| | | | | | symbols could be emitted in the same file (it was uniqued by block number, but not by function number). " Patch by Nathan Keynes! llvm-svn: 96495
* move isOnlyReachableByFallthrough out of MachineBasicBlock into AsmPrinter,Chris Lattner2010-02-171-0/+35
| | | | | | | and add a sparc implementation that knows about delay slots. Patch by Nathan Keynes! llvm-svn: 96492
* add a note, from PR5100Chris Lattner2010-02-171-0/+2
| | | | llvm-svn: 96490
* Added routine to clone the body of a function and maintain a map of alreadySanjiv Gupta2010-02-172-0/+45
| | | | | | cloned functions. llvm-svn: 96485
* Added a function to clone locals of a function.( which for pic16 are globalsSanjiv Gupta2010-02-172-1/+47
| | | | | | with mangled names). llvm-svn: 96465
* Removed header files from .h by adding forward decls.Sanjiv Gupta2010-02-172-22/+27
| | | | | | | Renamed PIC16FrameOverlay namespace to PIC16OVERLAY. Renamed PIC16FrameOverlay class to PIC16Overlay. llvm-svn: 96463
* Added BFI for disassembly only.Johnny Chen2010-02-171-0/+11
| | | | | | A8.6.18 BFI - Bitfield insert (Encoding A1) llvm-svn: 96462
* rename and document some arguments so I don't have to keepChris Lattner2010-02-171-11/+18
| | | | | | reverse engineering what they are. llvm-svn: 96456
* Use pointer-wide encoding for LSDA and FDE on Darwin.Anton Korobeynikov2010-02-171-4/+4
| | | | | | Hopefully, this will fix the remaining issues seen there. llvm-svn: 96454
* daniel remembered why this was needed.Chris Lattner2010-02-171-1/+4
| | | | llvm-svn: 96440
* add a comment explaining why darwin/i386 uses ## as a comment.Chris Lattner2010-02-171-0/+2
| | | | | | | It's not clear why this is really required, but it was explicitly added in r48808 with no real explanation or rdar #. llvm-svn: 96438
* Initial implementation of PIC16 Cloner pass.Sanjiv Gupta2010-02-172-0/+254
| | | | | | | | | | | | | This pass is supposed to be run on the linked .bc module. It traveses the module call graph twice. Once starting from the main function and marking each reached function as "ML". Again, starting from the ISR and cloning any reachable function that was marked as "ML". After cloning the function, it remaps all the call sites in IL functions to call the cloned functions. Currently only marking is being done. llvm-svn: 96435
* Make the operand and format specifier match, and print allDan Gohman2010-02-171-1/+1
| | | | | | 64 bits, fixing a variety of problems. llvm-svn: 96421
* Wrap lines to 80 columns and generally try to clean up whitespace andBob Wilson2010-02-171-312/+216
| | | | | | indentation. No functional changes. llvm-svn: 96418
* Make error statement more personal.Bill Wendling2010-02-161-1/+1
| | | | llvm-svn: 96410
* fix rdar://7653908, a crash on a case where we would fold a loadChris Lattner2010-02-161-9/+10
| | | | | | | | | | into a roundss intrinsic, producing a cyclic dag. The root cause of this is badness handling ComplexPattern nodes in the old dagisel that I noticed through inspection. Eliminate a copy of the of the code that handled ComplexPatterns by making EmitChildMatchCode call into EmitMatchCode. llvm-svn: 96408
* Handle tGPR register class in a few more places. This fixes some llvm-gccBob Wilson2010-02-161-0/+10
| | | | | | build failures due to my fix for pr6111. llvm-svn: 96402
* Add SMC (Secure Monitor Call) system instruction for disassembly only.Johnny Chen2010-02-161-2/+9
| | | | llvm-svn: 96401
* Really reserve R2 on PPC Darwin. PR 6314.Dale Johannesen2010-02-161-8/+4
| | | | llvm-svn: 96399
* 80 column cleanupJim Grosbach2010-02-163-21/+24
| | | | llvm-svn: 96393
* Look for SSE and instructions of this form: (and x, (build_vector c1,c2,c3,c4)).Evan Cheng2010-02-161-1/+50
| | | | | | | | | | | | | If there exists a use of a build_vector that's the bitwise complement of the mask, then transform the node to (and (xor x, (build_vector -1,-1,-1,-1)), (build_vector ~c1,~c2,~c3,~c4)). Since this transformation is only useful when 1) the given build_vector will become a load from constpool, and 2) (and (xor x -1), y) matches to a single instruction, I decided this is appropriate as a x86 specific transformation. rdar://7323335 llvm-svn: 96389
* Remove trailing whitespaceJim Grosbach2010-02-163-46/+46
| | | | llvm-svn: 96388
* Add support for emitting non-temporal stores for DAGs markedDavid Greene2010-02-161-8/+70
| | | | | | | | | | non-temporal. Fix from r96241 for botched encoding of MOVNTDQ. Add documentation for !nontemporal metadata. Add a simpler movnt testcase. llvm-svn: 96386
* Update Thumb2 to not use CarryDefIsUnused or CarryDefIsUsed predicates, butJim Grosbach2010-02-162-21/+25
| | | | | | | | to have the predicate on the pattern itself instead. Support for the new ISel. Remove definitions of CarryDefIsUnused and CarryDefIsUsed since they are no longer used anywhere. llvm-svn: 96384
* Remove redundant setting of Defs. CPSR is already marked by the block level ↵Jim Grosbach2010-02-161-3/+0
| | | | | | set of Defs. llvm-svn: 96383
* First step in eliminating the CarryDefIsUnused and CarryDefIsUsed predicates.Jim Grosbach2010-02-161-18/+33
| | | | | | | | | | They won't work with the new ISel mechanism, as Requires predicates are no longer allowed to reference the node being selected. Moving the predicate to the patterns instead solves the problem. This patch handles ARM mode. Thumb2 will follow. llvm-svn: 96381
* Added for disassembly the following instructions:Johnny Chen2010-02-161-3/+128
| | | | | | | | o Store Return State (SRSW, SRS) o Load/Store Coprocessor (LDC/STC and friends) o MSR (immediate) llvm-svn: 96380
* Fix pr6111: Avoid using the LR register for the target address of an indirectBob Wilson2010-02-162-4/+13
| | | | | | | | branch in ARM v4 code, since it gets clobbered by the return address before it is used. Instead of adding a new register class containing all the GPRs except LR, just use the existing tGPR class. llvm-svn: 96360
* Introduce isOpaqueTy and use it rather than isa<OpaqueType>. Also, move someDuncan Sands2010-02-162-4/+4
| | | | | | methods to try to have the type predicates be more logically positioned. llvm-svn: 96349
* There are two ways of checking for a given type, for example isa<PointerType>(T)Duncan Sands2010-02-163-33/+33
| | | | | | | and T->isPointerTy(). Convert most instances of the first form to the second form. Requested by Chris. llvm-svn: 96344
* Minor warning fixes (semicolons, newline at EOF).Benjamin Kramer2010-02-162-3/+3
| | | | llvm-svn: 96343
* mark all the generated node predicates 'const'.Chris Lattner2010-02-161-1/+1
| | | | llvm-svn: 96337
* make pcrel immediate values relative to the start of the field,Chris Lattner2010-02-161-3/+13
| | | | | | not the end of the field, fixing rdar://7651978 llvm-svn: 96330
* The code section for an ISR has a specific address.Sanjiv Gupta2010-02-164-4/+23
| | | | | | Currently, whether a function is ISR or not is encoded in the section attribute for that function. llvm-svn: 96322
* Drop support for the InReg attribute on the ppc backend. This was used byRafael Espindola2010-02-161-16/+1
| | | | | | | llvm-gcc but has been replaced with pad argument which don't need any special backend support. llvm-svn: 96312
* Put repeated empty pattern into the AQI instruction class.Bob Wilson2010-02-151-49/+19
| | | | | | | We could almost use a multiclass for the signed/unsigned instructions, but there are only 6 of them so I guess it's not worth it. llvm-svn: 96297
* Fix a silly darwin-only typo introduced during merge.Anton Korobeynikov2010-02-151-7/+6
| | | | llvm-svn: 96289
* Move TLOF implementations to libCodegen to resolve layering violation.Anton Korobeynikov2010-02-1515-857/+15
| | | | llvm-svn: 96288
* Add suffix for stubs, so we won't have name clashes with private symbols.Anton Korobeynikov2010-02-151-0/+1
| | | | llvm-svn: 96286
* Preliminary patch to improve dwarf EH generation - Hooks to return ↵Anton Korobeynikov2010-02-159-153/+302
| | | | | | Personality / FDE / LSDA / TType encoding depending on target / options (e.g. code model / relocation model) - MCIzation of Dwarf EH printer to use encoding information - Stub generation for ELF target (needed for indirect references) - Some other small changes here and there llvm-svn: 96285
* revert r96241. It breaks two regression tests, isn't documented,Chris Lattner2010-02-151-70/+8
| | | | | | and the testcase needs improvement. llvm-svn: 96265
* Split SelectionDAGISel::IsLegalAndProfitableToFold toEvan Cheng2010-02-155-22/+37
| | | | | | | | IsLegalToFold and IsProfitableToFold. The generic version of the later simply checks whether the folding candidate has a single use. This allows the target isel routines more flexibility in deciding whether folding makes sense. The specific case we are interested in is folding constant pool loads with multiple uses. llvm-svn: 96255
* Add support for emitting non-temporal stores for DAGs markedDavid Greene2010-02-151-8/+70
| | | | | | non-temporal. llvm-svn: 96241
OpenPOWER on IntegriCloud