Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Remove unused header files. | Akira Hatanaka | 2012-03-09 | 1 | -2/+0 | |
| | | | | llvm-svn: 152447 | |||||
* | remove blanks, and some code format | Jia Liu | 2012-02-28 | 1 | -9/+9 | |
| | | | | llvm-svn: 151625 | |||||
* | Add an option to use a virtual register as the global base register instead of | Akira Hatanaka | 2012-02-24 | 1 | -0/+12 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | reserving a physical register ($gp or $28) for that purpose. This will completely eliminate loads that restore the value of $gp after every function call, if the register allocator assigns a callee-saved register, or eliminate unnecessary loads if it assigns a temporary register. example: .cpload $25 // set $gp. ... .cprestore 16 // store $gp to stack slot 16($sp). ... jalr $25 // function call. clobbers $gp. lw $gp, 16($sp) // not emitted if callee-saved reg is chosen. ... lw $2, 4($gp) ... jalr $25 // function call. lw $gp, 16($sp) // not emitted if $gp is not live after this instruction. ... llvm-svn: 151402 | |||||
* | Remove dead code. Improve llvm_unreachable text. Simplify some control flow. | Ahmed Charles | 2012-02-19 | 1 | -4/+1 | |
| | | | | llvm-svn: 150918 | |||||
* | remove Emacs-tag form .cpp files in Mips Backend, and fix some typo. | Jia Liu | 2012-02-17 | 1 | -1/+1 | |
| | | | | llvm-svn: 150805 | |||||
* | add Emacs tag and fix some comment error in file headers | Jia Liu | 2012-02-17 | 1 | -1/+1 | |
| | | | | llvm-svn: 150775 | |||||
* | Cleanup Mips code and rename some variables. Patch by Jack Carter | Bruno Cardoso Lopes | 2011-12-30 | 1 | -5/+5 | |
| | | | | llvm-svn: 147383 | |||||
* | Detect unaligned loads/stores that have been added for Mips64 support. | Akira Hatanaka | 2011-12-24 | 1 | -1/+8 | |
| | | | | llvm-svn: 147234 | |||||
* | Tidy up. Simplify logic. No functional change intended. | Akira Hatanaka | 2011-12-19 | 1 | -1/+2 | |
| | | | | llvm-svn: 146896 | |||||
* | Expand .cprestore directive to multiple instructions if the offset does not fit | Akira Hatanaka | 2011-12-13 | 1 | -9/+7 | |
| | | | | | | in a 16-bit field. llvm-svn: 146469 | |||||
* | Add bundle aware API for querying instruction properties and switch the code | Evan Cheng | 2011-12-07 | 1 | -2/+2 | |
| | | | | | | | | | | | | | | generator to it. For non-bundle instructions, these behave exactly the same as the MC layer API. For properties like mayLoad / mayStore, look into the bundle and if any of the bundled instructions has the property it would return true. For properties like isPredicable, only return true if *all* of the bundled instructions have the property. For properties like canFoldAsLoad, isCompare, conservatively return false for bundles. llvm-svn: 146026 | |||||
* | This patch makes the following changes necessary for MIPS' direct code emission. | Akira Hatanaka | 2011-11-23 | 1 | -9/+16 | |
| | | | | | | | | - lower unaligned loads/stores. - encode the size operand of instructions INS and EXT. - emit relocation information needed for JAL (jump-and-link). llvm-svn: 145113 | |||||
* | Remove MipsMCSymbolRefExpr. | Akira Hatanaka | 2011-11-15 | 1 | -1/+0 | |
| | | | | llvm-svn: 144654 | |||||
* | Mips MC object code emission improvements: | Bruno Cardoso Lopes | 2011-11-11 | 1 | -0/+1 | |
| | | | | | | | | | | "With this patch we can now generate runnable Mips code through LLVM direct object emission. We have run numerous simple programs, both C and C++ and with -O0 and -O3 from the output. The code is not production ready, but quite useful for experimentation." Patch and message by Jack Carter llvm-svn: 144414 | |||||
* | Properly handle Mips MC relocations and lower cpload and cprestore macros to ↵ | Bruno Cardoso Lopes | 2011-11-08 | 1 | -24/+62 | |
| | | | | | | | | MCInsts. Patch by Jack Carter. llvm-svn: 144139 | |||||
* | Replace (Lower|Upper)caseString in favor of StringRef's newest methods. | Benjamin Kramer | 2011-11-06 | 1 | -5/+4 | |
| | | | | llvm-svn: 143891 | |||||
* | Fix function isUnalignedLoadStore. | Akira Hatanaka | 2011-10-11 | 1 | -2/+4 | |
| | | | | llvm-svn: 141722 | |||||
* | Add patterns for unaligned load and store instructions and enable the | Akira Hatanaka | 2011-10-08 | 1 | -23/+14 | |
| | | | | | | instruction selector to generate them. llvm-svn: 141471 | |||||
* | Add enums and functions for symbols Mips64 uses. | Akira Hatanaka | 2011-09-22 | 1 | -0/+5 | |
| | | | | llvm-svn: 140295 | |||||
* | Add a base class for Mips TargetMachines and add Mips64 TargetMachines. | Akira Hatanaka | 2011-09-21 | 1 | -0/+2 | |
| | | | | llvm-svn: 140233 | |||||
* | O64 will not be supported. | Akira Hatanaka | 2011-09-09 | 1 | -1/+0 | |
| | | | | llvm-svn: 139421 | |||||
* | Drop support for Mips1 and Mips2. | Akira Hatanaka | 2011-09-09 | 1 | -18/+0 | |
| | | | | llvm-svn: 139405 | |||||
* | Move TargetRegistry and TargetSelect from Target to Support where they belong. | Evan Cheng | 2011-08-24 | 1 | -1/+1 | |
| | | | | | | These are strictly utilities for registering targets and components. llvm-svn: 138450 | |||||
* | Add support for half-word unaligned loads and stores. | Akira Hatanaka | 2011-08-17 | 1 | -11/+22 | |
| | | | | llvm-svn: 137848 | |||||
* | Fix handling of double precision loads and stores when Mips1 is targeted. | Akira Hatanaka | 2011-08-16 | 1 | -1/+20 | |
| | | | | | | | | | | | | | | | Mips1 does not support double precision loads or stores, therefore two single precision loads or stores must be used in place of these instructions. This patch treats double precision loads and stores as if they are legal instructions until MCInstLowering, instead of generating the single precision instructions during instruction selection or Prolog/Epilog code insertion. Without the changes made in this patch, llc produces code that has the same problem described in r137484 or bails out when MipsInstrInfo::storeRegToStackSlot or loadRegFromStackSlot is called before register allocation. llvm-svn: 137711 | |||||
* | Define unaligned load and store. | Akira Hatanaka | 2011-08-12 | 1 | -0/+17 | |
| | | | | llvm-svn: 137515 | |||||
* | Separate MCInstPrinter registration from AsmPrinter registration. | Evan Cheng | 2011-07-25 | 1 | -10/+0 | |
| | | | | llvm-svn: 135974 | |||||
* | Lower MachineInstr to MC Inst and print to .s files. | Akira Hatanaka | 2011-07-07 | 1 | -9/+23 | |
| | | | | llvm-svn: 134661 | |||||
* | Rather than having printMemOperand change the way memory operands are printed | Akira Hatanaka | 2011-07-07 | 1 | -11/+11 | |
| | | | | | | based on a modifier, split it into two functions. llvm-svn: 134637 | |||||
* | Change visibility of MipsAsmPrinter. | Akira Hatanaka | 2011-07-07 | 1 | -60/+12 | |
| | | | | llvm-svn: 134630 | |||||
* | Reverse order of operands of address operand mem so that the base operand comes | Akira Hatanaka | 2011-07-07 | 1 | -4/+4 | |
| | | | | | | | before the offset. This change will enable simplification of function MipsRegisterInfo::eliminateFrameIndex. llvm-svn: 134625 | |||||
* | Add missing return statement. | Akira Hatanaka | 2011-07-07 | 1 | -1/+3 | |
| | | | | llvm-svn: 134622 | |||||
* | Improve Mips back-end's handling of DBG_VALUE. | Akira Hatanaka | 2011-07-01 | 1 | -0/+24 | |
| | | | | llvm-svn: 134224 | |||||
* | Re-apply 132758 and 132768 which were speculatively reverted in 132777. | Akira Hatanaka | 2011-06-21 | 1 | -0/+16 | |
| | | | | llvm-svn: 133494 | |||||
* | Speculatively revert 132758 and 132768 to try to fix the Windows buildbots. | Eric Christopher | 2011-06-09 | 1 | -16/+0 | |
| | | | | llvm-svn: 132777 | |||||
* | Initial support for inline asm memory operand constraints. | Akira Hatanaka | 2011-06-09 | 1 | -0/+16 | |
| | | | | llvm-svn: 132768 | |||||
* | This patch implements the thread local storage. Implemented are General | Bruno Cardoso Lopes | 2011-05-31 | 1 | -0/+4 | |
| | | | | | | | | Dynamic, Initial Exec and Local Exec TLS models. Patch by Sasa Stankovic llvm-svn: 132322 | |||||
* | Enable printing of immediates that do not fit in 16-bit. .cprestore can have | Akira Hatanaka | 2011-05-24 | 1 | -1/+1 | |
| | | | | | | offsets that are larger than 0x10000. llvm-svn: 132003 | |||||
* | Fix MipsAsmPrinter::printSavedRegsBitmaskChange. Remove functions and variables | Akira Hatanaka | 2011-05-23 | 1 | -23/+39 | |
| | | | | | | in MipsFunctionInfo that are no longer used. llvm-svn: 131917 | |||||
* | Reverse unnecessary changes made in r129606 and r129608. There is no change ↵ | Akira Hatanaka | 2011-04-15 | 1 | -17/+15 | |
| | | | | | | in functionality. llvm-svn: 129612 | |||||
* | Fix lines that have incorrect indentation or exceed 80 columns. There is no ↵ | Akira Hatanaka | 2011-04-15 | 1 | -14/+17 | |
| | | | | | | change in functionality. llvm-svn: 129606 | |||||
* | Insert space before ';' to prevent warnings. | Akira Hatanaka | 2011-04-02 | 1 | -1/+1 | |
| | | | | llvm-svn: 128750 | |||||
* | Simplifies logic for printing target flags. | Akira Hatanaka | 2011-04-01 | 1 | -16/+3 | |
| | | | | llvm-svn: 128741 | |||||
* | Modifies MipsAsmPrinter::isBlockOnlyReachableByFallthrough so that it ↵ | Akira Hatanaka | 2011-04-01 | 1 | -1/+26 | |
| | | | | | | handles delay slots correctly. llvm-svn: 128724 | |||||
* | Lowers block address. Currently asserts when relocation model is not PIC. ↵ | Bruno Cardoso Lopes | 2011-03-04 | 1 | -0/+6 | |
| | | | | | | Patch by Akira Hatanaka llvm-svn: 127027 | |||||
* | Remove (hopefully) all trailing whitespaces from the mips backend. Patch by ↵ | Bruno Cardoso Lopes | 2011-03-04 | 1 | -31/+31 | |
| | | | | | | Hatanaka, Akira llvm-svn: 127003 | |||||
* | Rename TargetFrameInfo into TargetFrameLowering. Also, put couple of FIXMEs ↵ | Anton Korobeynikov | 2011-01-10 | 1 | -1/+3 | |
| | | | | | | and fixes here and there. llvm-svn: 123170 | |||||
* | Match a pattern generated by a dag combiner opt where: | Bruno Cardoso Lopes | 2010-12-07 | 1 | -2/+6 | |
| | | | | | | | | (select (load (load tga0)) (load tga1)) => (load (select (load tga0) tga1)) Thanks to Akira for pointing that. llvm-svn: 121163 | |||||
* | Move hasFP() and few related hooks to TargetFrameInfo. | Anton Korobeynikov | 2010-11-18 | 1 | -7/+8 | |
| | | | | llvm-svn: 119740 | |||||
* | move all the target's asmprinters into the main target. The piece | Chris Lattner | 2010-11-14 | 1 | -0/+386 | |
| | | | | | | | that should be split out is the InstPrinter (if a target is mc'ized). This change makes all the targets be consistent. llvm-svn: 119056 |