[llvm-commits] CVS: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp

2007-02-13 Thread Chris Lattner


Changes in directory llvm/lib/Target/Sparc:

SparcAsmPrinter.cpp updated: 1.76 - 1.77
---
Log message:

Generalize TargetData strings, to support more interesting forms of data.
Patch by Scott Michel.


---
Diffs of the changes:  (+1 -1)

 SparcAsmPrinter.cpp |2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)


Index: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
diff -u llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.76 
llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.77
--- llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.76  Sat Jan 20 16:35:55 2007
+++ llvm/lib/Target/Sparc/SparcAsmPrinter.cpp   Tue Feb 13 23:52:17 2007
@@ -229,7 +229,7 @@
   std::string name = Mang-getValueName(I);
   Constant *C = I-getInitializer();
   unsigned Size = TD-getTypeSize(C-getType());
-  unsigned Align = TD-getTypeAlignmentPref(C-getType());
+  unsigned Align = TD-getPrefTypeAlignment(C-getType());
 
   if (C-isNullValue() 
   (I-hasLinkOnceLinkage() || I-hasInternalLinkage() ||



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp

2007-01-20 Thread Chris Lattner


Changes in directory llvm/lib/Target/Sparc:

SparcAsmPrinter.cpp updated: 1.75 - 1.76
---
Log message:

Teach TargetData to handle 'preferred' alignment for each target, and use 
these alignment amounts to align scalars when we can.  Patch by Scott Michel!



---
Diffs of the changes:  (+2 -2)

 SparcAsmPrinter.cpp |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)


Index: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
diff -u llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.75 
llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.76
--- llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.75  Tue Dec 19 16:59:26 2006
+++ llvm/lib/Target/Sparc/SparcAsmPrinter.cpp   Sat Jan 20 16:35:55 2007
@@ -229,7 +229,7 @@
   std::string name = Mang-getValueName(I);
   Constant *C = I-getInitializer();
   unsigned Size = TD-getTypeSize(C-getType());
-  unsigned Align = TD-getTypeAlignment(C-getType());
+  unsigned Align = TD-getTypeAlignmentPref(C-getType());
 
   if (C-isNullValue() 
   (I-hasLinkOnceLinkage() || I-hasInternalLinkage() ||
@@ -239,7 +239,7 @@
   O  \t.local   name  \n;
 
 O  \t.comm   name  ,  TD-getTypeSize(C-getType())
-   ,  (unsigned)TD-getTypeAlignment(C-getType());
+   ,  Align;
 O  \n;
   } else {
 switch (I-getLinkage()) {



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp

2006-12-05 Thread Chris Lattner


Changes in directory llvm/lib/Target/Sparc:

SparcAsmPrinter.cpp updated: 1.71 - 1.72
---
Log message:

These asm printers shouldn't use assembly/writer.h


---
Diffs of the changes:  (+1 -6)

 SparcAsmPrinter.cpp |7 +--
 1 files changed, 1 insertion(+), 6 deletions(-)


Index: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
diff -u llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.71 
llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.72
--- llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.71  Thu Nov  2 14:25:49 2006
+++ llvm/lib/Target/Sparc/SparcAsmPrinter.cpp   Wed Dec  6 00:13:25 2006
@@ -17,7 +17,6 @@
 #include llvm/Constants.h
 #include llvm/DerivedTypes.h
 #include llvm/Module.h
-#include llvm/Assembly/Writer.h
 #include llvm/CodeGen/AsmPrinter.h
 #include llvm/CodeGen/MachineFunctionPass.h
 #include llvm/CodeGen/MachineConstantPool.h
@@ -241,8 +240,6 @@
 
 O  \t.comm   name  ,  TD-getTypeSize(C-getType())
,  (unsigned)TD-getTypeAlignment(C-getType());
-O  \t\t! ;
-WriteAsOperand(O, I, true, true, M);
 O  \n;
   } else {
 switch (I-getLinkage()) {
@@ -284,9 +281,7 @@
 O  \t.align   Align  \n;
 O  \t.type   name  ,#object\n;
 O  \t.size   name  ,  Size  \n;
-O  name  :\t\t\t\t! ;
-WriteAsOperand(O, I, true, true, M);
-O  \n;
+O  name  :\n;
 EmitGlobalConstant(C);
   }
 }



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp

2006-11-02 Thread Reid Spencer


Changes in directory llvm/lib/Target/Sparc:

SparcAsmPrinter.cpp updated: 1.70 - 1.71
---
Log message:

For PR786: http://llvm.org/PR786 :
Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting
fall out by removing unused variables. Remaining warnings have to do with
unused functions (I didn't want to delete code without review) and unused
variables in generated code. Maintainers should clean up the remaining 
issues when they see them. All changes pass DejaGnu tests and Olden.


---
Diffs of the changes:  (+0 -2)

 SparcAsmPrinter.cpp |2 --
 1 files changed, 2 deletions(-)


Index: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
diff -u llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.70 
llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.71
--- llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.70  Wed Oct  4 21:48:40 2006
+++ llvm/lib/Target/Sparc/SparcAsmPrinter.cpp   Thu Nov  2 14:25:49 2006
@@ -185,8 +185,6 @@
 return;
   }
   
-  MachineOperand::MachineOperandType OpTy = MI-getOperand(opNum+1).getType();
-  
   if (MI-getOperand(opNum+1).isRegister() 
   MI-getOperand(opNum+1).getReg() == SP::G0)
 return;   // don't print +%g0



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp

2006-10-04 Thread Chris Lattner


Changes in directory llvm/lib/Target/Sparc:

SparcAsmPrinter.cpp updated: 1.69 - 1.70
---
Log message:

Use getSectionForFunction


---
Diffs of the changes:  (+5 -3)

 SparcAsmPrinter.cpp |8 +---
 1 files changed, 5 insertions(+), 3 deletions(-)


Index: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
diff -u llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.69 
llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.70
--- llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.69  Thu Sep 14 13:23:27 2006
+++ llvm/lib/Target/Sparc/SparcAsmPrinter.cpp   Wed Oct  4 21:48:40 2006
@@ -94,15 +94,17 @@
   // What's my mangled name?
   CurrentFnName = Mang-getValueName(MF.getFunction());
 
-  // Print out labels for the function.
-  SwitchToTextSection(.text, MF.getFunction());
-  EmitAlignment(4, MF.getFunction());
+  // Print out the label for the function.
+  const Function *F = MF.getFunction();
+  SwitchToTextSection(getSectionForFunction(*F).c_str(), F);
+  EmitAlignment(4, F);
   O  \t.globl\t  CurrentFnName  \n;
   O  \t.type\t  CurrentFnName  , #function\n;
   O  CurrentFnName  :\n;
 
   // Number each basic block so that we can consistently refer to them
   // in PC-relative references.
+  // FIXME: Why not use the MBB numbers?
   NumberForBB.clear();
   for (MachineFunction::const_iterator I = MF.begin(), E = MF.end();
I != E; ++I) {



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp

2006-09-14 Thread Anton Korobeynikov


Changes in directory llvm/lib/Target/Sparc:

SparcAsmPrinter.cpp updated: 1.68 - 1.69
---
Log message:

Adding dllimport, dllexport and external weak linkage types.
DLL* linkages got full (I hope) codegeneration support in C  both x86 
assembler backends.
External weak linkage added for future use, we don't provide any 
codegeneration, etc. support for it.


---
Diffs of the changes:  (+8 -0)

 SparcAsmPrinter.cpp |8 
 1 files changed, 8 insertions(+)


Index: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
diff -u llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.68 
llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.69
--- llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.68  Thu Sep  7 17:06:40 2006
+++ llvm/lib/Target/Sparc/SparcAsmPrinter.cpp   Thu Sep 14 13:23:27 2006
@@ -271,6 +271,14 @@
 case GlobalValue::GhostLinkage:
   std::cerr  Should not have any unmaterialized functions!\n;
   abort();
+case GlobalValue::DLLImportLinkage:
+  std::cerr  DLLImport linkage is not supported by this target!\n;
+  abort();
+case GlobalValue::DLLExportLinkage:
+  std::cerr  DLLExport linkage is not supported by this target!\n;
+  abort();
+default:
+  assert(0  Unknown linkage type!);  
 }
 
 O  \t.align   Align  \n;



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp SparcTargetMachine.h

2006-09-07 Thread Jim Laskey


Changes in directory llvm/lib/Target/Sparc:

SparcAsmPrinter.cpp updated: 1.67 - 1.68
SparcTargetMachine.h updated: 1.15 - 1.16
---
Log message:

Make target asm info a property of the target machine.


---
Diffs of the changes:  (+6 -14)

 SparcAsmPrinter.cpp  |   16 ++--
 SparcTargetMachine.h |4 
 2 files changed, 6 insertions(+), 14 deletions(-)


Index: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
diff -u llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.67 
llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.68
--- llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.67  Wed Sep  6 13:34:40 2006
+++ llvm/lib/Target/Sparc/SparcAsmPrinter.cpp   Thu Sep  7 17:06:40 2006
@@ -37,19 +37,8 @@
 namespace {
   Statistic EmittedInsts(asm-printer, Number of machine instrs printed);
 
-  struct VISIBILITY_HIDDEN SparcTargetAsmInfo : public TargetAsmInfo {
-SparcTargetAsmInfo() {
-  Data16bitsDirective = \t.half\t;
-  Data32bitsDirective = \t.word\t;
-  Data64bitsDirective = 0;  // .xword is only supported by V9.
-  ZeroDirective = \t.skip\t;
-  CommentString = !;
-  ConstantPoolSection = \t.section \.rodata\,#alloc\n;
-}
-  };
-
   struct VISIBILITY_HIDDEN SparcAsmPrinter : public AsmPrinter {
-SparcAsmPrinter(std::ostream O, TargetMachine TM, TargetAsmInfo *T)
+SparcAsmPrinter(std::ostream O, TargetMachine TM, const TargetAsmInfo *T)
   : AsmPrinter(O, TM, T) {
 }
 
@@ -85,8 +74,7 @@
 ///
 FunctionPass *llvm::createSparcCodePrinterPass(std::ostream o,
TargetMachine tm) {
-  SparcTargetAsmInfo *TAI = new SparcTargetAsmInfo();
-  return new SparcAsmPrinter(o, tm, TAI);
+  return new SparcAsmPrinter(o, tm, tm.getTargetAsmInfo());
 }
 
 /// runOnMachineFunction - This uses the printMachineInstruction()


Index: llvm/lib/Target/Sparc/SparcTargetMachine.h
diff -u llvm/lib/Target/Sparc/SparcTargetMachine.h:1.15 
llvm/lib/Target/Sparc/SparcTargetMachine.h:1.16
--- llvm/lib/Target/Sparc/SparcTargetMachine.h:1.15 Sun Sep  3 23:14:57 2006
+++ llvm/lib/Target/Sparc/SparcTargetMachine.h  Thu Sep  7 17:06:40 2006
@@ -19,6 +19,7 @@
 #include llvm/Target/TargetFrameInfo.h
 #include SparcInstrInfo.h
 #include SparcSubtarget.h
+#include SparcTargetAsmInfo.h
 
 namespace llvm {
 
@@ -41,6 +42,9 @@
   virtual const TargetData   *getTargetData() const { return DataLayout; }
   static unsigned getModuleMatchQuality(const Module M);
 
+  virtual const TargetAsmInfo *createTargetAsmInfo() const {
+return static_castconst TargetAsmInfo *(new SparcTargetAsmInfo(*this));
+  }
   
   // Pass Pipeline Configuration
   virtual bool addInstSelector(FunctionPassManager PM, bool Fast);



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp

2006-09-06 Thread Jim Laskey


Changes in directory llvm/lib/Target/Sparc:

SparcAsmPrinter.cpp updated: 1.66 - 1.67
---
Log message:

Separate target specific asm properties from the asm printers.


---
Diffs of the changes:  (+12 -4)

 SparcAsmPrinter.cpp |   16 
 1 files changed, 12 insertions(+), 4 deletions(-)


Index: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
diff -u llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.66 
llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.67
--- llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.66  Fri May 12 01:33:48 2006
+++ llvm/lib/Target/Sparc/SparcAsmPrinter.cpp   Wed Sep  6 13:34:40 2006
@@ -22,6 +22,7 @@
 #include llvm/CodeGen/MachineFunctionPass.h
 #include llvm/CodeGen/MachineConstantPool.h
 #include llvm/CodeGen/MachineInstr.h
+#include llvm/Target/TargetAsmInfo.h
 #include llvm/Target/TargetData.h
 #include llvm/Target/TargetMachine.h
 #include llvm/Support/Mangler.h
@@ -36,8 +37,8 @@
 namespace {
   Statistic EmittedInsts(asm-printer, Number of machine instrs printed);
 
-  struct SparcAsmPrinter : public AsmPrinter {
-SparcAsmPrinter(std::ostream O, TargetMachine TM) : AsmPrinter(O, TM) {
+  struct VISIBILITY_HIDDEN SparcTargetAsmInfo : public TargetAsmInfo {
+SparcTargetAsmInfo() {
   Data16bitsDirective = \t.half\t;
   Data32bitsDirective = \t.word\t;
   Data64bitsDirective = 0;  // .xword is only supported by V9.
@@ -45,6 +46,12 @@
   CommentString = !;
   ConstantPoolSection = \t.section \.rodata\,#alloc\n;
 }
+  };
+
+  struct VISIBILITY_HIDDEN SparcAsmPrinter : public AsmPrinter {
+SparcAsmPrinter(std::ostream O, TargetMachine TM, TargetAsmInfo *T)
+  : AsmPrinter(O, TM, T) {
+}
 
 /// We name each basic block in a Function with a unique number, so
 /// that we can consistently refer to them later. This is cleared
@@ -78,7 +85,8 @@
 ///
 FunctionPass *llvm::createSparcCodePrinterPass(std::ostream o,
TargetMachine tm) {
-  return new SparcAsmPrinter(o, tm);
+  SparcTargetAsmInfo *TAI = new SparcTargetAsmInfo();
+  return new SparcAsmPrinter(o, tm, TAI);
 }
 
 /// runOnMachineFunction - This uses the printMachineInstruction()
@@ -167,7 +175,7 @@
 O  MO.getSymbolName();
 break;
   case MachineOperand::MO_ConstantPoolIndex:
-O  PrivateGlobalPrefix  CPI  getFunctionNumber()  _
+O  TAI-getPrivateGlobalPrefix()  CPI  getFunctionNumber()  _
MO.getConstantPoolIndex();
 break;
   default:



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp SparcTargetMachine.h

2006-05-12 Thread Owen Anderson


Changes in directory llvm/lib/Target/Sparc:

SparcAsmPrinter.cpp updated: 1.65 - 1.66
SparcTargetMachine.h updated: 1.13 - 1.14
---
Log message:

Refactor a bunch of includes so that TargetMachine.h doesn't have to include
TargetData.h.  This should make recompiles a bit faster with my current
TargetData tinkering.


---
Diffs of the changes:  (+2 -0)

 SparcAsmPrinter.cpp  |1 +
 SparcTargetMachine.h |1 +
 2 files changed, 2 insertions(+)


Index: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
diff -u llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.65 
llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.66
--- llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.65  Mon May  8 23:59:56 2006
+++ llvm/lib/Target/Sparc/SparcAsmPrinter.cpp   Fri May 12 01:33:48 2006
@@ -22,6 +22,7 @@
 #include llvm/CodeGen/MachineFunctionPass.h
 #include llvm/CodeGen/MachineConstantPool.h
 #include llvm/CodeGen/MachineInstr.h
+#include llvm/Target/TargetData.h
 #include llvm/Target/TargetMachine.h
 #include llvm/Support/Mangler.h
 #include llvm/ADT/Statistic.h


Index: llvm/lib/Target/Sparc/SparcTargetMachine.h
diff -u llvm/lib/Target/Sparc/SparcTargetMachine.h:1.13 
llvm/lib/Target/Sparc/SparcTargetMachine.h:1.14
--- llvm/lib/Target/Sparc/SparcTargetMachine.h:1.13 Tue May  2 20:29:57 2006
+++ llvm/lib/Target/Sparc/SparcTargetMachine.h  Fri May 12 01:33:48 2006
@@ -15,6 +15,7 @@
 #define SPARCTARGETMACHINE_H
 
 #include llvm/Target/TargetMachine.h
+#include llvm/Target/TargetData.h
 #include llvm/Target/TargetFrameInfo.h
 #include llvm/PassManager.h
 #include SparcInstrInfo.h



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp

2006-05-08 Thread Chris Lattner


Changes in directory llvm/lib/Target/Sparc:

SparcAsmPrinter.cpp updated: 1.64 - 1.65
---
Log message:

Split SwitchSection into SwitchTo{Text|Data}Section methods.


---
Diffs of the changes:  (+6 -6)

 SparcAsmPrinter.cpp |   12 ++--
 1 files changed, 6 insertions(+), 6 deletions(-)


Index: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
diff -u llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.64 
llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.65
--- llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.64  Thu May  4 13:05:43 2006
+++ llvm/lib/Target/Sparc/SparcAsmPrinter.cpp   Mon May  8 23:59:56 2006
@@ -98,8 +98,8 @@
   CurrentFnName = Mang-getValueName(MF.getFunction());
 
   // Print out labels for the function.
-  O  \t.text\n;
-  O  \t.align 16\n;
+  SwitchToTextSection(.text, MF.getFunction());
+  EmitAlignment(4, MF.getFunction());
   O  \t.globl\t  CurrentFnName  \n;
   O  \t.type\t  CurrentFnName  , #function\n;
   O  CurrentFnName  :\n;
@@ -238,7 +238,7 @@
   if (C-isNullValue() 
   (I-hasLinkOnceLinkage() || I-hasInternalLinkage() ||
I-hasWeakLinkage() /* FIXME: Verify correct */)) {
-SwitchSection(.data, I);
+SwitchToDataSection(.data, I);
 if (I-hasInternalLinkage())
   O  \t.local   name  \n;
 
@@ -253,7 +253,7 @@
 case GlobalValue::WeakLinkage:   // FIXME: Verify correct for weak.
   // Nonnull linkonce - weak
   O  \t.weak   name  \n;
-  SwitchSection(, I);
+  SwitchToDataSection(, I);
   O  \t.section\t\.llvm.linkonce.d.  name
  \,\aw\,@progbits\n;
   break;
@@ -267,9 +267,9 @@
   // FALL THROUGH
 case GlobalValue::InternalLinkage:
   if (C-isNullValue())
-SwitchSection(.bss, I);
+SwitchToDataSection(.bss, I);
   else
-SwitchSection(.data, I);
+SwitchToDataSection(.data, I);
   break;
 case GlobalValue::GhostLinkage:
   std::cerr  Should not have any unmaterialized functions!\n;



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp SparcRegisterInfo.cpp

2006-05-04 Thread Chris Lattner


Changes in directory llvm/lib/Target/Sparc:

SparcAsmPrinter.cpp updated: 1.62 - 1.63
SparcRegisterInfo.cpp updated: 1.41 - 1.42
---
Log message:

There shalt be only one immediate operand type!



---
Diffs of the changes:  (+5 -7)

 SparcAsmPrinter.cpp   |6 ++
 SparcRegisterInfo.cpp |6 +++---
 2 files changed, 5 insertions(+), 7 deletions(-)


Index: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
diff -u llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.62 
llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.63
--- llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.62  Wed May  3 20:15:02 2006
+++ llvm/lib/Target/Sparc/SparcAsmPrinter.cpp   Thu May  4 12:21:19 2006
@@ -153,8 +153,7 @@
   O  %reg  MO.getReg();
 break;
 
-  case MachineOperand::MO_SignExtendedImmed:
-  case MachineOperand::MO_UnextendedImmed:
+  case MachineOperand::MO_Immediate:
 O  (int)MO.getImmedValue();
 break;
   case MachineOperand::MO_MachineBasicBlock:
@@ -192,8 +191,7 @@
   if (OpTy == MachineOperand::MO_VirtualRegister 
   MI-getOperand(opNum+1).getReg() == SP::G0)
 return;   // don't print +%g0
-  if ((OpTy == MachineOperand::MO_SignExtendedImmed ||
-   OpTy == MachineOperand::MO_UnextendedImmed) 
+  if (OpTy == MachineOperand::MO_Immediate 
   MI-getOperand(opNum+1).getImmedValue() == 0)
 return;   // don't print +0
   


Index: llvm/lib/Target/Sparc/SparcRegisterInfo.cpp
diff -u llvm/lib/Target/Sparc/SparcRegisterInfo.cpp:1.41 
llvm/lib/Target/Sparc/SparcRegisterInfo.cpp:1.42
--- llvm/lib/Target/Sparc/SparcRegisterInfo.cpp:1.41Fri Apr  7 11:34:45 2006
+++ llvm/lib/Target/Sparc/SparcRegisterInfo.cpp Thu May  4 12:21:19 2006
@@ -111,7 +111,7 @@
   if (MI.getOpcode() == SP::ADJCALLSTACKDOWN)
 Size = -Size;
   if (Size)
-BuildMI(MBB, I, SP::ADDri, 2, SP::O6).addReg(SP::O6).addSImm(Size);
+BuildMI(MBB, I, SP::ADDri, 2, SP::O6).addReg(SP::O6).addImm(Size);
   MBB.erase(I);
 }
 
@@ -136,7 +136,7 @@
 // If the offset is small enough to fit in the immediate field, directly
 // encode it.
 MI.SetMachineOperandReg(i, SP::I6);
-MI.SetMachineOperandConst(i+1, 
MachineOperand::MO_SignExtendedImmed,Offset);
+MI.SetMachineOperandConst(i+1, MachineOperand::MO_Immediate, Offset);
   } else {
 // Otherwise, emit a G1 = SETHI %hi(offset).  FIXME: it would be better to 
 // scavenge a register here instead of reserving G1 all of the time.
@@ -147,7 +147,7 @@
 SP::G1).addReg(SP::G1).addReg(SP::I6);
 // Insert: G1+%lo(offset) into the user.
 MI.SetMachineOperandReg(i, SP::G1);
-MI.SetMachineOperandConst(i+1, MachineOperand::MO_SignExtendedImmed,
+MI.SetMachineOperandConst(i+1, MachineOperand::MO_Immediate,
   Offset  ((1  10)-1));
   }
 }



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp

2006-05-04 Thread Chris Lattner


Changes in directory llvm/lib/Target/Sparc:

SparcAsmPrinter.cpp updated: 1.63 - 1.64
---
Log message:

Rename MO_VirtualRegister - MO_Register.  Clean up immediate handling.


---
Diffs of the changes:  (+5 -5)

 SparcAsmPrinter.cpp |   10 +-
 1 files changed, 5 insertions(+), 5 deletions(-)


Index: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
diff -u llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.63 
llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.64
--- llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.63  Thu May  4 12:21:19 2006
+++ llvm/lib/Target/Sparc/SparcAsmPrinter.cpp   Thu May  4 13:05:43 2006
@@ -146,7 +146,7 @@
 CloseParen = true;
   }
   switch (MO.getType()) {
-  case MachineOperand::MO_VirtualRegister:
+  case MachineOperand::MO_Register:
 if (MRegisterInfo::isPhysicalRegister(MO.getReg()))
   O  %  LowercaseString (RI.get(MO.getReg()).Name);
 else
@@ -188,16 +188,16 @@
   
   MachineOperand::MachineOperandType OpTy = MI-getOperand(opNum+1).getType();
   
-  if (OpTy == MachineOperand::MO_VirtualRegister 
+  if (MI-getOperand(opNum+1).isRegister() 
   MI-getOperand(opNum+1).getReg() == SP::G0)
 return;   // don't print +%g0
-  if (OpTy == MachineOperand::MO_Immediate 
+  if (MI-getOperand(opNum+1).isImmediate() 
   MI-getOperand(opNum+1).getImmedValue() == 0)
 return;   // don't print +0
   
   O  +;
-  if (OpTy == MachineOperand::MO_GlobalAddress ||
-  OpTy == MachineOperand::MO_ConstantPoolIndex) {
+  if (MI-getOperand(opNum+1).isGlobalAddress() ||
+  MI-getOperand(opNum+1).isConstantPoolIndex()) {
 O  %lo(;
 printOperand(MI, opNum+1);
 O  );



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp

2006-05-03 Thread Chris Lattner


Changes in directory llvm/lib/Target/Sparc:

SparcAsmPrinter.cpp updated: 1.60 - 1.61
---
Log message:

Remove some more unused stuff from MachineInstr that was leftover from V9.


---
Diffs of the changes:  (+0 -4)

 SparcAsmPrinter.cpp |4 
 1 files changed, 4 deletions(-)


Index: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
diff -u llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.60 
llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.61
--- llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.60  Tue May  2 20:29:57 2006
+++ llvm/lib/Target/Sparc/SparcAsmPrinter.cpp   Wed May  3 19:44:25 2006
@@ -166,10 +166,6 @@
   case MachineOperand::MO_MachineBasicBlock:
 printBasicBlockLabel(MO.getMachineBasicBlock());
 return;
-  case MachineOperand::MO_PCRelativeDisp:
-std::cerr  Shouldn't use addPCDisp() when building Sparc MachineInstrs;
-abort ();
-return;
   case MachineOperand::MO_GlobalAddress:
 O  Mang-getValueName(MO.getGlobal());
 break;



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp

2006-05-03 Thread Chris Lattner


Changes in directory llvm/lib/Target/Sparc:

SparcAsmPrinter.cpp updated: 1.61 - 1.62
---
Log message:

Remove a bunch more SparcV9 specific stuff


---
Diffs of the changes:  (+1 -8)

 SparcAsmPrinter.cpp |9 +
 1 files changed, 1 insertion(+), 8 deletions(-)


Index: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
diff -u llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.61 
llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.62
--- llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.61  Wed May  3 19:44:25 2006
+++ llvm/lib/Target/Sparc/SparcAsmPrinter.cpp   Wed May  3 20:15:02 2006
@@ -147,12 +147,6 @@
   }
   switch (MO.getType()) {
   case MachineOperand::MO_VirtualRegister:
-if (Value *V = MO.getVRegValueOrNull()) {
-  OV-getName()  ;
-  break;
-}
-// FALLTHROUGH
-  case MachineOperand::MO_MachineRegister:
 if (MRegisterInfo::isPhysicalRegister(MO.getReg()))
   O  %  LowercaseString (RI.get(MO.getReg()).Name);
 else
@@ -195,8 +189,7 @@
   
   MachineOperand::MachineOperandType OpTy = MI-getOperand(opNum+1).getType();
   
-  if ((OpTy == MachineOperand::MO_VirtualRegister ||
-   OpTy == MachineOperand::MO_MachineRegister) 
+  if (OpTy == MachineOperand::MO_VirtualRegister 
   MI-getOperand(opNum+1).getReg() == SP::G0)
 return;   // don't print +%g0
   if ((OpTy == MachineOperand::MO_SignExtendedImmed ||



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp SparcTargetMachine.cpp SparcTargetMachine.h

2006-05-02 Thread Owen Anderson


Changes in directory llvm/lib/Target/Sparc:

SparcAsmPrinter.cpp updated: 1.59 - 1.60
SparcTargetMachine.cpp updated: 1.44 - 1.45
SparcTargetMachine.h updated: 1.12 - 1.13
---
Log message:

Refactor TargetMachine, pushing handling of TargetData into the target-specific 
subclasses.  This has one caller-visible change: getTargetData() now returns a 
pointer instead of a reference.

This fixes PR 759: http://llvm.cs.uiuc.edu/PR759 .



---
Diffs of the changes:  (+9 -7)

 SparcAsmPrinter.cpp|   10 +-
 SparcTargetMachine.cpp |3 ++-
 SparcTargetMachine.h   |3 ++-
 3 files changed, 9 insertions(+), 7 deletions(-)


Index: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
diff -u llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.59 
llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.60
--- llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.59  Tue May  2 00:37:32 2006
+++ llvm/lib/Target/Sparc/SparcAsmPrinter.cpp   Tue May  2 20:29:57 2006
@@ -232,7 +232,7 @@
 }
 
 bool SparcAsmPrinter::doFinalization(Module M) {
-  const TargetData TD = TM.getTargetData();
+  const TargetData *TD = TM.getTargetData();
 
   // Print out module-level global variables here.
   for (Module::const_global_iterator I = M.global_begin(), E = M.global_end();
@@ -245,8 +245,8 @@
   O  \n\n;
   std::string name = Mang-getValueName(I);
   Constant *C = I-getInitializer();
-  unsigned Size = TD.getTypeSize(C-getType());
-  unsigned Align = TD.getTypeAlignment(C-getType());
+  unsigned Size = TD-getTypeSize(C-getType());
+  unsigned Align = TD-getTypeAlignment(C-getType());
 
   if (C-isNullValue() 
   (I-hasLinkOnceLinkage() || I-hasInternalLinkage() ||
@@ -255,8 +255,8 @@
 if (I-hasInternalLinkage())
   O  \t.local   name  \n;
 
-O  \t.comm   name  ,  TD.getTypeSize(C-getType())
-   ,  (unsigned)TD.getTypeAlignment(C-getType());
+O  \t.comm   name  ,  TD-getTypeSize(C-getType())
+   ,  (unsigned)TD-getTypeAlignment(C-getType());
 O  \t\t! ;
 WriteAsOperand(O, I, true, true, M);
 O  \n;


Index: llvm/lib/Target/Sparc/SparcTargetMachine.cpp
diff -u llvm/lib/Target/Sparc/SparcTargetMachine.cpp:1.44 
llvm/lib/Target/Sparc/SparcTargetMachine.cpp:1.45
--- llvm/lib/Target/Sparc/SparcTargetMachine.cpp:1.44   Sat Apr  8 14:46:55 2006
+++ llvm/lib/Target/Sparc/SparcTargetMachine.cppTue May  2 20:29:57 2006
@@ -31,7 +31,8 @@
 /// SparcTargetMachine ctor - Create an ILP32 architecture model
 ///
 SparcTargetMachine::SparcTargetMachine(const Module M, const std::string FS)
-  : TargetMachine(Sparc, false, 4, 4),
+  : TargetMachine(Sparc),
+DataLayout(Sparc, false, 4, 4),
 Subtarget(M, FS), InstrInfo(Subtarget),
 FrameInfo(TargetFrameInfo::StackGrowsDown, 8, 0) {
 }


Index: llvm/lib/Target/Sparc/SparcTargetMachine.h
diff -u llvm/lib/Target/Sparc/SparcTargetMachine.h:1.12 
llvm/lib/Target/Sparc/SparcTargetMachine.h:1.13
--- llvm/lib/Target/Sparc/SparcTargetMachine.h:1.12 Wed Mar 22 23:43:15 2006
+++ llvm/lib/Target/Sparc/SparcTargetMachine.h  Tue May  2 20:29:57 2006
@@ -25,6 +25,7 @@
 class Module;
 
 class SparcTargetMachine : public TargetMachine {
+  const TargetData DataLayout;   // Calculates type size  alignment
   SparcSubtarget Subtarget;
   SparcInstrInfo InstrInfo;
   TargetFrameInfo FrameInfo;
@@ -37,7 +38,7 @@
   virtual const MRegisterInfo *getRegisterInfo() const {
 return InstrInfo.getRegisterInfo();
   }
-
+  virtual const TargetData   *getTargetData() const { return DataLayout; }
   static unsigned getModuleMatchQuality(const Module M);
 
   virtual bool addPassesToEmitFile(PassManager PM, std::ostream Out,



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp

2006-05-01 Thread Nate Begeman


Changes in directory llvm/lib/Target/Sparc:

SparcAsmPrinter.cpp updated: 1.58 - 1.59
---
Log message:

Extend printBasicBlockLabel a bit so that it can be used to print all 
basic block labels, consolidating the code to do so in one place for each
target.


---
Diffs of the changes:  (+4 -4)

 SparcAsmPrinter.cpp |8 
 1 files changed, 4 insertions(+), 4 deletions(-)


Index: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
diff -u llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.58 
llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.59
--- llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.58  Sat Apr 22 13:53:45 2006
+++ llvm/lib/Target/Sparc/SparcAsmPrinter.cpp   Tue May  2 00:37:32 2006
@@ -116,10 +116,10 @@
   for (MachineFunction::const_iterator I = MF.begin(), E = MF.end();
I != E; ++I) {
 // Print a label for the basic block.
-if (I != MF.begin())
-  O  .LBB  Mang-getValueName(MF.getFunction ())
- _  I-getNumber ()  :\t! 
- I-getBasicBlock ()-getName ()  \n;
+if (I != MF.begin()) {
+  printBasicBlockLabel(I, true);
+  O  '\n';
+}
 for (MachineBasicBlock::const_iterator II = I-begin(), E = I-end();
  II != E; ++II) {
   // Print the assembly for the instruction.



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp SparcISelDAGToDAG.cpp

2006-04-22 Thread Nate Begeman


Changes in directory llvm/lib/Target/Sparc:

SparcAsmPrinter.cpp updated: 1.57 - 1.58
SparcISelDAGToDAG.cpp updated: 1.91 - 1.92
---
Log message:

JumpTable support!  What this represents is working asm and jit support for
x86 and ppc for 100% dense switch statements when relocations are non-PIC.
This support will be extended and enhanced in the coming days to support
PIC, and less dense forms of jump tables.


---
Diffs of the changes:  (+3 -6)

 SparcAsmPrinter.cpp   |8 ++--
 SparcISelDAGToDAG.cpp |1 +
 2 files changed, 3 insertions(+), 6 deletions(-)


Index: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
diff -u llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.57 
llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.58
--- llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.57  Thu Mar  9 00:14:35 2006
+++ llvm/lib/Target/Sparc/SparcAsmPrinter.cpp   Sat Apr 22 13:53:45 2006
@@ -163,13 +163,9 @@
   case MachineOperand::MO_UnextendedImmed:
 O  (int)MO.getImmedValue();
 break;
-  case MachineOperand::MO_MachineBasicBlock: {
-MachineBasicBlock *MBBOp = MO.getMachineBasicBlock();
-O  .LBB  Mang-getValueName(MBBOp-getParent()-getFunction())
-   _  MBBOp-getNumber ()  \t! 
-   MBBOp-getBasicBlock ()-getName ();
+  case MachineOperand::MO_MachineBasicBlock:
+printBasicBlockLabel(MO.getMachineBasicBlock());
 return;
-  }
   case MachineOperand::MO_PCRelativeDisp:
 std::cerr  Shouldn't use addPCDisp() when building Sparc MachineInstrs;
 abort ();


Index: llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp
diff -u llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp:1.91 
llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp:1.92
--- llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp:1.91Sun Mar 26 19:32:24 2006
+++ llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp Sat Apr 22 13:53:45 2006
@@ -167,6 +167,7 @@
   
   // Sparc doesn't have BRCOND either, it has BR_CC.
   setOperationAction(ISD::BRCOND, MVT::Other, Expand);
+  setOperationAction(ISD::BRIND, MVT::i32, Expand);
   setOperationAction(ISD::BR_CC, MVT::i32, Custom);
   setOperationAction(ISD::BR_CC, MVT::f32, Custom);
   setOperationAction(ISD::BR_CC, MVT::f64, Custom);



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp

2006-03-08 Thread Chris Lattner


Changes in directory llvm/lib/Target/Sparc:

SparcAsmPrinter.cpp updated: 1.56 - 1.57
---
Log message:

Add support for 'special' llvm globals like debug info and static ctors/dtors.


---
Diffs of the changes:  (+6 -1)

 SparcAsmPrinter.cpp |7 ++-
 1 files changed, 6 insertions(+), 1 deletion(-)


Index: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
diff -u llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.56 
llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.57
--- llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.56  Mon Feb 27 14:09:23 2006
+++ llvm/lib/Target/Sparc/SparcAsmPrinter.cpp   Thu Mar  9 00:14:35 2006
@@ -239,8 +239,13 @@
   const TargetData TD = TM.getTargetData();
 
   // Print out module-level global variables here.
-  for (Module::const_global_iterator I = M.global_begin(), E = M.global_end(); 
I != E; ++I)
+  for (Module::const_global_iterator I = M.global_begin(), E = M.global_end();
+   I != E; ++I)
 if (I-hasInitializer()) {   // External global require no code
+  // Check to see if this is a special global used by LLVM, if so, emit it.
+  if (EmitSpecialLLVMGlobal(I))
+continue;
+  
   O  \n\n;
   std::string name = Mang-getValueName(I);
   Constant *C = I-getInitializer();



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp

2006-02-27 Thread Chris Lattner


Changes in directory llvm/lib/Target/Sparc:

SparcAsmPrinter.cpp updated: 1.55 - 1.56
---
Log message:

Don't print constant initializers, they may span lines now.


---
Diffs of the changes:  (+0 -2)

 SparcAsmPrinter.cpp |2 --
 1 files changed, 2 deletions(-)


Index: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
diff -u llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.55 
llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.56
--- llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.55  Wed Feb 15 01:07:14 2006
+++ llvm/lib/Target/Sparc/SparcAsmPrinter.cpp   Mon Feb 27 14:09:23 2006
@@ -293,8 +293,6 @@
 O  \t.size   name  ,  Size  \n;
 O  name  :\t\t\t\t! ;
 WriteAsOperand(O, I, true, true, M);
-O   = ;
-WriteAsOperand(O, C, false, false, M);
 O  \n;
 EmitGlobalConstant(C);
   }



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp

2006-02-14 Thread Chris Lattner


Changes in directory llvm/lib/Target/Sparc:

SparcAsmPrinter.cpp updated: 1.54 - 1.55
---
Log message:

Sparc actually *DOES* have a directive for emitting zeros.  In fact, it requires
it, because this:

.bss
X:
.byte 0

results in the assembler warning: initialization in bss segment.  Annoying.



---
Diffs of the changes:  (+1 -1)

 SparcAsmPrinter.cpp |2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)


Index: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
diff -u llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.54 
llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.55
--- llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.54  Fri Feb 10 01:35:42 2006
+++ llvm/lib/Target/Sparc/SparcAsmPrinter.cpp   Wed Feb 15 01:07:14 2006
@@ -40,7 +40,7 @@
   Data16bitsDirective = \t.half\t;
   Data32bitsDirective = \t.word\t;
   Data64bitsDirective = 0;  // .xword is only supported by V9.
-  ZeroDirective = 0;  // no .zero or .space!
+  ZeroDirective = \t.skip\t;
   CommentString = !;
   ConstantPoolSection = \t.section \.rodata\,#alloc\n;
 }



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp SparcISelDAGToDAG.cpp SparcInstrInfo.td

2006-02-09 Thread Chris Lattner


Changes in directory llvm/lib/Target/Sparc:

SparcAsmPrinter.cpp updated: 1.53 - 1.54
SparcISelDAGToDAG.cpp updated: 1.82 - 1.83
SparcInstrInfo.td updated: 1.120 - 1.121
---
Log message:

Use the auto-generated call matcher.  Remove a broken impl of the 
frameaddr/returnaddr
intrinsics.

Autogen frameindex matcher


---
Diffs of the changes:  (+34 -61)

 SparcAsmPrinter.cpp   |   14 --
 SparcISelDAGToDAG.cpp |   67 --
 SparcInstrInfo.td |   14 +++---
 3 files changed, 34 insertions(+), 61 deletions(-)


Index: llvm/lib/Target/Sparc/SparcAsmPrinter.cpp
diff -u llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.53 
llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.54
--- llvm/lib/Target/Sparc/SparcAsmPrinter.cpp:1.53  Sat Feb  4 23:50:24 2006
+++ llvm/lib/Target/Sparc/SparcAsmPrinter.cpp   Fri Feb 10 01:35:42 2006
@@ -57,7 +57,8 @@
 }
 
 void printOperand(const MachineInstr *MI, int opNum);
-void printMemOperand(const MachineInstr *MI, int opNum);
+void printMemOperand(const MachineInstr *MI, int opNum,
+ const char *Modifier = 0);
 void printCCOperand(const MachineInstr *MI, int opNum);
 
 bool printInstruction(const MachineInstr *MI);  // autogenerated.
@@ -189,8 +190,17 @@
   if (CloseParen) O  );
 }
 
-void SparcAsmPrinter::printMemOperand(const MachineInstr *MI, int opNum) {
+void SparcAsmPrinter::printMemOperand(const MachineInstr *MI, int opNum,
+  const char *Modifier) {
   printOperand(MI, opNum);
+  
+  // If this is an ADD operand, emit it like normal operands.
+  if (Modifier  !strcmp(Modifier, arith)) {
+O  , ;
+printOperand(MI, opNum+1);
+return;
+  }
+  
   MachineOperand::MachineOperandType OpTy = MI-getOperand(opNum+1).getType();
   
   if ((OpTy == MachineOperand::MO_VirtualRegister ||


Index: llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp
diff -u llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp:1.82 
llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp:1.83
--- llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp:1.82Thu Feb  9 01:17:49 2006
+++ llvm/lib/Target/Sparc/SparcISelDAGToDAG.cpp Fri Feb 10 01:35:42 2006
@@ -111,9 +111,6 @@
   unsigned CC,
   bool isTailCall, SDOperand Callee, ArgListTy Args,
   SelectionDAG DAG);
-virtual std::pairSDOperand, SDOperand
-  LowerFrameReturnAddress(bool isFrameAddr, SDOperand Chain, unsigned 
Depth,
-  SelectionDAG DAG);
 virtual MachineBasicBlock *InsertAtEndOfBasicBlock(MachineInstr *MI,
MachineBasicBlock *MBB);
 
@@ -595,8 +592,11 @@
 
   // If the callee is a GlobalAddress node (quite common, every direct call is)
   // turn it into a TargetGlobalAddress node so that legalize doesn't hack it.
+  // Likewise ExternalSymbol - TargetExternalSymbol.
   if (GlobalAddressSDNode *G = dyn_castGlobalAddressSDNode(Callee))
 Callee = DAG.getTargetGlobalAddress(G-getGlobal(), MVT::i32);
+  else if (ExternalSymbolSDNode *E = dyn_castExternalSymbolSDNode(Callee))
+Callee = DAG.getTargetExternalSymbol(E-getSymbol(), MVT::i32);
 
   std::vectorMVT::ValueType NodeTys;
   NodeTys.push_back(MVT::Other);   // Returns a chain
@@ -653,13 +653,6 @@
   return std::make_pair(RetVal, Chain);
 }
 
-std::pairSDOperand, SDOperand SparcTargetLowering::
-LowerFrameReturnAddress(bool isFrameAddr, SDOperand Chain, unsigned Depth,
-SelectionDAG DAG) {
-  assert(0  Unimp);
-  abort();
-}
-
 // Look at LHS/RHS/CC and see if they are a lowered setcc instruction.  If so
 // set LHS/RHS and SPCC to the LHS/RHS of the setcc and SPCC to the condition.
 static void LookThroughSetCC(SDOperand LHS, SDOperand RHS,
@@ -974,6 +967,9 @@
 Offset = CurDAG-getTargetConstant(0, MVT::i32);
 return true;
   }
+  if (Addr.getOpcode() == ISD::TargetExternalSymbol ||
+  Addr.getOpcode() == ISD::TargetGlobalAddress)
+return false;  // direct calls.
   
   if (Addr.getOpcode() == ISD::ADD) {
 if (ConstantSDNode *CN = dyn_castConstantSDNode(Addr.getOperand(1))) {
@@ -1007,7 +1003,11 @@
 
 bool SparcDAGToDAGISel::SelectADDRrr(SDOperand Addr, SDOperand R1, 
  SDOperand R2) {
-  if (Addr.getOpcode() == ISD::FrameIndex) return false; 
+  if (Addr.getOpcode() == ISD::FrameIndex) return false;
+  if (Addr.getOpcode() == ISD::TargetExternalSymbol ||
+  Addr.getOpcode() == ISD::TargetGlobalAddress)
+return false;  // direct calls.
+  
   if (Addr.getOpcode() == ISD::ADD) {
 if (isaConstantSDNode(Addr.getOperand(1)) 
 Predicate_simm13(Addr.getOperand(1).Val))
@@ -1042,21 +1042,6 @@
   
   switch (N-getOpcode()) {
   default: break;
-  case ISD::FrameIndex: {
-int FI = castFrameIndexSDNode(N)-getIndex();
-if (N-hasOneUse()) {
-  Result = CurDAG-SelectNodeTo(N, SP::ADDri, MVT::i32,
-