[llvm-commits] CVS: llvm/lib/Target/IA64/IA64.td IA64RegisterInfo.cpp IA64RegisterInfo.h

Evan Cheng evan.cheng at apple.com
Wed May 17 17:12:24 PDT 2006



Changes in directory llvm/lib/Target/IA64:

IA64.td updated: 1.8 -> 1.9
IA64RegisterInfo.cpp updated: 1.19 -> 1.20
IA64RegisterInfo.h updated: 1.7 -> 1.8
---
Log message:

getCalleeSaveRegs and getCalleeSaveRegClasses are no long TableGen'd.

---
Diffs of the changes:  (+19 -60)

 IA64.td              |   60 ---------------------------------------------------
 IA64RegisterInfo.cpp |   15 ++++++++++++
 IA64RegisterInfo.h   |    4 +++
 3 files changed, 19 insertions(+), 60 deletions(-)


Index: llvm/lib/Target/IA64/IA64.td
diff -u llvm/lib/Target/IA64/IA64.td:1.8 llvm/lib/Target/IA64/IA64.td:1.9
--- llvm/lib/Target/IA64/IA64.td:1.8	Wed May 17 16:18:48 2006
+++ llvm/lib/Target/IA64/IA64.td	Wed May 17 19:12:11 2006
@@ -31,66 +31,6 @@
 def IA64InstrInfo : InstrInfo { }
 
 def IA64 : Target {
-  // The following registers are always saved across calls:
-  let CalleeSavedRegisters = 
-  
-  //'preserved' GRs:
-  
-  [
-    r5 // the 'frame pointer' (base pointer) reg
-
-    // We never generate references to these regs, so we don't need to declare
-    // that they are saved.  In fact, we could just remove them entirely.
-    //r4, r6, r7,
-  
-  //'special' GRs:
-
-//  r1, // global data pointer (GP)  - XXX NOT callee saved, we do it ourselves
-//  r12, // memory stack pointer (SP)- XXX NOT callee saved, we do it ourselves
-//  rp, // return branch register (rp/b0) - we do this ourselves
-  // **** r13 (thread pointer) we do not touch, ever. it's not here. ****//
-  
-  //'stacked' GRs the RSE takes care of, we don't worry about
-/* We don't want PEI::calculateCallerSavedRegisters to worry about them,
-  since the RSE takes care of them (and we determinethe appropriate
-  'alloc' instructions and save/restore ar.pfs ourselves, in instruction
-  selection)
-
-**************************************************************************  
-*  r32, r33, r34, r35,
-*  r36, r37, r38, r39, r40, r41, r42, r43, r44, r45, r46, r47,
-*  r48, r49, r50, r51, r52, r53, r54, r55, r56, r57, r58, r59,
-*  r60, r61, r62, r63, r64, r65, r66, r67, r68, r69, r70, r71,
-*  r72, r73, r74, r75, r76, r77, r78, r79, r80, r81, r82, r83,
-*  r84, r85, r86, r87, r88, r89, r90, r91, r92, r93, r94, r95,
-*  r96, r97, r98, r99, r100, r101, r102, r103, r104, r105, r106, r107,
-*  r108, r109, r110, r111, r112, r113, r114, r115, r116, r117, r118, r119,
-*  r120, r121, r122, r123, r124, r125, r126, r127,	
-**************************************************************************
-*/
-  //'preserved' FP regs:
-
-  /* We never generate references to these regs, so we don't need to declare
-   * that they are saved.  In fact, we could just remove them entirely.
-   * F2,F3,F4, F5,
-   * F16,F17,F18,F19,F20,F21,F22,F23,
-   * F24,F25,F26,F27,F28,F29,F30,F31,
-   */
-  
-  //'preserved' predicate regs:
-
-  /* We never generate references to these regs, so we don't need to declare
-    that they are saved.  In fact, we could just remove them entirely.
-    p1, p2, p3, p4, p5,
-    p16, p17, p18, p19, p20, p21, p22, p23,
-    p24, p25, p26, p27, p28, p29, p30, p31,
-    p32, p33, p34, p35, p36, p37, p38, p39,
-    p40, p41, p42, p43, p44, p45, p46, p47,
-    p48, p49, p50, p51, p52, p53, p54, p55,
-    p56, p57, p58, p59, p60, p61, p62, p63
-   */
-  ];
-
   // Our instruction set
   let InstructionSet = IA64InstrInfo;
 


Index: llvm/lib/Target/IA64/IA64RegisterInfo.cpp
diff -u llvm/lib/Target/IA64/IA64RegisterInfo.cpp:1.19 llvm/lib/Target/IA64/IA64RegisterInfo.cpp:1.20
--- llvm/lib/Target/IA64/IA64RegisterInfo.cpp:1.19	Thu May  4 12:52:23 2006
+++ llvm/lib/Target/IA64/IA64RegisterInfo.cpp	Wed May 17 19:12:11 2006
@@ -90,6 +90,21 @@
     BuildMI(MBB, MI, IA64::MOV, 1, DestReg).addReg(SrcReg);
 }
 
+const unsigned* IA64RegisterInfo::getCalleeSaveRegs() const {
+  static const unsigned CalleeSaveRegs[] = {
+    IA64::r5,  0
+  };
+  return CalleeSaveRegs;
+}
+
+const TargetRegisterClass* const*
+IA64RegisterInfo::getCalleeSaveRegClasses() const {
+  static const TargetRegisterClass * const CalleeSaveRegClasses[] = {
+    &IA64::GRRegClass,  0
+  };
+  return CalleeSaveRegClasses;
+}
+
 //===----------------------------------------------------------------------===//
 // Stack Frame Processing methods
 //===----------------------------------------------------------------------===//


Index: llvm/lib/Target/IA64/IA64RegisterInfo.h
diff -u llvm/lib/Target/IA64/IA64RegisterInfo.h:1.7 llvm/lib/Target/IA64/IA64RegisterInfo.h:1.8
--- llvm/lib/Target/IA64/IA64RegisterInfo.h:1.7	Fri Apr  7 11:34:45 2006
+++ llvm/lib/Target/IA64/IA64RegisterInfo.h	Wed May 17 19:12:11 2006
@@ -40,6 +40,10 @@
                     unsigned DestReg, unsigned SrcReg,
                     const TargetRegisterClass *RC) const;
 
+  const unsigned *getCalleeSaveRegs() const;
+
+  const TargetRegisterClass* const* getCalleeSaveRegClasses() const;
+
   void eliminateCallFramePseudoInstr(MachineFunction &MF,
                                      MachineBasicBlock &MBB,
                                      MachineBasicBlock::iterator MI) const;






More information about the llvm-commits mailing list