summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/SystemZ/SystemZRegisterInfo.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Sink getDwarfRegNum, getLLVMRegNum, getSEHRegNum from TargetRegisterInfo downEvan Cheng2011-07-181-16/+1
| | | | | | | | | to MCRegisterInfo. Also initialize the mapping at construction time. This patch eliminate TargetRegisterInfo from TargetAsmInfo. It's another step towards fixing the layering violation. llvm-svn: 135424
* Next round of MC refactoring. This patch factor MC table instantiations, MCEvan Cheng2011-07-141-1/+0
| | | | | | registeration and creation code into XXXMCDesc libraries. llvm-svn: 135184
* Move CallFrameSetupOpcode and CallFrameDestroyOpcode to TargetInstrInfo.Evan Cheng2011-06-281-2/+1
| | | | llvm-svn: 134030
* Hide more details in tablegen generated MCRegisterInfo ctor function.Evan Cheng2011-06-281-2/+1
| | | | llvm-svn: 134027
* Merge XXXGenRegisterDesc.inc XXXGenRegisterNames.inc XXXGenRegisterInfo.h.incEvan Cheng2011-06-271-1/+4
| | | | | | into XXXGenRegisterInfo.inc. llvm-svn: 133922
* Starting to refactor Target to separate out code that's needed to fully describeEvan Cheng2011-06-241-4/+4
| | | | | | | | | | | | target machine from those that are only needed by codegen. The goal is to sink the essential target description into MC layer so we can start building MC based tools without needing to link in the entire codegen. First step is to refactor TargetRegisterInfo. This patch added a base class MCRegisterInfo which TargetRegisterInfo is derived from. Changed TableGen to separate register description from the rest of the stuff. llvm-svn: 133782
* Remove custom allocation orders in SystemZ.Jakob Stoklund Olesen2011-06-151-1/+11
| | | | | | | | | | | | | | | | | | Note that this actually changes code generation, and someone who understands this target better should check the changes. - R12Q is now allocatable. I think it was omitted from the allocation order by mistake since it isn't reserved. It as apparently used as a GOT pointer sometimes, and it should probably be reserved if that is the case. - The GR64 registers are allocated in a different order now. The register allocator will automatically put the CSRs last. There were other changes to the order that may have been significant. The test fix is because r0 and r1 swapped places in the allocation order. llvm-svn: 133067
* Use the dwarf->llvm mapping to print register names in the cfiRafael Espindola2011-05-301-0/+6
| | | | | | | | directives. Fixes PR9826. llvm-svn: 132317
* Implement SystemZRegisterInfo::getMatchingSuperRegClass to enable ↵Jakob Stoklund Olesen2011-05-041-0/+14
| | | | | | cross-class joins. llvm-svn: 130857
* Rename TargetFrameInfo into TargetFrameLowering. Also, put couple of FIXMEs ↵Anton Korobeynikov2011-01-101-3/+3
| | | | | | and fixes here and there. llvm-svn: 123170
* Move more PEI-related hooks to TFIAnton Korobeynikov2010-11-271-35/+0
| | | | llvm-svn: 120229
* Move some more hooks to TargetFrameInfoAnton Korobeynikov2010-11-201-23/+1
| | | | llvm-svn: 119904
* Move hasFP() and few related hooks to TargetFrameInfo.Anton Korobeynikov2010-11-181-10/+6
| | | | llvm-svn: 119740
* First step of huge frame-related refactoring: move emit{Prologue,Epilogue} ↵Anton Korobeynikov2010-11-151-137/+0
| | | | | | out of TargetRegisterInfo to TargetFrameInfo, which is definitely much better suitable place llvm-svn: 119097
* Simplify eliminateFrameIndex() interface back down now that PEI doesn't needJim Grosbach2010-08-261-5/+4
| | | | | | to try to re-use scavenged frame index reference registers. rdar://8277890 llvm-svn: 112241
* cleanupRafael Espindola2010-06-021-16/+0
| | | | llvm-svn: 105322
* SystemZ really does mean "has calls" and not just "adjusts stack." Go ahead andBill Wendling2010-05-141-5/+5
| | | | | | | | replace the check with the appropriate predicate. Modify the testcase to reflect the correct code. (It should be saving callee-saved registers on the stack allocated by the calling fuction.) llvm-svn: 103829
* Rename "HasCalls" in MachineFrameInfo to "AdjustsStack" to better describe whatBill Wendling2010-05-141-5/+5
| | | | | | | | | the variable actually tracks. N.B., several back-ends are using "HasCalls" as being synonymous for something that adjusts the stack. This isn't 100% correct and should be looked into. llvm-svn: 103802
* Implement -disable-non-leaf-fp-elim which disable frame pointer eliminationEvan Cheng2010-04-211-1/+1
| | | | | | | optimization for non-leaf functions. This will be hooked up to gcc's -momit-leaf-frame-pointer option. rdar://7886181 llvm-svn: 101984
* Fix a number of clang -Wsign-compare warnings that didn't have an obviousJohn McCall2010-04-061-1/+1
| | | | | | | solution. The only reason these don't fire with gcc-4.2 is that gcc turns off part of -Wsign-compare in C++ on accident. llvm-svn: 100581
* use DebugLoc default ctor instead of DebugLoc::getUnknownLoc()Chris Lattner2010-04-021-4/+2
| | | | llvm-svn: 100214
* Change the Value argument to eliminateFrameIndex to a type-tagged value. ThisJim Grosbach2010-03-091-1/+1
| | | | | | | | | | is preparatory to having PEI's scavenged frame index value reuse logic properly distinguish types of frame values (e.g., whether the value is stack-pointer relative or frame-pointer relative). No functionality change. llvm-svn: 98086
* constify a method argument.Chris Lattner2010-01-261-3/+4
| | | | llvm-svn: 94612
* improve portability to avoid conflicting with std::next in c++'0x.Chris Lattner2009-12-031-1/+1
| | | | | | Patch by Howard Hinnant! llvm-svn: 90365
* Make the MachineFunction argument of getFrameRegister const.David Greene2009-11-121-1/+2
| | | | | | This also fixes a build error. llvm-svn: 87027
* Add register-reuse to frame-index register scavenging. When a target usesJim Grosbach2009-10-071-2/+5
| | | | | | | | | | | | | | | | | | | | a virtual register to eliminate a frame index, it can return that register and the constant stored there to PEI to track. When scavenging to allocate for those registers, PEI then tracks the last-used register and value, and if it is still available and matches the value for the next index, reuses the existing value rather and removes the re-materialization instructions. Fancier tracking and adjustment of scavenger allocations to keep more values live for longer is possible, but not yet implemented and would likely be better done via a different, less special-purpose, approach to the problem. eliminateFrameIndex() is modified so the target implementations can return the registers they wish to be tracked for reuse. ARM Thumb1 implements and utilizes the new mechanism. All other targets are simply modified to adjust for the changed eliminateFrameIndex() prototype. llvm-svn: 83467
* Remove some unused variables and methods warned about byDuncan Sands2009-09-061-1/+0
| | | | | | icc (#177, partial). Patch by Erick Tryzelaar. llvm-svn: 81106
* Handle long-disp stuff more consistentlyAnton Korobeynikov2009-07-161-6/+22
| | | | llvm-svn: 76059
* Fix incomin arg stack frame offset in case we need to generate stack frameAnton Korobeynikov2009-07-161-1/+1
| | | | llvm-svn: 76049
* Handle FP callee-saved regsAnton Korobeynikov2009-07-161-4/+22
| | | | llvm-svn: 76029
* Add FP regsAnton Korobeynikov2009-07-161-1/+1
| | | | llvm-svn: 76013
* Missed part of prev. patchAnton Korobeynikov2009-07-161-1/+3
| | | | llvm-svn: 76008
* Another attempt to fix prologue emissionAnton Korobeynikov2009-07-161-8/+12
| | | | llvm-svn: 76007
* Properly generate stack frameAnton Korobeynikov2009-07-161-5/+5
| | | | llvm-svn: 75998
* Do not forget to save R15 when we allocate stack frameAnton Korobeynikov2009-07-161-1/+2
| | | | llvm-svn: 75995
* Stupid typoAnton Korobeynikov2009-07-161-1/+1
| | | | llvm-svn: 75992
* Fix fallout from 12-bit stuff landing: decide whether 20 bit displacements ↵Anton Korobeynikov2009-07-161-2/+8
| | | | | | are needed during elimination of frame indexes. llvm-svn: 75989
* We already have reserved call frame regardless whether variable sized frame ↵Anton Korobeynikov2009-07-161-15/+0
| | | | | | objects were present or not llvm-svn: 75987
* Implement dynamic allocasAnton Korobeynikov2009-07-161-1/+7
| | | | llvm-svn: 75985
* Emit callee-saved regs spills / restoresAnton Korobeynikov2009-07-161-18/+50
| | | | llvm-svn: 75943
* Some preliminary call loweringAnton Korobeynikov2009-07-161-5/+31
| | | | llvm-svn: 75941
* Prologue / epilogue emissionAnton Korobeynikov2009-07-161-2/+90
| | | | llvm-svn: 75940
* Add simple frame index eliminationAnton Korobeynikov2009-07-161-1/+39
| | | | llvm-svn: 75939
* Add 32 bit subregsAnton Korobeynikov2009-07-161-5/+5
| | | | llvm-svn: 75923
* Let's start another backend :)Anton Korobeynikov2009-07-161-0/+119
llvm-svn: 75909
OpenPOWER on IntegriCloud