[llvm-commits] [llvm] r81202 - /llvm/trunk/lib/MC/MCExpr.cpp

Chris Lattner sabre at nondot.org
Mon Sep 7 23:34:07 PDT 2009


Author: lattner
Date: Tue Sep  8 01:34:07 2009
New Revision: 81202

URL: http://llvm.org/viewvc/llvm-project?rev=81202&view=rev
Log:
make formatting of expressions more closely match the existing asmprinter.

Modified:
    llvm/trunk/lib/MC/MCExpr.cpp

Modified: llvm/trunk/lib/MC/MCExpr.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCExpr.cpp?rev=81202&r1=81201&r2=81202&view=diff

==============================================================================
--- llvm/trunk/lib/MC/MCExpr.cpp (original)
+++ llvm/trunk/lib/MC/MCExpr.cpp Tue Sep  8 01:34:07 2009
@@ -39,9 +39,16 @@
 
   case MCExpr::Binary: {
     const MCBinaryExpr &BE = cast<MCBinaryExpr>(*this);
-    OS << '(';
-    BE.getLHS()->print(OS, MAI);
-    OS << ' ';
+    
+    // Only print parens around the LHS if it is non-trivial.
+    if (isa<MCConstantExpr>(BE.getLHS()) || isa<MCSymbolRefExpr>(BE.getLHS())) {
+      BE.getLHS()->print(OS, MAI);
+    } else {
+      OS << '(';
+      BE.getLHS()->print(OS, MAI);
+      OS << ')';
+    }
+    
     switch (BE.getOpcode()) {
     default: assert(0 && "Invalid opcode!");
     case MCBinaryExpr::Add:  OS <<  '+'; break;
@@ -63,9 +70,15 @@
     case MCBinaryExpr::Sub:  OS <<  '-'; break;
     case MCBinaryExpr::Xor:  OS <<  '^'; break;
     }
-    OS << ' ';
-    BE.getRHS()->print(OS, MAI);
-    OS << ')';
+    
+    // Only print parens around the LHS if it is non-trivial.
+    if (isa<MCConstantExpr>(BE.getRHS()) || isa<MCSymbolRefExpr>(BE.getRHS())) {
+      BE.getRHS()->print(OS, MAI);
+    } else {
+      OS << '(';
+      BE.getRHS()->print(OS, MAI);
+      OS << ')';
+    }
     return;
   }
   }





More information about the llvm-commits mailing list