2522908653 
								
							 
						 
						
							
							
								
								Materialize global addresses via movt/movw pair, this is always better  
							
							... 
							
							
							
							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 
							
						 
						
							2009-11-24 00:44:37 +00:00  
				
					
						
							
							
								 
						
							
								290e9a47a9 
								
							 
						 
						
							
							
								
								Add a target hook to allow changing the tail duplication limit based on the  
							
							... 
							
							
							
							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 
							
						 
						
							2009-11-18 03:34:27 +00:00  
				
					
						
							
							
								 
						
							
								b9fe5d5d02 
								
							 
						 
						
							
							
								
								Allow target to specify regclass for which antideps will only be broken along the critical path.  
							
							... 
							
							
							
							llvm-svn: 88682 
							
						 
						
							2009-11-13 19:52:48 +00:00  
				
					
						
							
							
								 
						
							
								0d412c2528 
								
							 
						 
						
							
							
								
								Fixed to address code review. No functional changes.  
							
							... 
							
							
							
							llvm-svn: 86634 
							
						 
						
							2009-11-10 00:48:55 +00:00  
				
					
						
							
							
								 
						
							
								343d17d762 
								
							 
						 
						
							
							
								
								I am no spelling bee.  
							
							... 
							
							
							
							llvm-svn: 84250 
							
						 
						
							2009-10-16 06:18:09 +00:00  
				
					
						
							
							
								 
						
							
								03da4dba59 
								
							 
						 
						
							
							
								
								Enable post-alloc scheduling for all ARM variants except for Thumb1.  
							
							... 
							
							
							
							llvm-svn: 84249 
							
						 
						
							2009-10-16 06:11:08 +00:00  
				
					
						
							
							
								 
						
							
								8cd7c92613 
								
							 
						 
						
							
							
								
								Add comment.  
							
							... 
							
							
							
							llvm-svn: 84246 
							
						 
						
							2009-10-16 05:33:58 +00:00  
				
					
						
							
							
								 
						
							
								1cc6dd97da 
								
							 
						 
						
							
							
								
								Remove neonfp attribute and instead set default based on CPU string. Add -arm-use-neon-fp to override the default.  
							
							... 
							
							
							
							llvm-svn: 83218 
							
						 
						
							2009-10-01 22:19:57 +00:00  
				
					
						
							
							
								 
						
							
								9a051a5922 
								
							 
						 
						
							
							
								
								Restore the -post-RA-scheduler flag as an override for the target specification. Remove -mattr for setting PostRAScheduler enable and instead use CPU string.  
							
							... 
							
							
							
							llvm-svn: 83215 
							
						 
						
							2009-10-01 21:46:35 +00:00  
				
					
						
							
							
								 
						
							
								17199b56b0 
								
							 
						 
						
							
							
								
								Remove -post-RA-schedule flag and add a TargetSubtarget method to enable 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 
							
						 
						
							2009-09-30 00:10:16 +00:00  
				
					
						
							
							
								 
						
							
								1b38952c99 
								
							 
						 
						
							
							
								
								Reference to hidden symbols do not have to go through non-lazy pointer in non-pic mode. rdar://7187172.  
							
							... 
							
							
							
							llvm-svn: 80904 
							
						 
						
							2009-09-03 07:04:02 +00:00  
				
					
						
							
							
								 
						
							
								43b9ca6f42 
								
							 
						 
						
							
							
								
								Let Darwin linker auto-synthesize stubs and lazy-pointers. This deletes a bunch of nasty code in ARM asm printer.  
							
							... 
							
							
							
							llvm-svn: 80404 
							
						 
						
							2009-08-28 23:18:09 +00:00  
				
					
						
							
							
								 
						
							
								4cc1feff4f 
								
							 
						 
						
							
							
								
								Remove some dead code.  
							
							... 
							
							
							
							llvm-svn: 78219 
							
						 
						
							2009-08-05 18:12:37 +00:00  
				
					
						
							
							
								 
						
							
								3b9c52c5c1 
								
							 
						 
						
							
							
								
								Initial support for single-precision FP using NEON. Added "neonfp" attribute to enable. Added patterns for some binary FP operations.  
							
							... 
							
							
							
							llvm-svn: 78081 
							
						 
						
							2009-08-04 17:53:06 +00:00  
				
					
						
							
							
								 
						
							
								31b44e8f6c 
								
							 
						 
						
							
							
								
								Normalize Subtarget constructors to take a target triple string instead of  
							
							... 
							
							
							
							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 
							
						 
						
							2009-08-02 22:11:08 +00:00  
				
					
						
							
							
								 
						
							
								6ab54fdb0a 
								
							 
						 
						
							
							
								
								Fix Thumb2 function call isel. Thumb1 and Thumb2 should share the same  
							
							... 
							
							
							
							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 
							
						 
						
							2009-08-01 00:16:10 +00:00  
				
					
						
							
							
								 
						
							
								482495695e 
								
							 
						 
						
							
							
								
								Use thumb2 for ARM architectures V6T2 and later.  Fix a bug in checking  
							
							... 
							
							
							
							for "thumb" and add a check for V6T2.
