[llvm-commits] CVS: llvm/lib/Target/X86/README.txt X86ATTAsmPrinter.cpp X86AsmPrinter.cpp X86ISelDAGToDAG.cpp X86ISelLowering.cpp X86RegisterInfo.cpp

Anton Korobeynikov asl at math.spbu.ru
Sun Sep 17 13:26:07 PDT 2006



Changes in directory llvm/lib/Target/X86:

README.txt updated: 1.134 -> 1.135
X86ATTAsmPrinter.cpp updated: 1.62 -> 1.63
X86AsmPrinter.cpp updated: 1.197 -> 1.198
X86ISelDAGToDAG.cpp updated: 1.108 -> 1.109
X86ISelLowering.cpp updated: 1.260 -> 1.261
X86RegisterInfo.cpp updated: 1.169 -> 1.170
---
Log message:

Added some eye-candy for Subtarget type checking
Added X86 StdCall & FastCall calling conventions. Codegen will follow.


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

 README.txt           |   26 ++++++++++++++++++++++++++
 X86ATTAsmPrinter.cpp |    2 +-
 X86AsmPrinter.cpp    |    4 ++--
 X86ISelDAGToDAG.cpp  |    2 +-
 X86ISelLowering.cpp  |    2 +-
 X86RegisterInfo.cpp  |    4 ++--
 6 files changed, 33 insertions(+), 7 deletions(-)


Index: llvm/lib/Target/X86/README.txt
diff -u llvm/lib/Target/X86/README.txt:1.134 llvm/lib/Target/X86/README.txt:1.135
--- llvm/lib/Target/X86/README.txt:1.134	Fri Sep 15 22:30:19 2006
+++ llvm/lib/Target/X86/README.txt	Sun Sep 17 15:25:45 2006
@@ -707,3 +707,29 @@
 
 //===---------------------------------------------------------------------===//
 
+Currently we don't have elimination of redundant stack manipulations. Consider
+the code:
+
+int %main() {
+entry:
+	call fastcc void %test1( )
+	call fastcc void %test2( sbyte* cast (void ()* %test1 to sbyte*) )
+	ret int 0
+}
+
+declare fastcc void %test1()
+
+declare fastcc void %test2(sbyte*)
+
+
+This currently compiles to:
+
+	subl $16, %esp
+	call _test5
+	addl $12, %esp
+	subl $16, %esp
+	movl $_test5, (%esp)
+	call _test6
+	addl $12, %esp
+
+The add\sub pair is really unneeded here.


Index: llvm/lib/Target/X86/X86ATTAsmPrinter.cpp
diff -u llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.62 llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.63
--- llvm/lib/Target/X86/X86ATTAsmPrinter.cpp:1.62	Thu Sep 14 13:23:27 2006
+++ llvm/lib/Target/X86/X86ATTAsmPrinter.cpp	Sun Sep 17 15:25:45 2006
@@ -63,7 +63,7 @@
                 ".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) {
