Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Removed tabs everywhere except autogenerated & external files. Add make | Anton Korobeynikov | 2007-04-16 | 1 | -1/+1 | |
| | | | | | | target for tabs checking. llvm-svn: 36146 | |||||
* | Fixed a bug that causes codegen of noop like add r0, r0, #0. | Evan Cheng | 2007-04-03 | 1 | -1/+1 | |
| | | | | llvm-svn: 35627 | |||||
* | Added MRegisterInfo hook to re-materialize an instruction. | Evan Cheng | 2007-03-20 | 1 | -16/+35 | |
| | | | | llvm-svn: 35205 | |||||
* | Fix naming inconsistencies. | Evan Cheng | 2007-03-19 | 1 | -17/+17 | |
| | | | | llvm-svn: 35163 | |||||
* | Fix one more Thumb eliminateFrameIndex bug. | Evan Cheng | 2007-03-07 | 1 | -9/+23 | |
| | | | | llvm-svn: 34990 | |||||
* | Register scavenging is now on by default for ARM. | Evan Cheng | 2007-03-06 | 1 | -3/+4 | |
| | | | | llvm-svn: 34987 | |||||
* | Scavenge a register using the register scavenger when needed. | Evan Cheng | 2007-03-06 | 1 | -8/+107 | |
| | | | | llvm-svn: 34966 | |||||
* | eliminate unnecessary reset of SP in epilog on darwin | Dale Johannesen | 2007-03-02 | 1 | -1/+1 | |
| | | | | llvm-svn: 34824 | |||||
* | Use a spilled free callee-saved register as scratch register. | Evan Cheng | 2007-03-01 | 1 | -3/+17 | |
| | | | | llvm-svn: 34785 | |||||
* | - Track which callee-saved registers are spilled. | Evan Cheng | 2007-03-01 | 1 | -10/+18 | |
| | | | | | | - Some code clean up. llvm-svn: 34783 | |||||
* | Doh. ARM::PC is obvious a reserved register. | Evan Cheng | 2007-02-28 | 1 | -0/+1 | |
| | | | | llvm-svn: 34763 | |||||
* | Make requiresRegisterScavenging determination on a per MachineFunction basis. | Evan Cheng | 2007-02-28 | 1 | -2/+4 | |
| | | | | llvm-svn: 34711 | |||||
* | Start making use of RegScavenger. | Evan Cheng | 2007-02-28 | 1 | -8/+12 | |
| | | | | llvm-svn: 34708 | |||||
* | Let MRegisterInfo now owns RegScavenger; eliminateFrameIndex must preserve ↵ | Evan Cheng | 2007-02-27 | 1 | -27/+43 | |
| | | | | | | register kill info. llvm-svn: 34692 | |||||
* | bugfix: SP wasn't updated for varargs when frame pointer was eliminated. | Lauro Ramos Venancio | 2007-02-23 | 1 | -63/+63 | |
| | | | | llvm-svn: 34537 | |||||
* | Add option to turn on register scavenger; By default, spills kills the ↵ | Evan Cheng | 2007-02-23 | 1 | -6/+18 | |
| | | | | | | register being stored. llvm-svn: 34514 | |||||
* | Support to provide exception and selector registers. | Jim Laskey | 2007-02-21 | 1 | -0/+10 | |
| | | | | llvm-svn: 34482 | |||||
* | Re-apply my liveintervalanalysis changes. Now with PR1207 fixes. | Evan Cheng | 2007-02-19 | 1 | -0/+15 | |
| | | | | llvm-svn: 34428 | |||||
* | For PR1207: | Reid Spencer | 2007-02-19 | 1 | -15/+0 | |
| | | | | | | | Revert patches that caused the problem. Evan, please investigate and reapply when you've discovered the problem. llvm-svn: 34399 | |||||
* | Added getReservedRegs(). | Evan Cheng | 2007-02-17 | 1 | -0/+15 | |
| | | | | llvm-svn: 34376 | |||||
* | isLowRegister() expects input is a physical register. | Evan Cheng | 2007-02-07 | 1 | -2/+2 | |
| | | | | llvm-svn: 34013 | |||||
* | Rename. | Evan Cheng | 2007-02-07 | 1 | -6/+7 | |
| | | | | llvm-svn: 34011 | |||||
* | If sp offset will be materialized in a register. Clear the offset field of ↵ | Evan Cheng | 2007-02-07 | 1 | -8/+10 | |
| | | | | | | str / ldr. llvm-svn: 34010 | |||||
* | Get rid of references to iostream. | Evan Cheng | 2007-02-07 | 1 | -3/+2 | |
| | | | | llvm-svn: 34009 | |||||
* | In thumb mode, R3 is reserved, but it can be live in to the function. If | Evan Cheng | 2007-02-07 | 1 | -5/+21 | |
| | | | | | | | | that is the case, whenever we use it as a scratch register, save it to R12 first and then restore it after the use. This is a temporary and truly horrible workaround! llvm-svn: 33999 | |||||
* | - If fp (r7) is used to reference stack objects, use [r, r] address mode. | Evan Cheng | 2007-02-07 | 1 | -28/+67 | |
| | | | | | | | | - If there is a dynamic alloca, in the epilogue, restore the value of sp using r7 - offset. - Other bug fixes. llvm-svn: 33997 | |||||
* | eliminateFrameIndex() is even more complicated if frame ptr is used instead ↵ | Evan Cheng | 2007-02-07 | 1 | -20/+34 | |
| | | | | | | of SP when there are dynamic alloca's. llvm-svn: 33975 | |||||
* | Spill / restore should avoid modifying the condition register. | Evan Cheng | 2007-02-07 | 1 | -34/+35 | |
| | | | | llvm-svn: 33971 | |||||
* | foldMemoryOperand() cannot fold tMOVrr sp into load / store in thumb mode. ↵ | Evan Cheng | 2007-02-06 | 1 | -13/+19 | |
| | | | | | | tLDRspi / tSTRspi cannot target / store high registers. llvm-svn: 33958 | |||||
* | eliminateFrameIndex() bug when frame pointer is used as base register. | Evan Cheng | 2007-02-06 | 1 | -23/+27 | |
| | | | | llvm-svn: 33945 | |||||
* | bugfix: SP isn't resetted when function has FP and there is no spills. | Lauro Ramos Venancio | 2007-02-02 | 1 | -2/+3 | |
| | | | | llvm-svn: 33800 | |||||
* | Another thumb large stack offset codegen bug. | Evan Cheng | 2007-02-02 | 1 | -5/+13 | |
| | | | | llvm-svn: 33795 | |||||
* | Ugh. Only meant to do this in thumb mode. | Evan Cheng | 2007-02-02 | 1 | -5/+10 | |
| | | | | llvm-svn: 33780 | |||||
* | Also set alignment of stack-based structs to 4 in thumb mode. | Evan Cheng | 2007-02-01 | 1 | -2/+1 | |
| | | | | llvm-svn: 33741 | |||||
* | Special epilogue for vararg functions. We cannot do a pop to pc because | Evan Cheng | 2007-02-01 | 1 | -4/+20 | |
| | | | | | | | | | | | there follows a sp increment for the va register save region. Instead issue a separate pop to another register, increment sp, and then return: pop {r4, r5, r6, r7} pop {r3} add sp, #3 * 4 bx r3 llvm-svn: 33739 | |||||
* | Don't want to add FramePtr to callee save spill list twice. | Evan Cheng | 2007-01-31 | 1 | -8/+2 | |
| | | | | llvm-svn: 33727 | |||||
* | Darwin ABI requires FP to point to stack slot of prev FP. | Evan Cheng | 2007-01-31 | 1 | -3/+14 | |
| | | | | llvm-svn: 33724 | |||||
* | Update comment. | Evan Cheng | 2007-01-31 | 1 | -1/+1 | |
| | | | | llvm-svn: 33721 | |||||
* | ARM fix: Miscompilation when frame pointer can't be eliminated. ↵ | Lauro Ramos Venancio | 2007-01-31 | 1 | -10/+9 | |
| | | | | | | Uninitialized frame pointer register is used. llvm-svn: 33703 | |||||
* | During PEI, if the immediate value of sp + offset is too large (i.e. something | Evan Cheng | 2007-01-30 | 1 | -21/+102 | |
| | | | | | | | that would require > 3 instructions to materialize), load the immediate from a constpool entry. llvm-svn: 33667 | |||||
* | In thumb mode, round up stack frame size to multiple of 4 since add/sub | Evan Cheng | 2007-01-30 | 1 | -115/+124 | |
| | | | | | | sp, imm instructions implicitly multiply the offset by 4. llvm-svn: 33653 | |||||
* | Thumb eliminateFrameIndex fixes. | Evan Cheng | 2007-01-30 | 1 | -8/+27 | |
| | | | | llvm-svn: 33652 | |||||
* | - In thumb mode, if size of MachineFunction is >= 2048, force LR to be | Evan Cheng | 2007-01-30 | 1 | -3/+17 | |
| | | | | | | | | | | | | | spilled (if it is not already). - If LR is spilled, use BL to implement far jumps. LR is not used as a GPR in thumb mode so it can be clobbered if it is properly spilled / restored in prologue / epilogue. - If LR is force spilled but no far jump has been emitted, try undo'ing the spill by: push lr -> delete pop pc -> bx lr llvm-svn: 33650 | |||||
* | Remember if LR register has been spilled in this function. | Evan Cheng | 2007-01-29 | 1 | -1/+5 | |
| | | | | llvm-svn: 33632 | |||||
* | Represent tADDspi and tSUBspi as two-address instructions. | Evan Cheng | 2007-01-26 | 1 | -1/+1 | |
| | | | | llvm-svn: 33551 | |||||
* | I am an idiot. | Evan Cheng | 2007-01-25 | 1 | -1/+1 | |
| | | | | llvm-svn: 33509 | |||||
* | PEI is now responsible for adding MaxCallFrameSize to frame size and align ↵ | Evan Cheng | 2007-01-23 | 1 | -15/+0 | |
| | | | | | | the stack. Each target can further adjust the frame size if necessary. llvm-svn: 33460 | |||||
* | hasFP() is now a virtual method of MRegisterInfo. | Evan Cheng | 2007-01-23 | 1 | -1/+1 | |
| | | | | llvm-svn: 33455 | |||||
* | Round up stack to multiple of alignment only if it's a leaf function without ↵ | Evan Cheng | 2007-01-20 | 1 | -4/+7 | |
| | | | | | | alloca. llvm-svn: 33401 | |||||
* | Prologue and epilogue bugs for non-Darwin targets. | Evan Cheng | 2007-01-20 | 1 | -22/+46 | |
| | | | | llvm-svn: 33390 |