aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/ARM/ARMTargetMachine.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Move if-conversion after all passes that may use register scavenger.Evan Cheng2007-05-161-8/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37120 91177308-0d34-0410-b5e6-96231b3b80d8
* Hooks for predication support.Evan Cheng2007-05-161-0/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37093 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement getTargetLowering() or else LSR won't be using ARM specific hooks.Evan Cheng2007-03-131-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35077 91177308-0d34-0410-b5e6-96231b3b80d8
* Added -march=thumb; removed -enable-thumb.Evan Cheng2007-02-231-10/+23
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34521 91177308-0d34-0410-b5e6-96231b3b80d8
* Generalize TargetData strings, to support more interesting forms of data.Chris Lattner2007-02-141-4/+6
| | | | | | | Patch by Scott Michel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34266 91177308-0d34-0410-b5e6-96231b3b80d8
* Add space between // and the comment.Lauro Ramos Venancio2007-02-131-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34246 91177308-0d34-0410-b5e6-96231b3b80d8
* Add ABI information to ARM subtarget.Lauro Ramos Venancio2007-02-131-3/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34245 91177308-0d34-0410-b5e6-96231b3b80d8
* According to ARM EABI, 8-bytes function arguments must be 8-bytes aligned.Lauro Ramos Venancio2007-02-131-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34241 91177308-0d34-0410-b5e6-96231b3b80d8
* Also set alignment of stack-based structs to 4 in thumb mode.Evan Cheng2007-02-011-6/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33741 91177308-0d34-0410-b5e6-96231b3b80d8
* Thumb add sp, #imm requires the immediate value be multiple of 4. For now,Evan Cheng2007-01-311-2/+6
| | | | | | | change preferred alignment of short, byte, bool to 4. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33722 91177308-0d34-0410-b5e6-96231b3b80d8
* ARM AAPCS abi (Linux, etc.) requires 8-byte double / long alignment; MacEvan Cheng2007-01-221-2/+2
| | | | | | | requires 4-bytes alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33448 91177308-0d34-0410-b5e6-96231b3b80d8
* Double and Long preferred alignment is 4 for Darwin, 8 for Linux.Evan Cheng2007-01-221-1/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33440 91177308-0d34-0410-b5e6-96231b3b80d8
* Clean up ARM PEI code.Evan Cheng2007-01-201-4/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33389 91177308-0d34-0410-b5e6-96231b3b80d8
* isDarwin -> isTargetDarwinEvan Cheng2007-01-191-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33366 91177308-0d34-0410-b5e6-96231b3b80d8
* ARM backend contribution from Apple.Evan Cheng2007-01-191-10/+21
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33353 91177308-0d34-0410-b5e6-96231b3b80d8
* revert previous patchRafael Espindola2006-11-031-2/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31411 91177308-0d34-0410-b5e6-96231b3b80d8
* add createCFGSimplificationPass to ARMTargetMachine::addInstSelectorRafael Espindola2006-11-031-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31400 91177308-0d34-0410-b5e6-96231b3b80d8
* most ARM targets are little endianRafael Espindola2006-10-091-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30826 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement a MachineFunctionPass to fix the mul instructionRafael Espindola2006-09-191-1/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30485 91177308-0d34-0410-b5e6-96231b3b80d8
* 1. Remove condition on delete.Jim Laskey2006-09-071-0/+7
| | | | | | | | | 2. Protect and outline createTargetAsmInfo. 3. Misc. kruft. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30169 91177308-0d34-0410-b5e6-96231b3b80d8
* Completely rearchitect the interface between targets and the pass manager.Chris Lattner2006-09-041-50/+6
| | | | | | | | | | | | | | | | | | | | | | | | | This pass: 1. Splits TargetMachine into TargetMachine (generic targets, can be implemented any way, like the CBE) and LLVMTargetMachine (subclass of TM that is used by things using libcodegen and other support). 2. Instead of having each target fully populate the passmgr for file or JIT output, move all this to common code, and give targets hooks they can implement. 3. Commonalize the target population stuff between file emission and JIT emission. 4. All (native code) codegen stuff now happens in a FunctionPassManager, which paves the way for "fast -O0" stuff in the CFE later, and now LLC could lazily stream .bc files from disk to use less memory. 5. There are now many fewer #includes and the targets don't depend on the scalar xforms or libanalysis anymore (but codegen does). 6. Changing common code generator pass ordering stuff no longer requires touching all targets. 7. The JIT now has the option of "-fast" codegen or normal optimized codegen, which is now orthogonal to the fact that JIT'ing is being done. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30081 91177308-0d34-0410-b5e6-96231b3b80d8
* Simplify target construction.Chris Lattner2006-09-031-2/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30070 91177308-0d34-0410-b5e6-96231b3b80d8
* initial support for selectRafael Espindola2006-08-211-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29802 91177308-0d34-0410-b5e6-96231b3b80d8
* Declare the callee saved regsRafael Espindola2006-08-161-1/+2
| | | | | | | | Remove the hard coded store and load of the link register Implement ARMFrameInfo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29727 91177308-0d34-0410-b5e6-96231b3b80d8
* correctly set LocalAreaOffset of TargetFrameInfoRafael Espindola2006-08-091-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29589 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't pass target name into TargetData anymore, it is never used or needed.Chris Lattner2006-06-161-3/+1
| | | | | | | | Remove explicit casts to std::string now that there is no overload resolution issues in the TargetData ctors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28830 91177308-0d34-0410-b5e6-96231b3b80d8
* Make all of the TargetMachine subclasses use the new string TargetData methods.Owen Anderson2006-05-201-1/+1
| | | | | | | This is part of the on-going work on PR 761. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28414 91177308-0d34-0410-b5e6-96231b3b80d8
* added a skeleton of the ARM backendRafael Espindola2006-05-141-0/+99
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28301 91177308-0d34-0410-b5e6-96231b3b80d8