| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | Change instruction description to split OperandList into OutOperandList and | Evan Cheng | 2007-07-19 | 1 | -2/+2 |
| | | | | | | | | | | | | | | | | InOperandList. This gives one piece of important information: # of results produced by an instruction. An example of the change: def ADD32rr : I<0x01, MRMDestReg, (ops GR32:$dst, GR32:$src1, GR32:$src2), "add{l} {$src2, $dst|$dst, $src2}", [(set GR32:$dst, (add GR32:$src1, GR32:$src2))]>; => def ADD32rr : I<0x01, MRMDestReg, (outs GR32:$dst), (ins GR32:$src1, GR32:$src2), "add{l} {$src2, $dst|$dst, $src2}", [(set GR32:$dst, (add GR32:$src1, GR32:$src2))]>; llvm-svn: 40033 | ||||
| * | Only adjust esp around calls in presence of alloca. | Evan Cheng | 2007-07-19 | 1 | -1/+1 |
| | | | | | llvm-svn: 40030 | ||||
| * | Long live the exception handling! | Anton Korobeynikov | 2007-07-14 | 1 | -2/+3 |
| | | | | | | | | | | | | | | | | This patch fills the last necessary bits to enable exceptions handling in LLVM. Currently only on x86-32/linux. In fact, this patch adds necessary intrinsics (and their lowering) which represent really weird target-specific gcc builtins used inside unwinder. After corresponding llvm-gcc patch will land (easy) exceptions should be more or less workable. However, exceptions handling support should not be thought as 'finished': I expect many small and not so small glitches everywhere. llvm-svn: 39855 | ||||
| * | Remove clobbersPred. Add an OptionalDefOperand to instructions which have ↵ | Evan Cheng | 2007-07-10 | 1 | -5/+9 |
| | | | | | | | the 's' bit. llvm-svn: 38501 | ||||
| * | Added ARM::CPSR to represent ARM CPSR status register. | Evan Cheng | 2007-07-05 | 1 | -49/+59 |
| | | | | | llvm-svn: 37894 | ||||
| * | Add missing const qualifiers. | Evan Cheng | 2007-05-29 | 1 | -3/+3 |
| | | | | | llvm-svn: 37342 | ||||
| * | Add PredicateOperand to all ARM instructions that have the condition field. | Evan Cheng | 2007-05-15 | 1 | -48/+77 |
| | | | | | llvm-svn: 37066 | ||||
| * | Fix PR1390 in a better way. | Lauro Ramos Venancio | 2007-05-07 | 1 | -12/+41 |
| | | | | | llvm-svn: 36916 | ||||
| * | Fix PR1390. | Lauro Ramos Venancio | 2007-05-05 | 1 | -38/+10 |
| | | | | | | | Don't spill extra register to align the stack. llvm-svn: 36814 | ||||
| * | Debug support for arm-linux. | Lauro Ramos Venancio | 2007-05-03 | 1 | -0/+5 |
| | | | | | | | Patch by Raul Herbster. llvm-svn: 36690 | ||||
| * | eliminateFrameIndex() change. | Evan Cheng | 2007-05-01 | 1 | -3/+4 |
| | | | | | llvm-svn: 36626 | ||||
| * | Under normal circumstances, when a frame pointer is not required, we reserve | Evan Cheng | 2007-05-01 | 1 | -3/+27 |
| | | | | | | | | | | | | | argument space for call sites in the function immediately on entry to the current function. This eliminates the need for add/sub sp brackets around call sites. However, this is not always a good idea. If the "call frame" is large and the target load / store instructions have small immediate field to encode sp offset, this can cause poor codegen. In the worst case, this can make it impossible to scavenge a register if the reserved spill slot is pushed too far apart from sp / fp. llvm-svn: 36607 | ||||
| * | add parenthesis. | Lauro Ramos Venancio | 2007-04-27 | 1 | -2/+2 |
| | | | | | llvm-svn: 36514 | ||||
| * | In Thumb mode, the frame register must be R7. | Lauro Ramos Venancio | 2007-04-27 | 1 | -2/+2 |
| | | | | | llvm-svn: 36512 | ||||
| * | Match MachineFunction::UsedPhysRegs changes. | Evan Cheng | 2007-04-25 | 1 | -9/+6 |
| | | | | | llvm-svn: 36452 | ||||
| * | Fix a bug in getFrameRegister. | Lauro Ramos Venancio | 2007-04-19 | 1 | -1/+4 |
| | | | | | | | Reported by Raul Herbster. llvm-svn: 36262 | ||||
| * | 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 | ||||

