summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/ARMSubtarget.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Add substarget feature for FP16Anton Korobeynikov2010-03-141-0/+1
| | | | llvm-svn: 98503
* Initial bits of ARMv4-only support.Anton Korobeynikov2010-03-061-16/+24
| | | | | | Patch by John Tytgat! llvm-svn: 97886
* Kill ModuleProvider and ghost linkage by inverting the relationship betweenJeffrey Yasskin2010-01-271-3/+3
| | | | | | | | | | | | | | | | | | | | | Modules and ModuleProviders. Because the "ModuleProvider" simply materializes GlobalValues now, and doesn't provide modules, it's renamed to "GVMaterializer". Code that used to need a ModuleProvider to materialize Functions can now materialize the Functions directly. Functions no longer use a magic linkage to record that they're materializable; they simply ask the GVMaterializer. Because the C ABI must never change, we can't remove LLVMModuleProviderRef or the functions that refer to it. Instead, because Module now exposes the same functionality ModuleProvider used to, we store a Module* in any LLVMModuleProviderRef and translate in the wrapper methods. The bindings to other languages still use the ModuleProvider concept. It would probably be worth some time to update them to follow the C++ more closely, but I don't intend to do it. Fixes http://llvm.org/PR5737 and http://llvm.org/PR5735. llvm-svn: 94686
* Remove isProfitableToDuplicateIndirectBranch target hook. It is profitableBob Wilson2009-11-301-2/+0
| | | | | | | | | for all the processors where I have tried it, and even when it might not help performance, the cost is quite low. The opportunities for duplicating indirect branches are limited by other factors so code size does not change much due to tail duplicating indirect branches aggressively. llvm-svn: 90144
* Materialize global addresses via movt/movw pair, this is always betterAnton Korobeynikov2009-11-241-0/+5
| | | | | | | | | | | | | than doing the same via constpool: 1. Load from constpool costs 3 cycles on A9, movt/movw pair - just 2. 2. Load from constpool might stall up to 300 cycles due to cache miss. 3. Movt/movw does not use load/store unit. 4. Less constpool entries => better compiler performance. This is only enabled on ELF systems, since darwin does not have needed relocations (yet). llvm-svn: 89720
* Add a target hook to allow changing the tail duplication limit based on theBob Wilson2009-11-181-0/+2
| | | | | | | | | 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
* Allow target to specify regclass for which antideps will only be broken ↵David Goodwin2009-11-131-3/+3
| | | | | | along the critical path. llvm-svn: 88682
* Fixed to address code review. No functional changes.David Goodwin2009-11-101-0/+11
| | | | llvm-svn: 86634
* I am no spelling bee.Evan Cheng2009-10-161-1/+1
| | | | llvm-svn: 84250
* Enable post-alloc scheduling for all ARM variants except for Thumb1.Evan Cheng2009-10-161-3/+5
| | | | llvm-svn: 84249
* Add comment.Evan Cheng2009-10-161-0/+2
| | | | llvm-svn: 84246
* Remove neonfp attribute and instead set default based on CPU string. Add ↵David Goodwin2009-10-011-1/+7
| | | | | | -arm-use-neon-fp to override the default. llvm-svn: 83218
* Restore the -post-RA-scheduler flag as an override for the target ↵David Goodwin2009-10-011-0/+5
| | | | | | specification. Remove -mattr for setting PostRAScheduler enable and instead use CPU string. llvm-svn: 83215
* Remove -post-RA-schedule flag and add a TargetSubtarget method to enable ↵David Goodwin2009-09-301-0/+1
| | | | | | post-register-allocation scheduling. By default it is off. For ARM, enable/disable with -mattr=+/-postrasched. Enable by default for cortex-a8. llvm-svn: 83122
* Reference to hidden symbols do not have to go through non-lazy pointer in ↵Evan Cheng2009-09-031-6/+46
| | | | | | non-pic mode. rdar://7187172. llvm-svn: 80904
* Let Darwin linker auto-synthesize stubs and lazy-pointers. This deletes a ↵Evan Cheng2009-08-281-0/+11
| | | | | | bunch of nasty code in ARM asm printer. llvm-svn: 80404
* Remove some dead code.Daniel Dunbar2009-08-051-4/+0
| | | | llvm-svn: 78219
* Initial support for single-precision FP using NEON. Added "neonfp" attribute ↵David Goodwin2009-08-041-0/+1
| | | | | | to enable. Added patterns for some binary FP operations. llvm-svn: 78081
* Normalize Subtarget constructors to take a target triple string instead ofDaniel Dunbar2009-08-021-4/+1
| | | | | | | | | | Module*. Also, dropped uses of TargetMachine where unnecessary. The only target which still takes a TargetMachine& is Mips, I would appreciate it if someone would normalize this to match other targets. llvm-svn: 77918
* Fix Thumb2 function call isel. Thumb1 and Thumb2 should share the sameEvan Cheng2009-08-011-0/+4
| | | | | | | | | instructions for calls since BL and BLX are always 32-bit long and BX is always 16-bit long. Also, we should be using BLX to call external function stubs. llvm-svn: 77756
* Use thumb2 for ARM architectures V6T2 and later. Fix a bug in checkingBob Wilson2009-06-221-4/+8
| | | | | | for "thumb" and add a check for V6T2. llvm-svn: 73905
* For Darwin on ARMv6 and newer, make register r9 available for use as aBob Wilson2009-06-221-2/+7
| | | | | | caller-saved register. llvm-svn: 73901
* Remove UseThumbBacktraces. Just check if subtarget is darwin.Evan Cheng2009-06-181-4/+1
| | | | llvm-svn: 73734
* The attached patches implement most of the ARM AAPCS-VFP hard floatAnton Korobeynikov2009-06-081-0/+6
| | | | | | | | | ABI. The missing piece is support for putting "homogeneous aggregates" into registers. Patch by Sandeep Patel! llvm-svn: 73095
* Implement review feedback. Make thumb2 'normal' subtarget featureAnton Korobeynikov2009-06-011-9/+6
| | | | llvm-svn: 72698
* Add placeholder for thumb2 stuffAnton Korobeynikov2009-05-291-5/+13
| | | | llvm-svn: 72593
* Add ARMv7 architecture, Cortex processors and different FPU modes handling.Anton Korobeynikov2009-05-231-1/+1
| | | | llvm-svn: 72337
* Propagate CPU string out of SubtargetFeaturesAnton Korobeynikov2009-05-231-3/+2
| | | | llvm-svn: 72335
* ARM target now also recognize triplets like thumbv6-apple-darwin and set ↵Evan Cheng2009-03-091-12/+19
| | | | | | thumb mode and arch subversion. Eventually thumb triplets will go way and replaced with function notes. llvm-svn: 66435
* Recognize triplets starting with armv5-, armv6- etc. And set the ARM arch ↵Evan Cheng2009-03-081-1/+17
| | | | | | version accordingly. llvm-svn: 66365
* Remove attribution from file headers, per discussion on llvmdev.Chris Lattner2007-12-291-2/+2
| | | | llvm-svn: 45418
* Added -march=thumb; removed -enable-thumb.Evan Cheng2007-02-231-8/+2
| | | | llvm-svn: 34521
* Add ABI information to ARM subtarget.Lauro Ramos Venancio2007-02-131-4/+10
| | | | llvm-svn: 34245
* Introduce TargetType's ELF and Darwin.Evan Cheng2007-01-191-5/+10
| | | | llvm-svn: 33363
* ARM backend contribution from Apple.Evan Cheng2007-01-191-0/+52
llvm-svn: 33353
OpenPOWER on IntegriCloud