llvm-svn: 73905 
							
						 
						
							2009-06-22 21:28:22 +00:00  
				
					
						
							
							
								 
						
							
								4582530a2c 
								
							 
						 
						
							
							
								
								For Darwin on ARMv6 and newer, make register r9 available for use as a  
							
							... 
							
							
							
							caller-saved register.
llvm-svn: 73901 
							
						 
						
							2009-06-22 21:01:46 +00:00  
				
					
						
							
							
								 
						
							
								a0ca298f8a 
								
							 
						 
						
							
							
								
								Remove UseThumbBacktraces. Just check if subtarget is darwin.  
							
							... 
							
							
							
							llvm-svn: 73734 
							
						 
						
							2009-06-18 23:14:30 +00:00  
				
					
						
							
							
								 
						
							
								77d1943637 
								
							 
						 
						
							
							
								
								The attached patches implement most of the ARM AAPCS-VFP hard float  
							
							... 
							
							
							
							ABI. The missing piece is support for putting "homogeneous aggregates"
into registers.
Patch by Sandeep Patel!
llvm-svn: 73095 
							
						 
						
							2009-06-08 22:53:56 +00:00  
				
					
						
							
							
								 
						
							
								12694bd8ac 
								
							 
						 
						
							
							
								
								Implement review feedback. Make thumb2 'normal' subtarget feature  
							
							... 
							
							
							
							llvm-svn: 72698 
							
						 
						
							2009-06-01 20:00:48 +00:00  
				
					
						
							
							
								 
						
							
								b6f4538683 
								
							 
						 
						
							
							
								
								Add placeholder for thumb2 stuff  
							
							... 
							
							
							
							llvm-svn: 72593 
							
						 
						
							2009-05-29 23:41:08 +00:00  
				
					
						
							
							
								 
						
							
								0b91cc4260 
								
							 
						 
						
							
							
								
								Add ARMv7 architecture, Cortex processors and different FPU modes handling.  
							
							... 
							
							
							
							llvm-svn: 72337 
							
						 
						
							2009-05-23 19:51:43 +00:00  
				
					
						
							
							
								 
						
							
								08bf4c0f5a 
								
							 
						 
						
							
							
								
								Propagate CPU string out of SubtargetFeatures  
							
							... 
							
							
							
							llvm-svn: 72335 
							
						 
						
							2009-05-23 19:50:50 +00:00  
				
					
						
							
							
								 
						
							
								0ee0da841d 
								
							 
						 
						
							
							
								
								ARM target now also recognize triplets like thumbv6-apple-darwin and set thumb mode and arch subversion. Eventually thumb triplets will go way and replaced with function notes.  
							
							... 
							
							
							
							llvm-svn: 66435 
							
						 
						
							2009-03-09 20:25:39 +00:00  
				
					
						
							
							
								 
						
							
								ec415efb44 
								
							 
						 
						
							
							
								
								Recognize triplets starting with armv5-, armv6- etc. And set the ARM arch version accordingly.  
							
							... 
							
							
							
							llvm-svn: 66365 
							
						 
						
							2009-03-08 04:02:49 +00:00  
				
					
						
							
							
								 
						
							
								f3ebc3f3d2 
								
							 
						 
						
							
							
								
								Remove attribution from file headers, per discussion on llvmdev.  
							
							... 
							
							
							
							llvm-svn: 45418 
							
						 
						
							2007-12-29 20:36:04 +00:00  
				
					
						
							
							
								 
						
							
								9f8301413c 
								
							 
						 
						
							
							
								
								Added -march=thumb; removed -enable-thumb.  
							
							... 
							
							
							
							llvm-svn: 34521 
							
						 
						
							2007-02-23 03:14:31 +00:00  
				
					
						
							
							
								 
						
							
								048e16ff8f 
								
							 
						 
						
							
							
								
								Add ABI information to ARM subtarget.  
							
							... 
							
							
							
							llvm-svn: 34245 
							
						 
						
							2007-02-13 19:52:28 +00:00  
				
					
						
							
							
								 
						
							
								181fe36d6c 
								
							 
						 
						
							
							
								
								Introduce TargetType's ELF and Darwin.  
							
							... 
							
							
							
							llvm-svn: 33363 
							
						 
						
							2007-01-19 19:22:40 +00:00  
				
					
						
							
							
								 
						
							
								10043e215b 
								
							 
						 
						
							
							
								
								ARM backend contribution from Apple.  
							
							... 
							
							
							
							llvm-svn: 33353 
							
						 
						
							2007-01-19 07:51:42 +00:00