[llvm-commits] CVS: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp X86AsmPrinter.cpp X86AsmPrinter.h X86ISelDAGToDAG.cpp X86ISelLowering.cpp X86RegisterInfo.cpp X86Subtarget.cpp X86Subtarget.h X86TargetAsmI

2007-01-03 Thread Anton Korobeynikov


Changes in directory llvm/lib/Target/X86:

X86ATTAsmPrinter.cpp updated: 1.80 - 1.81
X86AsmPrinter.cpp updated: 1.223 - 1.224
X86AsmPrinter.h updated: 1.40 - 1.41
X86ISelDAGToDAG.cpp updated: 1.140 - 1.141
X86ISelLowering.cpp updated: 1.308 - 1.309
X86RegisterInfo.cpp updated: 1.187 - 1.188
X86Subtarget.cpp updated: 1.46 - 1.47
X86Subtarget.h updated: 1.24 - 1.25
X86TargetAsmInfo.cpp updated: 1.14 - 1.15
X86TargetMachine.cpp updated: 1.133 - 1.134
---
Log message:

Really big cleanup. 
- New target type mingw was introduced
- Same things for both mingw  cygwin are marked as cygming (as in 
gcc)
- .lcomm is supported here, so allow LLVM to use it
- Correctly use underscored versions of setjmp  _longjmp for both mingw 
 cygwin


---
Diffs of the changes:  (+33 -24)

 X86ATTAsmPrinter.cpp |   12 ++--
 X86AsmPrinter.cpp|   10 +-
 X86AsmPrinter.h  |2 +-
 X86ISelDAGToDAG.cpp  |2 +-
 X86ISelLowering.cpp  |6 +++---
 X86RegisterInfo.cpp  |4 ++--
 X86Subtarget.cpp |   12 
 X86Subtarget.h   |5 -
 X86TargetAsmInfo.cpp |2 ++
 X86TargetMachine.cpp |2 +-
 10 files changed, 33 insertions(+), 24 deletions(-)


