Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Move some more instruction creation methods from RegisterInfo into InstrInfo. | Owen Anderson | 2008-01-01 | 1 | -4/+4 |
| | | | | llvm-svn: 45484 | ||||
* | Rename SSARegMap -> MachineRegisterInfo in keeping with the idea | Chris Lattner | 2007-12-31 | 1 | -4/+5 |
| | | | | | | | | | | | | | | that "machine" classes are used to represent the current state of the code being compiled. Given this expanded name, we can start moving other stuff into it. For now, move the UsedPhysRegs and LiveIn/LoveOuts vectors from MachineFunction into it. Update all the clients to match. This also reduces some needless #includes, such as MachineModuleInfo from MachineFunction. llvm-svn: 45467 | ||||
* | MachineOperand::getImmedValue -> MachineOperand::getImm | Chris Lattner | 2007-12-30 | 1 | -2/+2 |
| | | | | llvm-svn: 45454 | ||||
* | Remove attribution from file headers, per discussion on llvmdev. | Chris Lattner | 2007-12-29 | 1 | -2/+2 |
| | | | | llvm-svn: 45418 | ||||
* | Add a argument to storeRegToStackSlot and storeRegToAddr to specify whether | Evan Cheng | 2007-12-05 | 1 | -1/+1 |
| | | | | | | the stored register is killed. llvm-svn: 44600 | ||||
* | Long live the exception handling! | Anton Korobeynikov | 2007-07-14 | 1 | -2/+2 |
| | | | | | | | | | | | | | | | 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 | ||||
* | Fix PR1424. | Lauro Ramos Venancio | 2007-05-31 | 1 | -1/+1 |
| | | | | | | | When a function has FP, the register scavenging spill slot offset already was calculated. llvm-svn: 37371 | ||||
* | Drop 'const' | Devang Patel | 2007-05-03 | 1 | -2/+2 |
| | | | | llvm-svn: 36662 | ||||
* | Use 'static const char' instead of 'static const int'. | Devang Patel | 2007-05-02 | 1 | -2/+2 |
| | | | | | | | Due to darwin gcc bug, one version of darwin linker coalesces static const int, which defauts PassID based pass identification. llvm-svn: 36652 | ||||
* | Do not use typeinfo to identify pass in pass manager. | Devang Patel | 2007-05-01 | 1 | -0/+4 |
| | | | | llvm-svn: 36632 | ||||
* | If call frame is not part of stack frame and no dynamic alloc, ↵ | Evan Cheng | 2007-05-01 | 1 | -14/+44 |
| | | | | | | eliminateFrameIndex() must adjust SP offset with size of call frames. llvm-svn: 36625 | ||||
* | Under normal circumstances, when a frame pointer is not required, we reserve | Evan Cheng | 2007-05-01 | 1 | -17/+14 |
| | | | | | | | | | | | | 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 | ||||
* | Match MachineFunction::UsedPhysRegs changes. | Evan Cheng | 2007-04-25 | 1 | -3/+2 |
| | | | | llvm-svn: 36452 | ||||
* | support for >4G stack frames | Chris Lattner | 2007-04-25 | 1 | -1/+1 |
| | | | | llvm-svn: 36425 | ||||
* | support > 4G stack objects | Chris Lattner | 2007-04-25 | 1 | -2/+2 |
| | | | | llvm-svn: 36422 | ||||
* | Fix a bug introduced with my previous patch, where it didn't correctly handle | Chris Lattner | 2007-04-09 | 1 | -7/+9 |
| | | | | | | | instructions which replace themselves when FI's are rewritten (common on ppc). This fixes CodeGen/PowerPC/2006-10-17-ppc64-alloca.ll llvm-svn: 35789 | ||||
* | Fix CodeGen/Generic/2007-04-08-MultipleFrameIndices.ll and PR1308: | Chris Lattner | 2007-04-09 | 1 | -1/+5 |
| | | | | | | | some instructions can have multiple frame indices in them. If this happens, rewrite all of them. llvm-svn: 35785 | ||||
* | If target decides to create an emergency spill slot, make sure it's closest ↵ | Evan Cheng | 2007-03-06 | 1 | -7/+56 |
| | | | | | | to SP or frame pointer. llvm-svn: 34965 | ||||
* | Delete register scavenger when done with it. | Evan Cheng | 2007-03-01 | 1 | -0/+2 |
| | | | | llvm-svn: 34786 | ||||
* | Interface clean up. | Evan Cheng | 2007-03-01 | 1 | -1/+1 |
| | | | | llvm-svn: 34772 | ||||
* | add a newline at end of file | Chris Lattner | 2007-02-28 | 1 | -0/+1 |
| | | | | llvm-svn: 34735 | ||||
* | Make requiresRegisterScavenging determination on a per MachineFunction basis. | Evan Cheng | 2007-02-28 | 1 | -1/+1 |
| | | | | llvm-svn: 34711 | ||||
* | MRegisterInfo disowns RegScavenger. It's immutable. | Evan Cheng | 2007-02-28 | 1 | -2/+2 |
| | | | | llvm-svn: 34706 | ||||
* | Let MRegisterInfo now owns RegScavenger. | Evan Cheng | 2007-02-27 | 1 | -3/+3 |
| | | | | llvm-svn: 34691 | ||||
* | forward() should not increment internal iterator. Its client may insert ↵ | Evan Cheng | 2007-02-27 | 1 | -1/+1 |
| | | | | | | instruction between now and next forward() call. llvm-svn: 34649 | ||||
* | First potential client of register scavenger. | Evan Cheng | 2007-02-23 | 1 | -4/+13 |
| | | | | llvm-svn: 34516 | ||||
* | Change the MachineDebugInfo to MachineModuleInfo to better reflect usage | Jim Laskey | 2007-01-26 | 1 | -3/+3 |
| | | | | | | for debugging and exception handling. llvm-svn: 33550 | ||||
* | Added a MRegisterInfo hook that tells PEI the target is responsible for | Evan Cheng | 2007-01-25 | 1 | -2/+3 |
| | | | | | | rounding the stack frame to a multiple of stack alignment. llvm-svn: 33504 | ||||
* | PEI is now responsible for adding MaxCallFrameSize to frame size and align ↵ | Evan Cheng | 2007-01-23 | 1 | -1/+16 |
| | | | | | | the stack. Each target can further adjust the frame size if necessary. llvm-svn: 33460 | ||||
* | Remove an unused variable. | Evan Cheng | 2007-01-20 | 1 | -1/+0 |
| | | | | llvm-svn: 33396 | ||||
* | We not align the final stack slot but instead let the target do so in ↵ | Evan Cheng | 2007-01-20 | 1 | -7/+0 |
| | | | | | | emitPrologue(). Each target can make adjustments to the stack frame and re-align the stack as it deem appropriate. Do not align it twice which can end up wasting stack space. llvm-svn: 33387 | ||||
* | - Fixing naming inconsistency: calleesave -> calleesaved. | Evan Cheng | 2007-01-02 | 1 | -24/+30 |
| | | | | | | - Make use of spillCalleeSavedRegisters() and restoreCalleeSavedRegisters(). llvm-svn: 32822 | ||||
* | Initialize {Min|Max}CSFrameIndex properly. | Evan Cheng | 2006-12-07 | 1 | -2/+4 |
| | | | | llvm-svn: 32299 | ||||
* | TargetRegisterClass specifies the desired spill alignment. However, it ↵ | Evan Cheng | 2006-09-28 | 1 | -1/+6 |
| | | | | | | cannot be honored if stack alignment is smaller. llvm-svn: 30648 | ||||
* | PEI now place callee save spills closest to the address pointed to by the | Evan Cheng | 2006-09-28 | 1 | -11/+67 |
| | | | | | | | incoming stack. This allows X86 backend to use push / pop in epilogue / prologue. llvm-svn: 30636 | ||||
* | Rename function. It's determining which callee-save registers to save. | Evan Cheng | 2006-09-26 | 1 | -7/+7 |
| | | | | llvm-svn: 30616 | ||||
* | s|llvm/Support/Visibility.h|llvm/Support/Compiler.h| | Chris Lattner | 2006-08-27 | 1 | -1/+1 |
| | | | | llvm-svn: 29911 | ||||
* | Tidy up. | Jim Laskey | 2006-08-25 | 1 | -2/+4 |
| | | | | llvm-svn: 29888 | ||||
* | Consolidate callee saved register information so that it can me used by debug | Jim Laskey | 2006-08-25 | 1 | -20/+21 |
| | | | | | | information and exception handling. llvm-svn: 29881 | ||||
* | Shave another 27K off libllvmgcc.dylib with visibility hidden | Chris Lattner | 2006-06-28 | 1 | -1/+2 |
| | | | | llvm-svn: 28973 | ||||
* | Remove dead variable | Chris Lattner | 2006-05-12 | 1 | -1/+0 |
| | | | | llvm-svn: 28253 | ||||
* | Foundation for call frame information. | Jim Laskey | 2006-04-07 | 1 | -0/+6 |
| | | | | llvm-svn: 27491 | ||||
* | The stack alignment is now computed dynamically, just verify it is correct. | Chris Lattner | 2006-04-03 | 1 | -1/+2 |
| | | | | llvm-svn: 27380 | ||||
* | Always compute max align. | Chris Lattner | 2005-11-06 | 1 | -6/+5 |
| | | | | llvm-svn: 24227 | ||||
* | Add the necessary support to the ISel to allow targets to codegen the new | Nate Begeman | 2005-11-06 | 1 | -3/+11 |
| | | | | | | | | alignment information appropriately. Includes code for PowerPC to support fixed-size allocas with alignment larger than the stack. Support for arbitrarily aligned dynamic allocas coming soon. llvm-svn: 24224 | ||||
* | now that we have a reg class to spill with, get this info from the regclass | Chris Lattner | 2005-09-30 | 1 | -4/+3 |
| | | | | llvm-svn: 23559 | ||||
* | Now that we have getCalleeSaveRegClasses() info, use it to pass the register | Chris Lattner | 2005-09-30 | 1 | -8/+11 |
| | | | | | | class into the spill/reload methods. Targets can now rely on that argument. llvm-svn: 23556 | ||||
* | Change this code ot pass register classes into the stack slot spiller/reloader | Chris Lattner | 2005-09-30 | 1 | -2/+4 |
| | | | | | | | code. PrologEpilogInserter hasn't been updated yet though, so targets cannot use this info. llvm-svn: 23536 | ||||
* | Fix a bug in my previous patch that was using the wrong iterator. This fixes | Chris Lattner | 2005-08-29 | 1 | -1/+1 |
| | | | | | | Olden/bisort among others. llvm-svn: 23124 | ||||
* | Make this code safe for when loadRegFromStackSlot inserts multiple instructions. | Chris Lattner | 2005-08-26 | 1 | -1/+13 |
| | | | | llvm-svn: 23108 |