- Jun 22, 2009
-
-
Evan Cheng authored
llvm-svn: 73893
-
Bob Wilson authored
predicate does not check if Thumb mode is enabled, and when in ARM mode there are still some checks for constant-pool use that need to run. llvm-svn: 73887
-
- Jun 20, 2009
-
-
Devang Patel authored
llvm-svn: 73815
-
Evan Cheng authored
llvm-svn: 73791
-
- Jun 19, 2009
-
-
Devang Patel authored
llvm-svn: 73784
-
Evan Cheng authored
llvm-svn: 73761
-
Evan Cheng authored
llvm-svn: 73759
-
Evan Cheng authored
llvm-svn: 73749
-
Evan Cheng authored
Latency information for ARM v6. It's rough and not yet hooked up. Right now we are only using branch latency to determine if-conversion limits. llvm-svn: 73747
-
Eli Friedman authored
while experimenting. I'm reasonably sure this is correct, but please tell me if these instructions have some strange property which makes this change unsafe. llvm-svn: 73746
-
Chris Lattner authored
into DarwinTargetAsmInfo.cpp. The remaining differences should be evaluated. It seems strange that x86/arm has .zerofill but ppc doesn't, etc. llvm-svn: 73742
-
Chris Lattner authored
llvm-svn: 73738
-
Chris Lattner authored
llvm-svn: 73736
-
Evan Cheng authored
llvm-svn: 73734
-
- Jun 18, 2009
-
-
Evan Cheng authored
On Darwin, ams printer should output a second label before a jump table so the linker knows it's a new atom. But this is only needed if the jump table is put in a separate section from the function body. llvm-svn: 73720
-
Evan Cheng authored
- Update register allocation hint after coalescing. This is done by the target since the hint is target dependent. This is important for ARM register pair hints. - Register allocator should resolve the second part of the hint (register number) before passing it to the target since it knows virtual register to physical register mapping. - More fixes to get ARM load / store double word working. llvm-svn: 73671
-
Bob Wilson authored
llvm-svn: 73665
-
Anton Korobeynikov authored
llvm-svn: 73661
-
Anton Korobeynikov authored
Emit switch directive for it. I have no idea whether this is requirement for Darwin or not. llvm-svn: 73660
-
- Jun 17, 2009
-
-
Anton Korobeynikov authored
Patch by Viktor Kutuzov and Anton Korzh from Access Softek, Inc. llvm-svn: 73622
-
- Jun 16, 2009
-
-
Douglas Gregor authored
initialization of all targets (InitializeAllTargets.h) or assembler printers (InitializeAllAsmPrinters.h). This is a step toward the elimination of relinked object files, so that we can build normal archives. llvm-svn: 73543
-
Anton Korobeynikov authored
Dispatch C calling conv. to one of these conventions based on target triple and subtarget features. llvm-svn: 73530
-
Anton Korobeynikov authored
(this is the case when we have thumb vararg function with single callee-saved register, which is handled separately). llvm-svn: 73529
-
Evan Cheng authored
llvm-svn: 73434
-
- Jun 15, 2009
-
-
Anton Korobeynikov authored
llvm-svn: 73428
-
Evan Cheng authored
llvm-svn: 73422
-
Evan Cheng authored
llvm-svn: 73413
-
Evan Cheng authored
llvm-svn: 73406
-
Evan Cheng authored
- Change register allocation hint to a pair of unsigned integers. The hint type is zero (which means prefer the register specified as second part of the pair) or entirely target dependent. - Allow targets to specify alternative register allocation orders based on allocation hint. Part 2. - Use the register allocation hint system to implement more aggressive load / store multiple formation. - Aggressively form LDRD / STRD. These are formed *before* register allocation. It has to be done this way to shorten live interval of base and offset registers. e.g. v1025 = LDR v1024, 0 v1026 = LDR v1024, 0 => v1025,v1026 = LDRD v1024, 0 If this transformation isn't done before allocation, v1024 will overlap v1025 which means it more difficult to allocate a register pair. - Even with the register allocation hint, it may not be possible to get the desired allocation. In that case, the post-allocation load / store multiple pass must fix the ldrd / strd instructions. They can either become ldm / stm instructions or back to a pair of ldr / str instructions. This is work in progress, not yet enabled. llvm-svn: 73381
-
- Jun 13, 2009
-
-
Evan Cheng authored
consecutive addresses togther. This makes it easier for the post-allocation pass to form ldm / stm. This is step 1. We are still missing a lot of ldm / stm opportunities because of register allocation are not done in the desired order. More enhancements coming. llvm-svn: 73291
-
- Jun 12, 2009
-
-
Evan Cheng authored
llvm-svn: 73252
-
- Jun 09, 2009
-
-
Anton Korobeynikov authored
llvm-svn: 73098
-
Anton Korobeynikov authored
llvm-svn: 73097
-
Anton Korobeynikov authored
ABI. The missing piece is support for putting "homogeneous aggregates" into registers. Patch by Sandeep Patel! llvm-svn: 73095
-
- Jun 08, 2009
-
-
Anton Korobeynikov authored
llvm-svn: 73085
-
Anton Korobeynikov authored
llvm-svn: 73080
-
- Jun 06, 2009
-
-
Dan Gohman authored
llvm-svn: 72969
-
- Jun 05, 2009
-
-
Evan Cheng authored
Changing allocation ordering from r3 ... r0 back to r0 ... r3. The order change no longer make sense after the coalescing changes we have made since then. llvm-svn: 72955
-
Evan Cheng authored
llvm-svn: 72952
-
Evan Cheng authored
llvm-svn: 72950
-