Index: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp
diff -u llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.80 
llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.81
--- llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.80   Tue Dec 19 16:59:26 2006
+++ llvm/lib/Target/X86/X86ATTAsmPrinter.cppWed Jan  3 05:43:14 2007
@@ -42,7 +42,7 @@
   case Function::LinkOnceLinkage:
 if (Subtarget-isTargetDarwin()) {
   return .section __TEXT,__textcoal_nt,coalesced,pure_instructions;
-} else if (Subtarget-isTargetCygwin()) {
+} else if (Subtarget-isTargetCygMing()) {
   return \t.section\t.text$linkonce. + CurrentFnName + ,\ax\\n;
 } else {
   return \t.section\t.llvm.linkonce.t. + CurrentFnName +
@@ -57,7 +57,7 @@
 bool X86ATTAsmPrinter::runOnMachineFunction(MachineFunction MF) {
   if (Subtarget-isTargetDarwin() ||
   Subtarget-isTargetELF() ||
-  Subtarget-isTargetCygwin()) {
+  Subtarget-isTargetCygMing()) {
 // Let PassManager know we need debug information and relay
 // the MachineDebugInfo address on to DwarfWriter.
 DW.SetDebugInfo(getAnalysisMachineDebugInfo());
@@ -99,7 +99,7 @@
 if (Subtarget-isTargetDarwin()) {
   O  \t.globl\t  CurrentFnName  \n;
   O  \t.weak_definition\t  CurrentFnName  \n;
-} else if (Subtarget-isTargetCygwin()) {
+} else if (Subtarget-isTargetCygMing()) {
   EmitAlignment(4, F); // FIXME: This should be parameterized 
somewhere.
   O  \t.linkonce discard\n;
   O  \t.globl   CurrentFnName  \n;
@@ -111,14 +111,14 @@
   }
   O  CurrentFnName  :\n;
   // Add some workaround for linkonce linkage on Cygwin\MinGW
-  if (Subtarget-isTargetCygwin() 
+  if (Subtarget-isTargetCygMing() 
   (F-getLinkage() == Function::LinkOnceLinkage ||
F-getLinkage() == Function::WeakLinkage))
 O  _llvm$workaround$fake$stub_  CurrentFnName  :\n;
 
   if (Subtarget-isTargetDarwin() ||
   Subtarget-isTargetELF() ||
-  Subtarget-isTargetCygwin()) {
+  Subtarget-isTargetCygMing()) {
 // Emit pre-function debug information.
 DW.BeginFunction(MF);
   }
@@ -150,7 +150,7 @@
 
   if (Subtarget-isTargetDarwin() ||
   Subtarget-isTargetELF() ||
-  Subtarget-isTargetCygwin()) {
+  Subtarget-isTargetCygMing()) {
 // Emit post-function debug information.
 DW.EndFunction();
   }


Index: llvm/lib/Target/X86/X86AsmPrinter.cpp
diff -u llvm/lib/Target/X86/X86AsmPrinter.cpp:1.223 
llvm/lib/Target/X86/X86AsmPrinter.cpp:1.224
--- llvm/lib/Target/X86/X86AsmPrinter.cpp:1.223 Tue Dec 19 16:59:26 2006
+++ llvm/lib/Target/X86/X86AsmPrinter.cpp   Wed Jan  3 05:43:14 2007
@@ -111,7 +111,7 @@
 
 // Emit initial debug information.
 DW.BeginModule(M);
-  } else if (Subtarget-isTargetELF() || Subtarget-isTargetCygwin()) {
+  } else if (Subtarget-isTargetELF() || Subtarget-isTargetCygMing()) {
 // Emit initial debug information.
 DW.BeginModule(M);
   }
@@ -161,7 +161,7 @@
   } else
 O  TAI-getCOMMDirective()   name  ,  Size;
 } else {
-  if (!Subtarget-isTargetCygwin()) {
+  if (!Subtarget-isTargetCygMing()) {
 if (I-hasInternalLinkage())
   O  \t.local\t  name  \n;
   }
@@ -179,7 +179,7 @@
   O  \t.globl   name  \n
  \t.weak_definition   name  \n;
   SwitchToDataSection(.section __DATA,__const_coal,coalesced, I);
-} else if (Subtarget-isTargetCygwin()) {
+} else if (Subtarget-isTargetCygMing()) {
   std::string SectionName(.section\t.data$linkonce. +
   name +
   ,\aw\);
@@ -218,7 +218,7 @@
  I-getSection() == .dtors)) {
   std::string SectionName = .section  + I-getSection();
   
-  if 

[llvm-commits] CVS: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp X86AsmPrinter.cpp X86AsmPrinter.h X86CodeEmitter.cpp X86FloatingPoint.cpp X86ISelDAGToDAG.cpp X86IntelAsmPrinter.cpp

2006-12-19 Thread Chris Lattner


Changes in directory llvm/lib/Target/X86:

X86ATTAsmPrinter.cpp updated: 1.79 - 1.80
X86AsmPrinter.cpp updated: 1.222 - 1.223
X86AsmPrinter.h updated: 1.39 - 1.40
X86CodeEmitter.cpp updated: 1.127 - 1.128
X86FloatingPoint.cpp updated: 1.66 - 1.67
X86ISelDAGToDAG.cpp updated: 1.139 - 1.140
X86IntelAsmPrinter.cpp updated: 1.66 - 1.67
---
Log message:

eliminate static ctors for Statistic objects.


---
Diffs of the changes:  (+18 -21)

 X86ATTAsmPrinter.cpp   |4 
 X86AsmPrinter.cpp  |4 
 X86AsmPrinter.h|3 ---
 X86CodeEmitter.cpp |6 ++
 X86FloatingPoint.cpp   |8 
 X86ISelDAGToDAG.cpp|   10 --
 X86IntelAsmPrinter.cpp |4 
 7 files changed, 18 insertions(+), 21 deletions(-)


Index: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp
diff -u llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.79 
llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.80
--- llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.79   Sun Dec 17 21:37:18 2006
+++ llvm/lib/Target/X86/X86ATTAsmPrinter.cppTue Dec 19 16:59:26 2006
@@ -13,6 +13,7 @@
 //
 
//===--===//
 
+#define DEBUG_TYPE asm-printer
 #include X86ATTAsmPrinter.h
 #include X86.h
 #include X86MachineFunctionInfo.h
@@ -23,8 +24,11 @@
 #include llvm/Support/Mangler.h
 #include llvm/Target/TargetAsmInfo.h
 #include llvm/Target/TargetOptions.h
+#include llvm/ADT/Statistic.h
 using namespace llvm;
 
+STATISTIC(EmittedInsts, Number of machine instrs printed);
+
 /// getSectionForFunction - Return the section that we should emit the
 /// specified function body into.
 std::string X86ATTAsmPrinter::getSectionForFunction(const Function F) const {


Index: llvm/lib/Target/X86/X86AsmPrinter.cpp
diff -u llvm/lib/Target/X86/X86AsmPrinter.cpp:1.222 
llvm/lib/Target/X86/X86AsmPrinter.cpp:1.223
--- llvm/lib/Target/X86/X86AsmPrinter.cpp:1.222 Sun Dec 17 21:37:18 2006
+++ llvm/lib/Target/X86/X86AsmPrinter.cpp   Tue Dec 19 16:59:26 2006
@@ -27,12 +27,8 @@
 #include llvm/Assembly/Writer.h
 #include llvm/Support/Mangler.h
 #include llvm/Target/TargetAsmInfo.h
-
 using namespace llvm;
 
-Statistic llvm::EmittedInsts(asm-printer,
-   Number of machine instrs printed);
-
 static X86FunctionInfo calculateFunctionInfo(const Function *F,
  const TargetData *TD) {
   X86FunctionInfo Info;


Index: llvm/lib/Target/X86/X86AsmPrinter.h
diff -u llvm/lib/Target/X86/X86AsmPrinter.h:1.39 
llvm/lib/Target/X86/X86AsmPrinter.h:1.40
--- llvm/lib/Target/X86/X86AsmPrinter.h:1.39Sun Dec 17 21:37:18 2006
+++ llvm/lib/Target/X86/X86AsmPrinter.h Tue Dec 19 16:59:26 2006
@@ -22,15 +22,12 @@
 #include llvm/CodeGen/AsmPrinter.h
 #include llvm/CodeGen/DwarfWriter.h
 #include llvm/CodeGen/MachineDebugInfo.h
-#include llvm/ADT/Statistic.h
 #include llvm/Support/Compiler.h
 #include set
 
 
 namespace llvm {
 
-extern Statistic EmittedInsts;
-
 // FIXME: Move this to CodeGen/AsmPrinter.h
 namespace PICStyle {
   enum X86AsmPICStyle {


Index: llvm/lib/Target/X86/X86CodeEmitter.cpp
diff -u llvm/lib/Target/X86/X86CodeEmitter.cpp:1.127 
llvm/lib/Target/X86/X86CodeEmitter.cpp:1.128
--- llvm/lib/Target/X86/X86CodeEmitter.cpp:1.127Wed Dec  6 11:46:32 2006
+++ llvm/lib/Target/X86/X86CodeEmitter.cpp  Tue Dec 19 16:59:26 2006
@@ -12,6 +12,7 @@
 //
 
//===--===//
 
+#define DEBUG_TYPE x86-emitter
 #include X86InstrInfo.h
 #include X86Subtarget.h
 #include X86TargetMachine.h
@@ -28,10 +29,7 @@
 #include llvm/Target/TargetOptions.h
 using namespace llvm;
 
-namespace {
-  Statistic
-  NumEmitted(x86-emitter, Number of machine instructions emitted);
-}
+STATISTIC(NumEmitted, Number of machine instructions emitted);
 
 namespace {
   class VISIBILITY_HIDDEN Emitter : public MachineFunctionPass {


Index: llvm/lib/Target/X86/X86FloatingPoint.cpp
diff -u llvm/lib/Target/X86/X86FloatingPoint.cpp:1.66 
llvm/lib/Target/X86/X86FloatingPoint.cpp:1.67
--- llvm/lib/Target/X86/X86FloatingPoint.cpp:1.66   Thu Dec  7 23:41:26 2006
+++ llvm/lib/Target/X86/X86FloatingPoint.cppTue Dec 19 16:59:26 2006
@@ -28,7 +28,7 @@
 //
 
//===--===//
 
-#define DEBUG_TYPE fp
+#define DEBUG_TYPE x86-codegen
 #include X86.h
 #include X86InstrInfo.h
 #include llvm/CodeGen/MachineFunctionPass.h
@@ -47,10 +47,10 @@
 #include set
 using namespace llvm;
 
-namespace {
-  Statistic NumFXCH(x86-codegen, Number of fxch instructions inserted);
-  Statistic NumFP  (x86-codegen, Number of floating point instructions);
+STATISTIC(NumFXCH, Number of fxch instructions inserted);
+STATISTIC(NumFP  , Number of floating point instructions);
 
+namespace {
   struct VISIBILITY_HIDDEN FPS : public MachineFunctionPass {
 virtual bool runOnMachineFunction(MachineFunction MF);
 


Index: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
diff -u 

[llvm-commits] CVS: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp X86AsmPrinter.cpp X86AsmPrinter.h

2006-12-17 Thread Rafael Espindola


Changes in directory llvm/lib/Target/X86:

X86ATTAsmPrinter.cpp updated: 1.78 - 1.79
X86AsmPrinter.cpp updated: 1.221 - 1.222
X86AsmPrinter.h updated: 1.38 - 1.39
---
Log message:

move ExtWeakSymbols to AsmPrinter


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

 X86ATTAsmPrinter.cpp |2 +-
 X86AsmPrinter.cpp|   11 +--
 X86AsmPrinter.h  |3 ---
 3 files changed, 2 insertions(+), 14 deletions(-)


Index: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp
diff -u llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.78 
llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.79
--- llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.78   Tue Dec  5 13:50:18 2006
+++ llvm/lib/Target/X86/X86ATTAsmPrinter.cppSun Dec 17 21:37:18 2006
@@ -257,7 +257,7 @@
 }
 
 if (GV-hasExternalWeakLinkage())
-  ExtWeakSymbols.insert(Name);
+  ExtWeakSymbols.insert(GV);
 
 int Offset = MO.getOffset();
 if (Offset  0)


Index: llvm/lib/Target/X86/X86AsmPrinter.cpp
diff -u llvm/lib/Target/X86/X86AsmPrinter.cpp:1.221 
llvm/lib/Target/X86/X86AsmPrinter.cpp:1.222
--- llvm/lib/Target/X86/X86AsmPrinter.cpp:1.221 Sat Dec  9 17:14:08 2006
+++ llvm/lib/Target/X86/X86AsmPrinter.cpp   Sun Dec 17 21:37:18 2006
@@ -250,7 +250,7 @@
   // reference!
   if (const GlobalValue *GV = dyn_castGlobalValue(C))
 if (GV-hasExternalWeakLinkage())
-  ExtWeakSymbols.insert(Mang-getValueName(GV));
+  ExtWeakSymbols.insert(GV);
 
   EmitGlobalConstant(C);
   O  '\n';
@@ -278,15 +278,6 @@
 O  \t.ascii \ -export:  *i  \\n;
   }
 
-  if (TAI-getWeakRefDirective()) {
-if (ExtWeakSymbols.begin() != ExtWeakSymbols.end())
-  SwitchToDataSection();
-for (std::setstd::string::iterator i = ExtWeakSymbols.begin(),
- e = ExtWeakSymbols.end(); i != e; ++i) {
-  O  TAI-getWeakRefDirective()  *i  \n;
-}
-  }
-  
   if (Subtarget-isTargetDarwin()) {
 SwitchToDataSection();
 


Index: llvm/lib/Target/X86/X86AsmPrinter.h
diff -u llvm/lib/Target/X86/X86AsmPrinter.h:1.38 
llvm/lib/Target/X86/X86AsmPrinter.h:1.39
--- llvm/lib/Target/X86/X86AsmPrinter.h:1.38Wed Dec  6 12:14:47 2006
+++ llvm/lib/Target/X86/X86AsmPrinter.h Sun Dec 17 21:37:18 2006
@@ -86,9 +86,6 @@
   // Necessary for dllexport support
   std::setstd::string DLLExportedFns, DLLExportedGVs;
 
-  // Necessary for external weak linkage support
-  std::setstd::string ExtWeakSymbols;
-  
   inline static bool isScale(const MachineOperand MO) {
 return MO.isImmediate() 
   (MO.getImmedValue() == 1 || MO.getImmedValue() == 2 ||



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


[llvm-commits] CVS: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp X86AsmPrinter.cpp X86AsmPrinter.h X86ISelLowering.cpp X86InstrInfo.td X86TargetAsmInfo.cpp

2006-10-30 Thread Reid Spencer


Changes in directory llvm/lib/Target/X86:

X86ATTAsmPrinter.cpp updated: 1.69 - 1.70
X86AsmPrinter.cpp updated: 1.207 - 1.208
X86AsmPrinter.h updated: 1.33 - 1.34
X86ISelLowering.cpp updated: 1.282 - 1.283
X86InstrInfo.td updated: 1.292 - 1.293
X86TargetAsmInfo.cpp updated: 1.5 - 1.6
---
Log message:

Add debug support for X86/ELF targets (Linux). This allows llvm-gcc4
generated object modules to be debugged with gdb. Hopefully this helps
pre-release debugging.


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

 X86ATTAsmPrinter.cpp |6 +++---
 X86AsmPrinter.cpp|8 +++-
 X86AsmPrinter.h  |2 +-
 X86ISelLowering.cpp  |2 +-
 X86InstrInfo.td  |6 +++---
 X86TargetAsmInfo.cpp |   24 
 6 files changed, 39 insertions(+), 9 deletions(-)


Index: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp
diff -u llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.69 
llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.70
--- llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.69   Wed Oct 18 04:12:29 2006
+++ llvm/lib/Target/X86/X86ATTAsmPrinter.cppMon Oct 30 16:32:30 2006
@@ -52,7 +52,7 @@
 /// method to print assembly for each instruction.
 ///
 bool X86ATTAsmPrinter::runOnMachineFunction(MachineFunction MF) {
-  if (Subtarget-isTargetDarwin()) {
+  if (Subtarget-isTargetDarwin() || Subtarget-isTargetELF()) {
 // Let PassManager know we need debug information and relay
 // the MachineDebugInfo address on to DwarfWriter.
 DW.SetDebugInfo(getAnalysisMachineDebugInfo());
@@ -111,7 +111,7 @@
F-getLinkage() == Function::WeakLinkage))
 O  _llvm$workaround$fake$stub_  CurrentFnName  :\n;
 
-  if (Subtarget-isTargetDarwin()) {
+  if (Subtarget-isTargetDarwin() || Subtarget-isTargetELF()) {
 // Emit pre-function debug information.
 DW.BeginFunction(MF);
   }
@@ -141,7 +141,7 @@
   if (TAI-hasDotTypeDotSizeDirective())
 O  \t.size   CurrentFnName  , .-  CurrentFnName  \n;
 
-  if (Subtarget-isTargetDarwin()) {
+  if (Subtarget-isTargetDarwin() || Subtarget-isTargetELF()) {
 // Emit post-function debug information.
 DW.EndFunction();
   }


Index: llvm/lib/Target/X86/X86AsmPrinter.cpp
diff -u llvm/lib/Target/X86/X86AsmPrinter.cpp:1.207 
llvm/lib/Target/X86/X86AsmPrinter.cpp:1.208
--- llvm/lib/Target/X86/X86AsmPrinter.cpp:1.207 Sat Oct 28 00:56:06 2006
+++ llvm/lib/Target/X86/X86AsmPrinter.cpp   Mon Oct 30 16:32:30 2006
@@ -116,6 +116,9 @@
 
 // Emit initial debug information.
 DW.BeginModule(M);
+  } else if (Subtarget-isTargetELF()) {
+// Emit initial debug information.
+DW.BeginModule(M);
   }
 
   return AsmPrinter::doInitialization(M);
@@ -278,7 +281,7 @@
   O  \t.long\t0\n;
 }
 
-// Emit initial debug information.
+// Emit final debug information.
 DW.EndModule();
 
 // Funny Darwin hack: This flag tells the linker that no global symbols
@@ -287,6 +290,9 @@
 // linker can safely perform dead code stripping.  Since LLVM never
 // generates code that does this, it is always safe to set.
 O  \t.subsections_via_symbols\n;
+  } else if (Subtarget-isTargetELF()) {
+// Emit final debug information.
+DW.EndModule();
   }
 
   AsmPrinter::doFinalization(M);


Index: llvm/lib/Target/X86/X86AsmPrinter.h
diff -u llvm/lib/Target/X86/X86AsmPrinter.h:1.33 
llvm/lib/Target/X86/X86AsmPrinter.h:1.34
--- llvm/lib/Target/X86/X86AsmPrinter.h:1.33Mon Sep 25 22:57:53 2006
+++ llvm/lib/Target/X86/X86AsmPrinter.h Mon Oct 30 16:32:30 2006
@@ -67,7 +67,7 @@
 
   void getAnalysisUsage(AnalysisUsage AU) const {
 AU.setPreservesAll();
-if (Subtarget-isTargetDarwin()) {
+if (Subtarget-isTargetDarwin() || Subtarget-isTargetELF()) {
   AU.addRequiredMachineDebugInfo();
 }
 MachineFunctionPass::getAnalysisUsage(AU);


Index: llvm/lib/Target/X86/X86ISelLowering.cpp
diff -u llvm/lib/Target/X86/X86ISelLowering.cpp:1.282 
llvm/lib/Target/X86/X86ISelLowering.cpp:1.283
--- llvm/lib/Target/X86/X86ISelLowering.cpp:1.282   Mon Oct 30 02:02:39 2006
+++ llvm/lib/Target/X86/X86ISelLowering.cpp Mon Oct 30 16:32:30 2006
@@ -219,7 +219,7 @@
   setOperationAction(ISD::LOCATION, MVT::Other, Expand);
   setOperationAction(ISD::DEBUG_LOC, MVT::Other, Expand);
   // FIXME - use subtarget debug flags
-  if (!Subtarget-isTargetDarwin())
+  if (!Subtarget-isTargetDarwin()  !Subtarget-isTargetELF())
 setOperationAction(ISD::DEBUG_LABEL, MVT::Other, Expand);
 
   // VASTART needs to be custom lowered to use the VarArgsFrameIndex


Index: llvm/lib/Target/X86/X86InstrInfo.td
diff -u llvm/lib/Target/X86/X86InstrInfo.td:1.292 
llvm/lib/Target/X86/X86InstrInfo.td:1.293
--- llvm/lib/Target/X86/X86InstrInfo.td:1.292   Fri Oct 13 16:14:26 2006
+++ llvm/lib/Target/X86/X86InstrInfo.td Mon Oct 30 16:32:30 2006
@@ -2451,9 +2451,9 @@
 [(dwarf_loc (i32 imm:$line), (i32 imm:$col),
   (i32 imm:$file))];
 
-def DWARF_LABEL : I0, Pseudo, (ops i32imm:$id),
-   

[llvm-commits] CVS: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp X86AsmPrinter.cpp X86AsmPrinter.h X86ISelLowering.cpp X86IntelAsmPrinter.cpp X86MachineFunctionInfo.h

2006-09-25 Thread Chris Lattner


Changes in directory llvm/lib/Target/X86:

X86ATTAsmPrinter.cpp updated: 1.64 - 1.65
X86AsmPrinter.cpp updated: 1.199 - 1.200
X86AsmPrinter.h updated: 1.32 - 1.33
X86ISelLowering.cpp updated: 1.263 - 1.264
X86IntelAsmPrinter.cpp updated: 1.57 - 1.58
X86MachineFunctionInfo.h updated: 1.3 - 1.4
---
Log message:

Various random and minor code cleanups.


---
Diffs of the changes:  (+39 -56)

 X86ATTAsmPrinter.cpp |7 ++--
 X86AsmPrinter.cpp|   67 ++-
 X86AsmPrinter.h  |7 ++--
 X86ISelLowering.cpp  |5 +--
 X86IntelAsmPrinter.cpp   |7 ++--
 X86MachineFunctionInfo.h |2 -
 6 files changed, 39 insertions(+), 56 deletions(-)


Index: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp
diff -u llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.64 
llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.65
--- llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.64   Wed Sep 20 17:03:51 2006
+++ llvm/lib/Target/X86/X86ATTAsmPrinter.cppMon Sep 25 22:57:53 2006
@@ -48,9 +48,8 @@
 
   // Populate function information map.  Actually, We don't want to populate
   // non-stdcall or non-fastcall functions' information right now.
-  if (CC == CallingConv::X86_StdCall || CC == CallingConv::X86_FastCall) {
-FunctionInfoMap[F] = *(MF.getInfoX86FunctionInfo());
-  }
+  if (CC == CallingConv::X86_StdCall || CC == CallingConv::X86_FastCall)
+FunctionInfoMap[F] = *MF.getInfoX86FunctionInfo();
 
   X86SharedAsmPrinter::decorateName(CurrentFnName, F);
 
@@ -200,7 +199,7 @@
 bool isExt = (GV-isExternal() || GV-hasWeakLinkage() ||
   GV-hasLinkOnceLinkage());
 
-X86SharedAsmPrinter::decorateName(Name, (Function*)GV);
+X86SharedAsmPrinter::decorateName(Name, GV);
 
 if (X86PICStyle == PICStyle::Stub 
 TM.getRelocationModel() != Reloc::Static) {


Index: llvm/lib/Target/X86/X86AsmPrinter.cpp
diff -u llvm/lib/Target/X86/X86AsmPrinter.cpp:1.199 
llvm/lib/Target/X86/X86AsmPrinter.cpp:1.200
--- llvm/lib/Target/X86/X86AsmPrinter.cpp:1.199 Wed Sep 20 17:03:51 2006
+++ llvm/lib/Target/X86/X86AsmPrinter.cpp   Mon Sep 25 22:57:53 2006
@@ -33,88 +33,75 @@
 Statistic llvm::EmittedInsts(asm-printer,
Number of machine instrs printed);
 
-static X86FunctionInfo calculateFunctionInfo(const Function* F,
- const TargetData* TD) 
-{
+static X86FunctionInfo calculateFunctionInfo(const Function *F,
+ const TargetData *TD) {
   X86FunctionInfo Info;
-  uint64_t size = 0;
+  uint64_t Size = 0;
   
   switch (F-getCallingConv()) {
-   case CallingConv::X86_StdCall:
+  case CallingConv::X86_StdCall:
 Info.setDecorationStyle(StdCall);
 break;
-   case CallingConv::X86_FastCall:
+  case CallingConv::X86_FastCall:
 Info.setDecorationStyle(FastCall);
 break;
-   default:
+  default:
 return Info;
   }
 
-  for (Function::const_arg_iterator AI = F-arg_begin(),
-AE = F-arg_end();
-   AI != AE;
-   ++AI) {
-size += TD-getTypeSize(AI-getType());
-  }
+  for (Function::const_arg_iterator AI = F-arg_begin(), AE = F-arg_end();
+   AI != AE; ++AI)
+Size += TD-getTypeSize(AI-getType());
 
   // We're not supporting to huge arguments :)
-  Info.setBytesToPopOnReturn((unsigned int)size);
-
+  Info.setBytesToPopOnReturn((unsigned int)Size);
   return Info;
 }
 
 
-// Query FunctionInfoMap and use this information for various name decoration
-void X86SharedAsmPrinter::decorateName(std::string Name, const GlobalValue* 
GV)
-{
-  const X86FunctionInfo* Info;
-  const Function* F;
-  
-  if ((F = dyn_castFunction(GV)) == NULL) {
-return;
-  }
-
-  unsigned CC = F-getCallingConv();
+/// decorateName - Query FunctionInfoMap and use this information for various
+/// name decoration.
+void X86SharedAsmPrinter::decorateName(std::string Name,
+   const GlobalValue *GV) {
+  const Function *F = dyn_castFunction(GV);
+  if (!F) return;
 
   // We don't want to decorate non-stdcall or non-fastcall functions right now
-  if (CC != CallingConv::X86_StdCall  CC != CallingConv::X86_FastCall) {
+  unsigned CC = F-getCallingConv();
+  if (CC != CallingConv::X86_StdCall  CC != CallingConv::X86_FastCall)
 return;
-  }
 
   FMFInfoMap::const_iterator info_item = FunctionInfoMap.find(F);
 
+  const X86FunctionInfo *Info;
   if (info_item == FunctionInfoMap.end()) {
 // Calculate apropriate function info and populate map
 FunctionInfoMap[F] = calculateFunctionInfo(F, TM.getTargetData());
 Info = FunctionInfoMap[F];
   } else {
-Info = (info_item-second);
+Info = info_item-second;
   }
 
   switch (Info-getDecorationStyle()) {
-   case None:
+  case None:
 break;
-   case StdCall:
-if (!F-isVarArg()) {
-  // Variadic functions do not receive @0 suffix
+  case StdCall:
+if (!F-isVarArg()) // 

[llvm-commits] CVS: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp X86AsmPrinter.cpp X86AsmPrinter.h X86ISelLowering.cpp X86ISelLowering.h X86IntelAsmPrinter.cpp X86MachineFunctionInfo.h

2006-09-20 Thread Anton Korobeynikov


Changes in directory llvm/lib/Target/X86:

X86ATTAsmPrinter.cpp updated: 1.63 - 1.64
X86AsmPrinter.cpp updated: 1.198 - 1.199
X86AsmPrinter.h updated: 1.31 - 1.32
X86ISelLowering.cpp updated: 1.261 - 1.262
X86ISelLowering.h updated: 1.72 - 1.73
X86IntelAsmPrinter.cpp updated: 1.56 - 1.57
X86MachineFunctionInfo.h updated: 1.2 - 1.3
---
Log message:

Adding codegeneration for StdCall  FastCall calling conventions


---
Diffs of the changes:  (+771 -68)

 X86ATTAsmPrinter.cpp |   22 +
 X86AsmPrinter.cpp|   88 ++
 X86AsmPrinter.h  |   18 +
 X86ISelLowering.cpp  |  621 +++
 X86ISelLowering.h|   10 
 X86IntelAsmPrinter.cpp   |   41 ++-
 X86MachineFunctionInfo.h |   39 ++
 7 files changed, 771 insertions(+), 68 deletions(-)


Index: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp
diff -u llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.63 
llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.64
--- llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.63   Sun Sep 17 15:25:45 2006
+++ llvm/lib/Target/X86/X86ATTAsmPrinter.cppWed Sep 20 17:03:51 2006
@@ -15,8 +15,10 @@
 
 #include X86ATTAsmPrinter.h
 #include X86.h
+#include X86MachineFunctionInfo.h
 #include X86TargetMachine.h
 #include X86TargetAsmInfo.h
+#include llvm/CallingConv.h
 #include llvm/Module.h
 #include llvm/Support/Mangler.h
 #include llvm/Target/TargetAsmInfo.h
@@ -42,6 +44,16 @@
 
   // Print out labels for the function.
   const Function *F = MF.getFunction();
+  unsigned CC = F-getCallingConv();
+
+  // Populate function information map.  Actually, We don't want to populate
+  // non-stdcall or non-fastcall functions' information right now.
+  if (CC == CallingConv::X86_StdCall || CC == CallingConv::X86_FastCall) {
+FunctionInfoMap[F] = *(MF.getInfoX86FunctionInfo());
+  }
+
+  X86SharedAsmPrinter::decorateName(CurrentFnName, F);
+
   switch (F-getLinkage()) {
   default: assert(0  Unknown linkage type!);
   case Function::InternalLinkage:  // Symbols default to internal.
@@ -182,11 +194,14 @@
 bool isMemOp  = Modifier  !strcmp(Modifier, mem);
 if (!isMemOp  !isCallOp) O  '$';
 
-GlobalValue *GV = MO.getGlobal();
+GlobalValue *GV = MO.getGlobal();
 std::string Name = Mang-getValueName(GV);
 
 bool isExt = (GV-isExternal() || GV-hasWeakLinkage() ||
   GV-hasLinkOnceLinkage());
+
+X86SharedAsmPrinter::decorateName(Name, (Function*)GV);
+
 if (X86PICStyle == PICStyle::Stub 
 TM.getRelocationModel() != Reloc::Static) {
   // Link-once, External, or Weakly-linked global variables need
@@ -202,8 +217,6 @@
 }
   } else {
 if (GV-hasDLLImportLinkage()) {
-  // FIXME: This should be fixed with full support of stdcall  
fastcall
-  // CC's
   O  __imp_;  
 } 
 O  Name;
@@ -213,12 +226,9 @@
 O  -\L  getFunctionNumber()  $pb\;
 } else {
   if (GV-hasDLLImportLinkage()) {
-// FIXME: This should be fixed with full support of stdcall  fastcall
-// CC's
 O  __imp_;  
   }   
   O  Name;
-   
 }
 
 int Offset = MO.getOffset();


Index: llvm/lib/Target/X86/X86AsmPrinter.cpp
diff -u llvm/lib/Target/X86/X86AsmPrinter.cpp:1.198 
llvm/lib/Target/X86/X86AsmPrinter.cpp:1.199
--- llvm/lib/Target/X86/X86AsmPrinter.cpp:1.198 Sun Sep 17 15:25:45 2006
+++ llvm/lib/Target/X86/X86AsmPrinter.cpp   Wed Sep 20 17:03:51 2006
@@ -17,18 +17,106 @@
 #include X86AsmPrinter.h
 #include X86ATTAsmPrinter.h
 #include X86IntelAsmPrinter.h
+#include X86MachineFunctionInfo.h
 #include X86Subtarget.h
+#include llvm/ADT/StringExtras.h
+#include llvm/CallingConv.h
 #include llvm/Constants.h
 #include llvm/Module.h
 #include llvm/Type.h
 #include llvm/Assembly/Writer.h
 #include llvm/Support/Mangler.h
 #include llvm/Target/TargetAsmInfo.h
+
 using namespace llvm;
 
 Statistic llvm::EmittedInsts(asm-printer,
Number of machine instrs printed);
 
+static X86FunctionInfo calculateFunctionInfo(const Function* F,
+ const TargetData* TD) 
+{
+  X86FunctionInfo Info;
+  uint64_t size = 0;
+  
+  switch (F-getCallingConv()) {
+   case CallingConv::X86_StdCall:
+Info.setDecorationStyle(StdCall);
+break;
+   case CallingConv::X86_FastCall:
+Info.setDecorationStyle(FastCall);
+break;
+   default:
+return Info;
+  }
+
+  for (Function::const_arg_iterator AI = F-arg_begin(),
+AE = F-arg_end();
+   AI != AE;
+   ++AI) {
+size += TD-getTypeSize(AI-getType());
+  }
+
+  // We're not supporting to huge arguments :)
+  Info.setBytesToPopOnReturn((unsigned int)size);
+
+  return Info;
+}
+
+
+// Query FunctionInfoMap and use this information for various name decoration
+void X86SharedAsmPrinter::decorateName(std::string Name, const GlobalValue* 
GV)
+{
+  const X86FunctionInfo* Info;
+  

[llvm-commits] CVS: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp X86AsmPrinter.cpp X86AsmPrinter.h X86ISelLowering.cpp X86IntelAsmPrinter.cpp X86Subtarget.h

2006-09-14 Thread Anton Korobeynikov


Changes in directory llvm/lib/Target/X86:

X86ATTAsmPrinter.cpp updated: 1.61 - 1.62
X86AsmPrinter.cpp updated: 1.196 - 1.197
X86AsmPrinter.h updated: 1.30 - 1.31
X86ISelLowering.cpp updated: 1.258 - 1.259
X86IntelAsmPrinter.cpp updated: 1.55 - 1.56
X86Subtarget.h updated: 1.16 - 1.17
---
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:  (+123 -9)

 X86ATTAsmPrinter.cpp   |   28 +++
 X86AsmPrinter.cpp  |   24 +++
 X86AsmPrinter.h|3 ++
 X86ISelLowering.cpp|   16 +
 X86IntelAsmPrinter.cpp |   59 +
 X86Subtarget.h |2 +
 6 files changed, 123 insertions(+), 9 deletions(-)


Index: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp
diff -u llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.61 
llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.62
--- llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.61   Fri Sep  8 01:48:29 2006
+++ llvm/lib/Target/X86/X86ATTAsmPrinter.cppThu Sep 14 13:23:27 2006
@@ -48,10 +48,13 @@
 SwitchToTextSection(TAI-getTextSection(), F);
 EmitAlignment(4, F); // FIXME: This should be parameterized somewhere.
 break;
+  case Function::DLLExportLinkage:
+DLLExportedFns.insert(Mang-makeNameProper(F-getName(), ));
+//FALLS THROUGH
   case Function::ExternalLinkage:
 SwitchToTextSection(TAI-getTextSection(), F);
 EmitAlignment(4, F); // FIXME: This should be parameterized somewhere.
-O  \t.globl\t  CurrentFnName  \n;
+O  \t.globl\t  CurrentFnName  \n;
 break;
   case Function::WeakLinkage:
   case Function::LinkOnceLinkage:
@@ -179,8 +182,9 @@
 bool isMemOp  = Modifier  !strcmp(Modifier, mem);
 if (!isMemOp  !isCallOp) O  '$';
 
-GlobalValue *GV = MO.getGlobal();
+GlobalValue *GV = MO.getGlobal();
 std::string Name = Mang-getValueName(GV);
+
 bool isExt = (GV-isExternal() || GV-hasWeakLinkage() ||
   GV-hasLinkOnceLinkage());
 if (X86PICStyle == PICStyle::Stub 
@@ -196,13 +200,27 @@
   GVStubs.insert(Name);
   O  L  Name  $non_lazy_ptr;
 }
-  } else
+  } else {
+if (GV-hasDLLImportLinkage()) {
+  // FIXME: This should be fixed with full support of stdcall  
fastcall
+  // CC's
+  O  __imp_;  
+} 
 O  Name;
+  }
+  
   if (!isCallOp  TM.getRelocationModel() == Reloc::PIC_)
 O  -\L  getFunctionNumber()  $pb\;
-} else
+} else {
+  if (GV-hasDLLImportLinkage()) {
+// FIXME: This should be fixed with full support of stdcall  fastcall
+// CC's
+O  __imp_;  
+  }   
   O  Name;
-
+   
+}
+
 int Offset = MO.getOffset();
 if (Offset  0)
   O  +  Offset;


Index: llvm/lib/Target/X86/X86AsmPrinter.cpp
diff -u llvm/lib/Target/X86/X86AsmPrinter.cpp:1.196 
llvm/lib/Target/X86/X86AsmPrinter.cpp:1.197
--- llvm/lib/Target/X86/X86AsmPrinter.cpp:1.196 Fri Sep  8 01:48:29 2006
+++ llvm/lib/Target/X86/X86AsmPrinter.cpp   Thu Sep 14 13:23:27 2006
@@ -112,6 +112,9 @@
   case GlobalValue::AppendingLinkage:
 // FIXME: appending linkage variables should go into a section of
 // their name or something.  For now, just emit them as external.
+  case GlobalValue::DLLExportLinkage:
+DLLExportedGVs.insert(Mang-makeNameProper(I-getName(),));
+// FALL THROUGH
   case GlobalValue::ExternalLinkage:
 // If external or appending, declare as a global symbol
 O  \t.globl   name  \n;
@@ -134,6 +137,27 @@
 }
   }
   
+  // Output linker support code for dllexported globals
+  if (DLLExportedGVs.begin() != DLLExportedGVs.end()) {
+SwitchToDataSection(.section .drectve, 0);
+  }
+
+  for (std::setstd::string::iterator i = DLLExportedGVs.begin(),
+ e = DLLExportedGVs.end();
+ i != e; ++i) {
+O  \t.ascii \ -export:  *i  ,data\\n;
+  }
+
+  if (DLLExportedFns.begin() != DLLExportedFns.end()) {
+SwitchToDataSection(.section .drectve, 0);
+  }
+
+  for (std::setstd::string::iterator i = DLLExportedFns.begin(),
+ e = DLLExportedFns.end();
+ i != e; ++i) {
+O  \t.ascii \ -export:  *i  \\n;
+  }
+ 
   if (Subtarget-isTargetDarwin()) {
 SwitchToDataSection(, 0);
 


Index: llvm/lib/Target/X86/X86AsmPrinter.h
diff -u llvm/lib/Target/X86/X86AsmPrinter.h:1.30 
llvm/lib/Target/X86/X86AsmPrinter.h:1.31
--- llvm/lib/Target/X86/X86AsmPrinter.h:1.30Fri Sep  8 01:48:29 2006
+++ llvm/lib/Target/X86/X86AsmPrinter.h Thu Sep 14 13:23:27 2006
@@ -63,6 +63,9 @@
   // Necessary for Darwin to print out the apprioriate types of linker stubs
   std::setstd::string FnStubs, GVStubs, 

[llvm-commits] CVS: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp X86AsmPrinter.cpp X86AsmPrinter.h

2006-07-26 Thread Jim Laskey


Changes in directory llvm/lib/Target/X86:

X86ATTAsmPrinter.cpp updated: 1.55 - 1.56
X86AsmPrinter.cpp updated: 1.190 - 1.191
X86AsmPrinter.h updated: 1.24 - 1.25
---
Log message:

Use the predicate.


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

 X86ATTAsmPrinter.cpp |   18 +-
 X86AsmPrinter.cpp|   10 +-
 X86AsmPrinter.h  |2 +-
 3 files changed, 15 insertions(+), 15 deletions(-)


Index: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp
diff -u llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.55 
llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.56
--- llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.55   Wed Jul 26 20:13:04 2006
+++ llvm/lib/Target/X86/X86ATTAsmPrinter.cppWed Jul 26 21:05:13 2006
@@ -26,7 +26,7 @@
 /// method to print assembly for each instruction.
 ///
 bool X86ATTAsmPrinter::runOnMachineFunction(MachineFunction MF) {
-  if (Subtarget-TargetType == X86Subtarget::isDarwin) {
+  if (Subtarget-isTargetDarwin()) {
 // Let PassManager know we need debug information and relay
 // the MachineDebugInfo address on to DwarfWriter.
 DW.SetDebugInfo(getAnalysisMachineDebugInfo());
@@ -56,7 +56,7 @@
 break;
   case Function::WeakLinkage:
   case Function::LinkOnceLinkage:
-if (Subtarget-TargetType == X86Subtarget::isDarwin) {
+if (Subtarget-isTargetDarwin()) {
   SwitchToTextSection(
 .section __TEXT,__textcoal_nt,coalesced,pure_instructions, 
F);
   O  \t.globl\t  CurrentFnName  \n;
@@ -78,7 +78,7 @@
   }
   O  CurrentFnName  :\n;
 
-  if (Subtarget-TargetType == X86Subtarget::isDarwin) {
+  if (Subtarget-isTargetDarwin()) {
 // Emit pre-function debug information.
 DW.BeginFunction(MF);
   }
@@ -101,7 +101,7 @@
   if (HasDotTypeDotSizeDirective)
 O  \t.size   CurrentFnName  , .-  CurrentFnName  \n;
 
-  if (Subtarget-TargetType == X86Subtarget::isDarwin) {
+  if (Subtarget-isTargetDarwin()) {
 // Emit post-function debug information.
 DW.EndFunction();
   }
@@ -143,7 +143,7 @@
 if (!isMemOp) O  '$';
 O  PrivateGlobalPrefix  JTI  getFunctionNumber()  _
MO.getJumpTableIndex();
-if (Subtarget-TargetType == X86Subtarget::isDarwin  
+if (Subtarget-isTargetDarwin()  
 TM.getRelocationModel() == Reloc::PIC_)
   O  -\L  getFunctionNumber()  $pb\;
 return;
@@ -153,7 +153,7 @@
 if (!isMemOp) O  '$';
 O  PrivateGlobalPrefix  CPI  getFunctionNumber()  _
MO.getConstantPoolIndex();
-if (Subtarget-TargetType == X86Subtarget::isDarwin  
+if (Subtarget-isTargetDarwin()  
 TM.getRelocationModel() == Reloc::PIC_)
   O  -\L  getFunctionNumber()  $pb\;
 int Offset = MO.getOffset();
@@ -168,7 +168,7 @@
 bool isMemOp  = Modifier  !strcmp(Modifier, mem);
 if (!isMemOp  !isCallOp) O  '$';
 // Darwin block shameless ripped from PPCAsmPrinter.cpp
-if (Subtarget-TargetType == X86Subtarget::isDarwin  
+if (Subtarget-isTargetDarwin()  
 TM.getRelocationModel() != Reloc::Static) {
   GlobalValue *GV = MO.getGlobal();
   std::string Name = Mang-getValueName(GV);
@@ -201,7 +201,7 @@
   case MachineOperand::MO_ExternalSymbol: {
 bool isCallOp = Modifier  !strcmp(Modifier, call);
 if (isCallOp  
-Subtarget-TargetType == X86Subtarget::isDarwin  
+Subtarget-isTargetDarwin()  
 TM.getRelocationModel() != Reloc::Static) {
   std::string Name(GlobalPrefix);
   Name += MO.getSymbolName();
@@ -344,7 +344,7 @@
 void X86ATTAsmPrinter::printMachineInstruction(const MachineInstr *MI) {
   ++EmittedInsts;
   // This works around some Darwin assembler bugs.
-  if (Subtarget-TargetType == X86Subtarget::isDarwin) {
+  if (Subtarget-isTargetDarwin()) {
 switch (MI-getOpcode()) {
 case X86::REP_MOVSB:
   O  rep/movsb (%esi),(%edi)\n;


Index: llvm/lib/Target/X86/X86AsmPrinter.cpp
diff -u llvm/lib/Target/X86/X86AsmPrinter.cpp:1.190 
llvm/lib/Target/X86/X86AsmPrinter.cpp:1.191
--- llvm/lib/Target/X86/X86AsmPrinter.cpp:1.190 Wed Jul 26 20:13:04 2006
+++ llvm/lib/Target/X86/X86AsmPrinter.cpp   Wed Jul 26 21:05:13 2006
@@ -87,7 +87,7 @@
   default: break;
   }
   
-  if (Subtarget-TargetType == X86Subtarget::isDarwin) {
+  if (Subtarget-isTargetDarwin()) {
 // Emit initial debug information.
 DW.BeginModule(M);
   }
@@ -118,7 +118,7 @@
 if (C-isNullValue()  /* FIXME: Verify correct */
 (I-hasInternalLinkage() || I-hasWeakLinkage() ||
  I-hasLinkOnceLinkage() ||
- (Subtarget-TargetType == X86Subtarget::isDarwin  
+ (Subtarget-isTargetDarwin()  
   I-hasExternalLinkage()  !I-hasSection( {
   if (Size == 0) Size = 1;   // .comm Foo, 0 is undefined, avoid it.
   if (I-hasExternalLinkage()) {
@@ -130,7 +130,7 @@
 if (LCOMMDirective != NULL) {
   if (I-hasInternalLinkage()) {
 O  LCOMMDirective  name  ,  Size;
-if (Subtarget-TargetType == X86Subtarget::isDarwin)
+if (Subtarget-isTargetDarwin())

[llvm-commits] CVS: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp X86AsmPrinter.cpp X86AsmPrinter.h X86Subtarget.cpp

2006-05-25 Thread Evan Cheng


Changes in directory llvm/lib/Target/X86:

X86ATTAsmPrinter.cpp updated: 1.47 - 1.48
X86AsmPrinter.cpp updated: 1.181 - 1.182
X86AsmPrinter.h updated: 1.18 - 1.19
X86Subtarget.cpp updated: 1.26 - 1.27
---
Log message:

X86 / Cygwin asm / alignment fixes.
Patch contributed by Anton Korobeynikov!


---
Diffs of the changes:  (+42 -30)

 X86ATTAsmPrinter.cpp |   32 
 X86AsmPrinter.cpp|   30 +-
 X86AsmPrinter.h  |8 
 X86Subtarget.cpp |2 +-
 4 files changed, 42 insertions(+), 30 deletions(-)


Index: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp
diff -u llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.47 
llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.48
--- llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.47   Tue May 16 02:21:53 2006
+++ llvm/lib/Target/X86/X86ATTAsmPrinter.cppThu May 25 16:59:08 2006
@@ -26,11 +26,9 @@
 /// method to print assembly for each instruction.
 ///
 bool X86ATTAsmPrinter::runOnMachineFunction(MachineFunction MF) {
-  //  if (forDarwin) {
-// Let PassManager know we need debug information and relay
-// the MachineDebugInfo address on to DwarfWriter.
-DW.SetDebugInfo(getAnalysisMachineDebugInfo());
-//  }
+  // Let PassManager know we need debug information and relay
+  // the MachineDebugInfo address on to DwarfWriter.
+  DW.SetDebugInfo(getAnalysisMachineDebugInfo());
 
   SetupMachineFunction(MF);
   O  \n\n;
@@ -56,11 +54,17 @@
 break;
   case Function::WeakLinkage:
   case Function::LinkOnceLinkage:
-if (forDarwin) {
+if (Subtarget-TargetType == X86Subtarget::isDarwin) {
   SwitchToTextSection(
 .section __TEXT,__textcoal_nt,coalesced,pure_instructions, 
F);
   O  \t.globl\t  CurrentFnName  \n;
   O  \t.weak_definition\t  CurrentFnName  \n;
+} else if (Subtarget-TargetType == X86Subtarget::isCygwin) {
+  EmitAlignment(4, F); // FIXME: This should be parameterized 
somewhere.
+  O  \t.section\t.llvm.linkonce.t.  CurrentFnName
+ ,\ax\\n;
+  SwitchToTextSection(, F);
+  O  \t.weak   CurrentFnName  \n;
 } else {
   EmitAlignment(4, F); // FIXME: This should be parameterized 
somewhere.
   O  \t.section\t.llvm.linkonce.t.  CurrentFnName
@@ -72,7 +76,7 @@
   }
   O  CurrentFnName  :\n;
 
-  if (forDarwin) {
+  if (Subtarget-TargetType == X86Subtarget::isDarwin) {
 // Emit pre-function debug information.
 DW.BeginFunction(MF);
   }
@@ -95,7 +99,7 @@
   if (HasDotTypeDotSizeDirective)
 O  \t.size   CurrentFnName  , .-  CurrentFnName  \n;
 
-  if (forDarwin) {
+  if (Subtarget-TargetType == X86Subtarget::isDarwin) {
 // Emit post-function debug information.
 DW.EndFunction();
   }
@@ -145,7 +149,8 @@
 if (!isMemOp) O  '$';
 O  PrivateGlobalPrefix  CPI  getFunctionNumber()  _
MO.getConstantPoolIndex();
-if (forDarwin  TM.getRelocationModel() == Reloc::PIC)
+if (Subtarget-TargetType == X86Subtarget::isDarwin  
+TM.getRelocationModel() == Reloc::PIC)
   O  -\L  getFunctionNumber()  $pb\;
 int Offset = MO.getOffset();
 if (Offset  0)
@@ -159,7 +164,8 @@
 bool isMemOp  = Modifier  !strcmp(Modifier, mem);
 if (!isMemOp  !isCallOp) O  '$';
 // Darwin block shameless ripped from PPCAsmPrinter.cpp
-if (forDarwin  TM.getRelocationModel() != Reloc::Static) {
+if (Subtarget-TargetType == X86Subtarget::isDarwin  
+TM.getRelocationModel() != Reloc::Static) {
   GlobalValue *GV = MO.getGlobal();
   std::string Name = Mang-getValueName(GV);
   // Link-once, External, or Weakly-linked global variables need
@@ -190,7 +196,9 @@
   }
   case MachineOperand::MO_ExternalSymbol: {
 bool isCallOp = Modifier  !strcmp(Modifier, call);
-if (isCallOp  forDarwin  TM.getRelocationModel() != Reloc::Static) {
+if (isCallOp  
+Subtarget-TargetType == X86Subtarget::isDarwin  
+TM.getRelocationModel() != Reloc::Static) {
   std::string Name(GlobalPrefix);
   Name += MO.getSymbolName();
   FnStubs.insert(Name);
@@ -332,7 +340,7 @@
 void X86ATTAsmPrinter::printMachineInstruction(const MachineInstr *MI) {
   ++EmittedInsts;
   // This works around some Darwin assembler bugs.
-  if (forDarwin) {
+  if (Subtarget-TargetType == X86Subtarget::isDarwin) {
 switch (MI-getOpcode()) {
 case X86::REP_MOVSB:
   O  rep/movsb (%esi),(%edi)\n;


Index: llvm/lib/Target/X86/X86AsmPrinter.cpp
diff -u llvm/lib/Target/X86/X86AsmPrinter.cpp:1.181 
llvm/lib/Target/X86/X86AsmPrinter.cpp:1.182
--- llvm/lib/Target/X86/X86AsmPrinter.cpp:1.181 Tue May  9 00:12:53 2006
+++ llvm/lib/Target/X86/X86AsmPrinter.cpp   Thu May 25 16:59:08 2006
@@ -46,9 +46,6 @@
 
 /// doInitialization
 bool X86SharedAsmPrinter::doInitialization(Module M) {
-  const X86Subtarget *Subtarget = TM.getSubtargetX86Subtarget();
-  
-  forDarwin = false;
   PrivateGlobalPrefix = .L;
   DefaultTextSection = .text;
   DefaultDataSection = .data;
@@ 

[llvm-commits] CVS: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp X86AsmPrinter.cpp X86AsmPrinter.h X86IntelAsmPrinter.cpp

2006-05-08 Thread Chris Lattner


Changes in directory llvm/lib/Target/X86:

X86ATTAsmPrinter.cpp updated: 1.45 - 1.46
X86AsmPrinter.cpp updated: 1.180 - 1.181
X86AsmPrinter.h updated: 1.17 - 1.18
X86IntelAsmPrinter.cpp updated: 1.45 - 1.46
---
Log message:

Fix the MASM asmprinter's lies.  It does not want to emit code to .text/.data
it wants it emitted to _text/_data.


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

 X86ATTAsmPrinter.cpp   |4 ++--
 X86AsmPrinter.cpp  |6 --
 X86AsmPrinter.h|4 
 X86IntelAsmPrinter.cpp |   10 +++---
 4 files changed, 17 insertions(+), 7 deletions(-)


Index: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp
diff -u llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.45 
llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.46
--- llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.45   Mon May  8 23:59:56 2006
+++ llvm/lib/Target/X86/X86ATTAsmPrinter.cppTue May  9 00:12:53 2006
@@ -46,11 +46,11 @@
   switch (F-getLinkage()) {
   default: assert(0  Unknown linkage type!);
   case Function::InternalLinkage:  // Symbols default to internal.
-SwitchToTextSection(.text, F);
+SwitchToTextSection(DefaultTextSection, F);
 EmitAlignment(4, F); // FIXME: This should be parameterized somewhere.
 break;
   case Function::ExternalLinkage:
-SwitchToTextSection(.text, F);
+SwitchToTextSection(DefaultTextSection, F);
 EmitAlignment(4, F); // FIXME: This should be parameterized somewhere.
 O  \t.globl\t  CurrentFnName  \n;
 break;


Index: llvm/lib/Target/X86/X86AsmPrinter.cpp
diff -u llvm/lib/Target/X86/X86AsmPrinter.cpp:1.180 
llvm/lib/Target/X86/X86AsmPrinter.cpp:1.181
--- llvm/lib/Target/X86/X86AsmPrinter.cpp:1.180 Mon May  8 23:59:56 2006
+++ llvm/lib/Target/X86/X86AsmPrinter.cpp   Tue May  9 00:12:53 2006
@@ -50,6 +50,8 @@
   
   forDarwin = false;
   PrivateGlobalPrefix = .L;
+  DefaultTextSection = .text;
+  DefaultDataSection = .data;
   
   switch (Subtarget-TargetType) {
   case X86Subtarget::isDarwin:
@@ -119,7 +121,7 @@
   O  \t.zerofill __DATA__, __common,   name  , 
  Size  ,   Align;
   } else {
-SwitchToDataSection(.data, I);
+SwitchToDataSection(DefaultDataSection, I);
 if (LCOMMDirective != NULL) {
   if (I-hasInternalLinkage()) {
 O  LCOMMDirective  name  ,  Size;
@@ -157,7 +159,7 @@
 O  \t.globl   name  \n;
 // FALL THROUGH
   case GlobalValue::InternalLinkage:
-SwitchToDataSection(.data, I);
+SwitchToDataSection(DefaultDataSection, I);
 break;
   default:
 assert(0  Unknown linkage type!);


Index: llvm/lib/Target/X86/X86AsmPrinter.h
diff -u llvm/lib/Target/X86/X86AsmPrinter.h:1.17 
llvm/lib/Target/X86/X86AsmPrinter.h:1.18
--- llvm/lib/Target/X86/X86AsmPrinter.h:1.17Tue May  2 12:34:51 2006
+++ llvm/lib/Target/X86/X86AsmPrinter.h Tue May  9 00:12:53 2006
@@ -69,6 +69,10 @@
   }
 
   bool forDarwin;  // FIXME: eliminate.
+  
+  const char *DefaultTextSection;   // _text for MASM, .text for others.
+  const char *DefaultDataSection;   // _data for MASM, .data for others.
+  
 
   // Necessary for Darwin to print out the apprioriate types of linker stubs
   std::setstd::string FnStubs, GVStubs, LinkOnceStubs;


Index: llvm/lib/Target/X86/X86IntelAsmPrinter.cpp
diff -u llvm/lib/Target/X86/X86IntelAsmPrinter.cpp:1.45 
llvm/lib/Target/X86/X86IntelAsmPrinter.cpp:1.46
--- llvm/lib/Target/X86/X86IntelAsmPrinter.cpp:1.45 Mon May  8 23:59:56 2006
+++ llvm/lib/Target/X86/X86IntelAsmPrinter.cpp  Tue May  9 00:12:53 2006
@@ -37,7 +37,7 @@
   EmitConstantPool(MF.getConstantPool());
 
   // Print out labels for the function.
-  SwitchToTextSection(.code, MF.getFunction());
+  SwitchToTextSection(_text, MF.getFunction());
   EmitAlignment(4);
   if (MF.getFunction()-getLinkage() == GlobalValue::ExternalLinkage)
 O  \tpublic   CurrentFnName  \n;
@@ -302,6 +302,9 @@
   Data64bitsDirective = \tdq\t;
   HasDotTypeDotSizeDirective = false;
   Mang-markCharUnacceptable('.');
+  
+  DefaultTextSection = _text;
+  DefaultDataSection = _data;
 
   O  \t.686\n\t.model flat\n\n;
 
@@ -359,7 +362,7 @@
   O  \tpublic   name  \n;
   // FALL THROUGH
 case GlobalValue::InternalLinkage:
-  SwitchToDataSection(.data, I);
+  SwitchToDataSection(DefaultDataSection, I);
   break;
 default:
   assert(0  Unknown linkage type!);
@@ -378,7 +381,8 @@
   
   // Bypass X86SharedAsmPrinter::doFinalization().
   AsmPrinter::doFinalization(M);
-  SwitchToDataSection(, 0);
+  SwitchToDataSection(_data, 0);
+  O  _data\tends\n;
   O  \tend\n;
   return false; // success
 }



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


[llvm-commits] CVS: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp X86AsmPrinter.cpp X86AsmPrinter.h X86IntelAsmPrinter.cpp

2006-05-01 Thread Nate Begeman


Changes in directory llvm/lib/Target/X86:

X86ATTAsmPrinter.cpp updated: 1.37 - 1.38
X86AsmPrinter.cpp updated: 1.173 - 1.174
X86AsmPrinter.h updated: 1.15 - 1.16
X86IntelAsmPrinter.cpp updated: 1.35 - 1.36
---
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:  (+20 -14)

 X86ATTAsmPrinter.cpp   |8 
 X86AsmPrinter.cpp  |   14 +-
 X86AsmPrinter.h|4 +++-
 X86IntelAsmPrinter.cpp |8 
 4 files changed, 20 insertions(+), 14 deletions(-)


Index: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp
diff -u llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.37 
llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.38
--- llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.37   Fri Apr 28 18:19:39 2006
+++ llvm/lib/Target/X86/X86ATTAsmPrinter.cppTue May  2 00:37:32 2006
@@ -80,10 +80,10 @@
   for (MachineFunction::const_iterator I = MF.begin(), E = MF.end();
I != E; ++I) {
 // Print a label for the basic block.
-if (I-pred_begin() != I-pred_end())
-  O  PrivateGlobalPrefix  BB  CurrentFnName  _  
I-getNumber()
- :\t  CommentString I-getBasicBlock()-getName()
- \n;
+if (I-pred_begin() != I-pred_end()) {
+  printBasicBlockLabel(I, true);
+  O  '\n';
+}
 for (MachineBasicBlock::const_iterator II = I-begin(), E = I-end();
  II != E; ++II) {
   // Print the assembly for the instruction.


Index: llvm/lib/Target/X86/X86AsmPrinter.cpp
diff -u llvm/lib/Target/X86/X86AsmPrinter.cpp:1.173 
llvm/lib/Target/X86/X86AsmPrinter.cpp:1.174
--- llvm/lib/Target/X86/X86AsmPrinter.cpp:1.173 Sat Apr 22 13:53:45 2006
+++ llvm/lib/Target/X86/X86AsmPrinter.cpp   Tue May  2 00:37:32 2006
@@ -206,12 +206,16 @@
   return false; // success
 }
 
-void X86SharedAsmPrinter::printBasicBlockLabel(const MachineBasicBlock *MBB) 
- const {
+void X86SharedAsmPrinter::printBasicBlockLabel(const MachineBasicBlock *MBB,
+   bool printColon,
+   bool printComment) const {
   O  PrivateGlobalPrefix  BB 
-   Mang-getValueName(MBB-getParent()-getFunction())
-   _  MBB-getNumber()  '\t'  CommentString
-   MBB-getBasicBlock()-getName();
+ Mang-getValueName(MBB-getParent()-getFunction())  _ 
+ MBB-getNumber();
+  if (printColon)
+O  ':';
+  if (printComment)
+O  '\t'  CommentString  MBB-getBasicBlock()-getName();
 }
 
 /// createX86CodePrinterPass - Returns a pass that prints the X86 assembly code


Index: llvm/lib/Target/X86/X86AsmPrinter.h
diff -u llvm/lib/Target/X86/X86AsmPrinter.h:1.15 
llvm/lib/Target/X86/X86AsmPrinter.h:1.16
--- llvm/lib/Target/X86/X86AsmPrinter.h:1.15Sat Apr 22 13:53:45 2006
+++ llvm/lib/Target/X86/X86AsmPrinter.h Tue May  2 00:37:32 2006
@@ -89,7 +89,9 @@
MI-getOperand(Op+3).isConstantPoolIndex());
   }
 
-  virtual void printBasicBlockLabel(const MachineBasicBlock *MBB) const; 
+  virtual void printBasicBlockLabel(const MachineBasicBlock *MBB,
+bool printColon = false,
+bool printComment = true) const;
 };
 
 } // end namespace llvm


Index: llvm/lib/Target/X86/X86IntelAsmPrinter.cpp
diff -u llvm/lib/Target/X86/X86IntelAsmPrinter.cpp:1.35 
llvm/lib/Target/X86/X86IntelAsmPrinter.cpp:1.36
--- llvm/lib/Target/X86/X86IntelAsmPrinter.cpp:1.35 Mon May  1 22:58:45 2006
+++ llvm/lib/Target/X86/X86IntelAsmPrinter.cpp  Tue May  2 00:37:32 2006
@@ -72,10 +72,10 @@
   for (MachineFunction::const_iterator I = MF.begin(), E = MF.end();
I != E; ++I) {
 // Print a label for the basic block if there are any predecessors.
-if (I-pred_begin() != I-pred_end())
-  O  PrivateGlobalPrefix  BB  CurrentFnName  _  
I-getNumber()
- :\t
- CommentString I-getBasicBlock()-getName()  \n;
+if (I-pred_begin() != I-pred_end()) {
+  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/X86/X86ATTAsmPrinter.cpp X86AsmPrinter.cpp X86AsmPrinter.h X86CodeEmitter.cpp X86ISelLowering.cpp X86InstrInfo.td X86IntelAsmPrinter.cpp

2006-04-22 Thread Nate Begeman


Changes in directory llvm/lib/Target/X86:

X86ATTAsmPrinter.cpp updated: 1.33 - 1.34
X86AsmPrinter.cpp updated: 1.172 - 1.173
X86AsmPrinter.h updated: 1.14 - 1.15
X86CodeEmitter.cpp updated: 1.93 - 1.94
X86ISelLowering.cpp updated: 1.182 - 1.183
X86InstrInfo.td updated: 1.260 - 1.261
X86IntelAsmPrinter.cpp updated: 1.26 - 1.27
---
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:  (+71 -26)

 X86ATTAsmPrinter.cpp   |   20 +---
 X86AsmPrinter.cpp  |9 +
 X86AsmPrinter.h|2 ++
 X86CodeEmitter.cpp |   24 +++-
 X86ISelLowering.cpp|   19 +--
 X86InstrInfo.td|   14 +-
 X86IntelAsmPrinter.cpp |9 ++---
 7 files changed, 71 insertions(+), 26 deletions(-)


Index: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp
diff -u llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.33 
llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.34
--- llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.33   Fri Apr  7 15:44:42 2006
+++ llvm/lib/Target/X86/X86ATTAsmPrinter.cppSat Apr 22 13:53:45 2006
@@ -38,6 +38,9 @@
   // Print out constants referenced by the function
   EmitConstantPool(MF.getConstantPool());
 
+  // Print out jump tables referenced by the function
+  EmitJumpTableInfo(MF.getJumpTableInfo());
+  
   // Print out labels for the function.
   const Function *F = MF.getFunction();
   switch (F-getLinkage()) {
@@ -120,18 +123,21 @@
   O  '$';
 O  (int)MO.getImmedValue();
 return;
-  case MachineOperand::MO_MachineBasicBlock: {
-MachineBasicBlock *MBBOp = MO.getMachineBasicBlock();
-O  PrivateGlobalPrefix  BB
-   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 X86 MachineInstrs;
 abort ();
 return;
+  case MachineOperand::MO_JumpTableIndex: {
+bool isMemOp  = Modifier  !strcmp(Modifier, mem);
+if (!isMemOp) O  '$';
+O  PrivateGlobalPrefix  JTI  getFunctionNumber()  _
+   MO.getJumpTableIndex();
+// FIXME: PIC relocation model
+return;
+  }
   case MachineOperand::MO_ConstantPoolIndex: {
 bool isMemOp  = Modifier  !strcmp(Modifier, mem);
 if (!isMemOp) O  '$';


Index: llvm/lib/Target/X86/X86AsmPrinter.cpp
diff -u llvm/lib/Target/X86/X86AsmPrinter.cpp:1.172 
llvm/lib/Target/X86/X86AsmPrinter.cpp:1.173
--- llvm/lib/Target/X86/X86AsmPrinter.cpp:1.172 Thu Mar 23 12:09:44 2006
+++ llvm/lib/Target/X86/X86AsmPrinter.cpp   Sat Apr 22 13:53:45 2006
@@ -54,6 +54,7 @@
 ZeroDirective = \t.space\t;  // .space N emits N zeros.
 PrivateGlobalPrefix = L; // Marker for constant pool idxs
 ConstantPoolSection = \t.const\n;
+JumpTableSection = \t.const\n; // FIXME: depends on PIC mode
 LCOMMDirective = \t.lcomm\t;
 COMMDirectiveTakesAlignment = false;
 HasDotTypeDotSizeDirective = false;
@@ -205,6 +206,14 @@
   return false; // success
 }
 
+void X86SharedAsmPrinter::printBasicBlockLabel(const MachineBasicBlock *MBB) 
+ const {
+  O  PrivateGlobalPrefix  BB 
+   Mang-getValueName(MBB-getParent()-getFunction())
+   _  MBB-getNumber()  '\t'  CommentString
+   MBB-getBasicBlock()-getName();
+}
+
 /// createX86CodePrinterPass - Returns a pass that prints the X86 assembly code
 /// for a MachineFunction to the given output stream, using the given target
 /// machine description.


Index: llvm/lib/Target/X86/X86AsmPrinter.h
diff -u llvm/lib/Target/X86/X86AsmPrinter.h:1.14 
llvm/lib/Target/X86/X86AsmPrinter.h:1.15
--- llvm/lib/Target/X86/X86AsmPrinter.h:1.14Mon Mar 13 17:20:37 2006
+++ llvm/lib/Target/X86/X86AsmPrinter.h Sat Apr 22 13:53:45 2006
@@ -88,6 +88,8 @@
MI-getOperand(Op+3).isGlobalAddress() ||
MI-getOperand(Op+3).isConstantPoolIndex());
   }
+
+  virtual void printBasicBlockLabel(const MachineBasicBlock *MBB) const; 
 };
 
 } // end namespace llvm


Index: llvm/lib/Target/X86/X86CodeEmitter.cpp
diff -u llvm/lib/Target/X86/X86CodeEmitter.cpp:1.93 
llvm/lib/Target/X86/X86CodeEmitter.cpp:1.94
--- llvm/lib/Target/X86/X86CodeEmitter.cpp:1.93 Tue Mar 21 20:52:03 2006
+++ llvm/lib/Target/X86/X86CodeEmitter.cpp  Sat Apr 22 13:53:45 2006
@@ -35,8 +35,8 @@
   class Emitter : public MachineFunctionPass {
 const X86InstrInfo  *II;
 MachineCodeEmitter  MCE;
-std::mapconst MachineBasicBlock*, unsigned BasicBlockAddrs;
-std::vectorstd::pairconst MachineBasicBlock *, unsigned  BBRefs;
+std::mapMachineBasicBlock*, uint64_t BasicBlockAddrs;
+

[llvm-commits] CVS: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp X86AsmPrinter.cpp X86AsmPrinter.h X86IntelAsmPrinter.cpp

2005-11-21 Thread Chris Lattner


Changes in directory llvm/lib/Target/X86:

X86ATTAsmPrinter.cpp updated: 1.12 - 1.13
X86AsmPrinter.cpp updated: 1.150 - 1.151
X86AsmPrinter.h updated: 1.4 - 1.5
X86IntelAsmPrinter.cpp updated: 1.8 - 1.9
---
Log message:

Switch to using the shared constant pool printer, along with using shorter
CPI ids


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

 X86ATTAsmPrinter.cpp   |4 ++--
 X86AsmPrinter.cpp  |   27 +--
 X86AsmPrinter.h|1 -
 X86IntelAsmPrinter.cpp |4 ++--
 4 files changed, 5 insertions(+), 31 deletions(-)


Index: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp
diff -u llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.12 
llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.13
--- llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.12   Mon Nov 21 01:51:23 2005
+++ llvm/lib/Target/X86/X86ATTAsmPrinter.cppMon Nov 21 02:32:23 2005
@@ -29,7 +29,7 @@
   O  \n\n;
 
   // Print out constants referenced by the function
-  printConstantPool(MF.getConstantPool());
+  EmitConstantPool(MF.getConstantPool());
 
   // Print out labels for the function.
   SwitchSection(\t.text\n, MF.getFunction());
@@ -176,7 +176,7 @@
 O  ];
 return;
   } else if (BaseReg.isConstantPoolIndex()) {
-O  PrivateGlobalPrefix  CPI  CurrentFnName  _
+O  PrivateGlobalPrefix  CPI  getFunctionNumber()  _
BaseReg.getConstantPoolIndex();
 if (DispSpec.getImmedValue())
   O  +  DispSpec.getImmedValue();


Index: llvm/lib/Target/X86/X86AsmPrinter.cpp
diff -u llvm/lib/Target/X86/X86AsmPrinter.cpp:1.150 
llvm/lib/Target/X86/X86AsmPrinter.cpp:1.151
--- llvm/lib/Target/X86/X86AsmPrinter.cpp:1.150 Mon Nov 21 01:51:23 2005
+++ llvm/lib/Target/X86/X86AsmPrinter.cpp   Mon Nov 21 02:32:23 2005
@@ -68,37 +68,12 @@
 Data64bitsDirective = 0;   // we can't emit a 64-bit unit
 ZeroDirective = \t.space\t;  // .space N emits N zeros.
 PrivateGlobalPrefix = L; // Marker for constant pool idxs
+ConstantPoolSection = \t.const\n;
   }
 
   return AsmPrinter::doInitialization(M);
 }
 
-/// printConstantPool - Print to the current output stream assembly
-/// representations of the constants in the constant pool MCP. This is
-/// used to print out constants which have been spilled to memory by
-/// the code generator.
-///
-void X86SharedAsmPrinter::printConstantPool(MachineConstantPool *MCP) {
-  const std::vectorConstant* CP = MCP-getConstants();
-  const TargetData TD = TM.getTargetData();
-
-  if (CP.empty()) return;
-
-  SwitchSection(forDarwin ? \t.const\n : \t.section .rodata\n, 0);
-  
-  for (unsigned i = 0, e = CP.size(); i != e; ++i) {
-// FIXME: force doubles to be naturally aligned.  We should handle this
-// more correctly in the future.
-if (CP[i]-getType() == Type::DoubleTy)
-  EmitAlignment(3);
-else
-  EmitAlignment(TD.getTypeAlignmentShift(CP[i]-getType()));
-O  PrivateGlobalPrefix  CPI  CurrentFnName  _  i
-   :\t\t\t\t\t  CommentString  *CP[i]  \n;
-EmitGlobalConstant(CP[i]);
-  }
-}
-
 bool X86SharedAsmPrinter::doFinalization(Module M) {
   const TargetData TD = TM.getTargetData();
 


Index: llvm/lib/Target/X86/X86AsmPrinter.h
diff -u llvm/lib/Target/X86/X86AsmPrinter.h:1.4 
llvm/lib/Target/X86/X86AsmPrinter.h:1.5
--- llvm/lib/Target/X86/X86AsmPrinter.h:1.4 Mon Nov 21 01:11:11 2005
+++ llvm/lib/Target/X86/X86AsmPrinter.h Mon Nov 21 02:32:23 2005
@@ -32,7 +32,6 @@
 : AsmPrinter(O, TM), forCygwin(false), forDarwin(false) { }
 
   bool doInitialization(Module M);
-  void printConstantPool(MachineConstantPool *MCP);
   bool doFinalization(Module M);
 
   bool forCygwin;


Index: llvm/lib/Target/X86/X86IntelAsmPrinter.cpp
diff -u llvm/lib/Target/X86/X86IntelAsmPrinter.cpp:1.8 
llvm/lib/Target/X86/X86IntelAsmPrinter.cpp:1.9
--- llvm/lib/Target/X86/X86IntelAsmPrinter.cpp:1.8  Mon Nov 21 01:51:23 2005
+++ llvm/lib/Target/X86/X86IntelAsmPrinter.cpp  Mon Nov 21 02:32:23 2005
@@ -29,7 +29,7 @@
   O  \n\n;
 
   // Print out constants referenced by the function
-  printConstantPool(MF.getConstantPool());
+  EmitConstantPool(MF.getConstantPool());
 
   // Print out labels for the function.
   SwitchSection(\t.text\n, MF.getFunction());
@@ -143,7 +143,7 @@
 O  ];
 return;
   } else if (BaseReg.isConstantPoolIndex()) {
-O  [  PrivateGlobalPrefix  CPI  CurrentFnName  _
+O  [  PrivateGlobalPrefix  CPI  getFunctionNumber()  _
BaseReg.getConstantPoolIndex();
 
 if (IndexReg.getReg()) {



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