summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
Commit message (Collapse)AuthorAgeFilesLines
* Store sub-class lists as a bit vector.Jakob Stoklund Olesen2011-09-303-34/+15
| | | | | | | | | | | | | | This uses less memory and it reduces the complexity of sub-class operations: - hasSubClassEq() and friends become O(1) instead of O(N). - getCommonSubClass() becomes O(N) instead of O(N^2). In the future, TableGen will infer register classes. This makes it cheap to add them. llvm-svn: 140898
* Move getCommonSubClass() into TRI.Jakob Stoklund Olesen2011-09-301-2/+2
| | | | | | It will soon need the context. llvm-svn: 140896
* Correct for my over-eager delete finger.Jim Grosbach2011-09-301-0/+1
| | | | llvm-svn: 140892
* Register the MC object streamer.Akira Hatanaka2011-09-301-0/+18
| | | | | | Patch by Reed Kotler at Mips Technologies. llvm-svn: 140887
* Register Asm backend. Add functions to MipsAsmBackend.Akira Hatanaka2011-09-303-0/+55
| | | | | | Patch by Reed Kotler at Mips Technologies. llvm-svn: 140886
* Add MCELFObjectTargetWriter and MCAsmBackend classes.Akira Hatanaka2011-09-302-0/+72
| | | | | | Patch by Reed Kotler at Mips Technologies. llvm-svn: 140885
* Update CMake build.Benjamin Kramer2011-09-301-1/+2
| | | | llvm-svn: 140879
* Initial implementation of MipsMCCodeEmitter.Akira Hatanaka2011-09-303-1/+68
| | | | | | Patch by Reed Kotler at Mips Technologies. llvm-svn: 140878
* Add definitions of Mips64 rotate instructions.Akira Hatanaka2011-09-302-1/+23
| | | | llvm-svn: 140870
* Constify 'isLSDA' and move a method out-of-line.Bill Wendling2011-09-302-14/+20
| | | | llvm-svn: 140868
* ARM Darwin default relocation model is PIC.Jim Grosbach2011-09-301-2/+5
| | | | | | | This matches clang, so default options in llc and friends are now closer to clang's defaults. llvm-svn: 140863
* isCommutable should be 0 for DSUBu.Akira Hatanaka2011-09-301-1/+1
| | | | llvm-svn: 140862
* ARM Fixup valus for movt/movw are for the whole value.Jim Grosbach2011-09-301-7/+0
| | | | | | | | | Remove an assert that was expecting only the relevant 16bit portion for the fixup being handled. Also kill some dead code in the T2 portion. rdar://9653509 llvm-svn: 140861
* PTX: Various stylistic and code readability changes recommended by Jim Grosbach.Justin Holewinski2011-09-3010-270/+65
| | | | llvm-svn: 140855
* PTX: Add programmable rounding mode specifier for int <-> fp conversion instrs.Justin Holewinski2011-09-302-124/+174
| | | | | | Also take this opportunity to clean up the rounding mode pass. llvm-svn: 140854
* PTX: Attempt to cleanup/unify the handling of FP rounding modes. This requiresJustin Holewinski2011-09-309-197/+471
| | | | | | us to manually provide Pat<> definitions for all FP instruction patterns. llvm-svn: 140849
* Mips64 shift instructions.Akira Hatanaka2011-09-301-0/+40
| | | | llvm-svn: 140841
* Mips64 arithmetic and logical instructions with one source register andAkira Hatanaka2011-09-301-0/+30
| | | | | | immediate. llvm-svn: 140839
* ARM fix encoding of VMOV.f32 and VMOV.f64 immediates.Jim Grosbach2011-09-308-145/+128
| | | | | | | | | | | Encode the immediate into its 8-bit form as part of isel rather than later, which simplifies things for mapping the encoding bits, allows the removal of the custom disassembler decoding hook, makes the operand printer trivial, and prepares things more cleanly for handling these in the asm parser. rdar://10211428 llvm-svn: 140834
* Fill delay slot with useful instructions. Modified from Sparc's version of delayAkira Hatanaka2011-09-291-12/+201
| | | | | | | | slot filler. Patch by Reed Kotler at Mips Technologies. llvm-svn: 140825
* Create a machine basic block in the constant pool and retrieve the symbol ↵Bill Wendling2011-09-292-0/+7
| | | | | | for an MBB. llvm-svn: 140824
* Support creating a constant pool value for a machine basic block.Bill Wendling2011-09-292-2/+30
| | | | | | | This is used when we want to take the address of a machine basic block, but it's not associated with a BB in LLVM IR. llvm-svn: 140823
* Mips64 arithmetic and logical instructions with two source registers.Akira Hatanaka2011-09-291-0/+30
| | | | llvm-svn: 140806
* Clean up uses of switch instructions so they are not dependent on the ↵Eli Friedman2011-09-292-11/+21
| | | | | | operand ordering. Patch by Stepan Dyatkovskiy. llvm-svn: 140803
* PTX: Fix broken shared library buildJustin Holewinski2011-09-294-22/+43
| | | | llvm-svn: 140783
* Expand the x86 V_SET0* pseudos right after register allocation.Jakob Stoklund Olesen2011-09-294-60/+66
| | | | | | | This also makes it possible to reduce the number of pseudo instructions and get rid of the encoding information. llvm-svn: 140776
* Target/ARM: Unbreak! CMake! Build!NAKAMURA Takumi2011-09-291-1/+0
| | | | llvm-svn: 140774
* Delete NEONMoveFix, now unused.Jakob Stoklund Olesen2011-09-293-149/+0
| | | | llvm-svn: 140773
* Use ExecutionDepsFix instead of NEONMoveFix.Jakob Stoklund Olesen2011-09-292-11/+21
| | | | | | | This enables NEON domain tracking across basic blocks, but should otherwise do the same thing. llvm-svn: 140772
* Move to ISelLowering.Bill Wendling2011-09-293-131/+0
| | | | llvm-svn: 140754
* PTX: Add new patterns for bitconvert and any_extendJustin Holewinski2011-09-291-213/+208
| | | | llvm-svn: 140753
* Revert r140731, "Define classes for unary and binary FP instructions and use ↵Jakob Stoklund Olesen2011-09-282-63/+55
| | | | | | | | them to define" It broke the unit tests. Please reapply with tests fixed. llvm-svn: 140735
* Tighten a ARM dag combine condition to avoid an identity transformation, whichEvan Cheng2011-09-281-1/+1
| | | | | | | | ends up introducing a cycle in the DAG. rdar://10196296 llvm-svn: 140733
* Define classes for unary and binary FP instructions and use them to defineAkira Hatanaka2011-09-282-55/+63
| | | | | | multiclasses. llvm-svn: 140731
* PR11033: Make sure we don't generate PCMPGTQ and PCMPEQQ if the target CPU ↵Eli Friedman2011-09-281-0/+7
| | | | | | does not support them. llvm-svn: 140723
* Perform the lowering only if there are invokes.Bill Wendling2011-09-281-9/+19
| | | | llvm-svn: 140719
* Ahem...actually *add* the ARMSjLjLowering pass to the pass manager.Bill Wendling2011-09-281-1/+1
| | | | llvm-svn: 140718
* PTX: Fix alignment logicJustin Holewinski2011-09-281-1/+1
| | | | llvm-svn: 140709
* Rename predicate In32BitMode to NotFP64bit and add definition of IsFP64bit.Akira Hatanaka2011-09-281-9/+10
| | | | llvm-svn: 140705
* Remove definitions of branch-on-FP-likely instructions. They are deprecated.Akira Hatanaka2011-09-281-4/+0
| | | | llvm-svn: 140704
* Mips64 predicate definitions. Patch by Liu.Akira Hatanaka2011-09-281-0/+7
| | | | llvm-svn: 140703
* PTX: MC-ize the PTX backend (patch 2 of N)Justin Holewinski2011-09-282-12/+3
| | | | | | Get rid of some of the no-longer-needed parts of PTXAsmPrinter. llvm-svn: 140698
* PTX: MC-ize the PTX back-end (patch 1 of N)Justin Holewinski2011-09-2819-64/+449
| | | | | | | | Lay some groundwork for converting to MC-based asm printer. This is the first of probably many patches to bring the back-end back up-to-date with all of the recent MC changes. llvm-svn: 140697
* Check in a patch that has already been code reviewed by Owen that I'd ↵James Molloy2011-09-288-12/+128
| | | | | | | | | | | | forgotten to commit. Build on previous patches to successfully distinguish between an M-series and A/R-series MSR and MRS instruction. These take different mask names and have a *slightly* different opcode format. Add decoder and disassembler tests. Improvement on the previous patch - successfully distinguish between valid v6m and v7m masks (one is a subset of the other). The patch had to be edited slightly to apply to ToT. llvm-svn: 140696
* PTX: Simplify code. No functionality change.Benjamin Kramer2011-09-281-13/+5
| | | | llvm-svn: 140680
* PTX: Pass param name strings per const reference.Benjamin Kramer2011-09-282-7/+7
| | | | | | The copies caused use-after-free bugs on std::string implementations without COW (i.e. anything but libstdc++) llvm-svn: 140679
* Rename SSEDomainFix -> lib/CodeGen/ExecutionDepsFix.Jakob Stoklund Olesen2011-09-282-521/+0
| | | | | | I'll clean up the source in the next commit. llvm-svn: 140663
* Remove MipsFPRound. Mips1 is no longer supported.Akira Hatanaka2011-09-271-4/+0
| | | | llvm-svn: 140661
* Remove X86-dependent stuff from SSEDomainFix.Jakob Stoklund Olesen2011-09-273-21/+31
| | | | | | | | | This also enables domain swizzling for AVX code which required a few trivial test changes. The pass will be moved to lib/CodeGen shortly. llvm-svn: 140659
* Unbreak CMake build.Ted Kremenek2011-09-272-2/+3
| | | | llvm-svn: 140655
OpenPOWER on IntegriCloud