+    } else if (Subtarget->isTargetCygwin()) {
       EmitAlignment(4, F);     // FIXME: This should be parameterized somewhere.
       O << "\t.section\t.llvm.linkonce.t." << CurrentFnName
         << ",\"ax\"\n";


Index: llvm/lib/Target/X86/X86AsmPrinter.cpp
diff -u llvm/lib/Target/X86/X86AsmPrinter.cpp:1.197 llvm/lib/Target/X86/X86AsmPrinter.cpp:1.198
--- llvm/lib/Target/X86/X86AsmPrinter.cpp:1.197	Thu Sep 14 13:23:27 2006
+++ llvm/lib/Target/X86/X86AsmPrinter.cpp	Sun Sep 17 15:25:45 2006
@@ -83,7 +83,7 @@
           } else
             O << TAI->getCOMMDirective()  << name << "," << Size;
         } else {
-          if (Subtarget->TargetType != X86Subtarget::isCygwin) {
+          if (!Subtarget->isTargetCygwin()) {
             if (I->hasInternalLinkage())
               O << "\t.local\t" << name << "\n";
           }
@@ -101,7 +101,7 @@
           O << "\t.globl " << name << "\n"
             << "\t.weak_definition " << name << "\n";
           SwitchToDataSection(".section __DATA,__const_coal,coalesced", I);
-        } else if (Subtarget->TargetType == X86Subtarget::isCygwin) {
+        } else if (Subtarget->isTargetCygwin()) {
           O << "\t.section\t.llvm.linkonce.d." << name << ",\"aw\"\n"
             << "\t.weak " << name << "\n";
         } else {


Index: llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
diff -u llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.108 llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.109
--- llvm/lib/Target/X86/X86ISelDAGToDAG.cpp:1.108	Thu Sep 14 18:55:02 2006
+++ llvm/lib/Target/X86/X86ISelDAGToDAG.cpp	Sun Sep 17 15:25:45 2006
@@ -468,7 +468,7 @@
 /// the main function.
 void X86DAGToDAGISel::EmitSpecialCodeForMain(MachineBasicBlock *BB,
                                              MachineFrameInfo *MFI) {
-  if (Subtarget->TargetType == X86Subtarget::isCygwin)
+  if (Subtarget->isTargetCygwin())
     BuildMI(BB, X86::CALLpcrel32, 1).addExternalSymbol("__main");
 
   // Switch the FPU to 64-bit precision mode for better compatibility and speed.


Index: llvm/lib/Target/X86/X86ISelLowering.cpp
diff -u llvm/lib/Target/X86/X86ISelLowering.cpp:1.260 llvm/lib/Target/X86/X86ISelLowering.cpp:1.261
--- llvm/lib/Target/X86/X86ISelLowering.cpp:1.260	Sun Sep 17 08:06:18 2006
+++ llvm/lib/Target/X86/X86ISelLowering.cpp	Sun Sep 17 15:25:45 2006
@@ -3907,7 +3907,7 @@
   MachineFunction &MF = DAG.getMachineFunction();
   const Function* Fn = MF.getFunction();
   if (Fn->hasExternalLinkage() &&
-      Subtarget->TargetType == X86Subtarget::isCygwin &&
+      Subtarget->isTargetCygwin() &&
       Fn->getName() == "main")
     MF.getInfo<X86FunctionInfo>()->setForceFramePointer(true);
 


Index: llvm/lib/Target/X86/X86RegisterInfo.cpp
diff -u llvm/lib/Target/X86/X86RegisterInfo.cpp:1.169 llvm/lib/Target/X86/X86RegisterInfo.cpp:1.170
--- llvm/lib/Target/X86/X86RegisterInfo.cpp:1.169	Fri Sep  8 16:08:13 2006
+++ llvm/lib/Target/X86/X86RegisterInfo.cpp	Sun Sep 17 15:25:45 2006
@@ -993,7 +993,7 @@
   MFI->setStackSize(NumBytes);
 
   if (NumBytes) {   // adjust stack pointer: ESP -= numbytes
-    if (NumBytes >= 4096 && Subtarget->TargetType == X86Subtarget::isCygwin) {
+    if (NumBytes >= 4096 && Subtarget->isTargetCygwin()) {
       // Function prologue calls _alloca to probe the stack when allocating  
       // more than 4k bytes in one go. Touching the stack at 4K increments is  
       // necessary to ensure that the guard pages used by the OS virtual memory
@@ -1035,7 +1035,7 @@
 
   // If it's main() on Cygwin\Mingw32 we should align stack as well
   if (Fn->hasExternalLinkage() && Fn->getName() == "main" &&
-      Subtarget->TargetType == X86Subtarget::isCygwin) {
+      Subtarget->isTargetCygwin()) {
     MI = BuildMI(X86::AND32ri, 2, X86::ESP).addReg(X86::ESP).addImm(-Align);
     MBB.insert(MBBI, MI);
 






More information about the llvm-commits mailing list