]> granicus.if.org Git - clang/commitdiff
More asm cleanup.
authorAnders Carlsson <andersca@mac.com>
Sat, 30 Jan 2010 20:05:21 +0000 (20:05 +0000)
committerAnders Carlsson <andersca@mac.com>
Sat, 30 Jan 2010 20:05:21 +0000 (20:05 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94920 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/AST/Stmt.h
lib/CodeGen/CGStmt.cpp
lib/Sema/TreeTransform.h

index a2dda2a959d8a70428377a16321cc394be1a0311..cc87867f1f5b30e2db7c6ecab592c7e3dd8b66d0 100644 (file)
@@ -1261,7 +1261,6 @@ public:
     return Constraints[i + NumOutputs];
   }
 
-
   Expr *getInputExpr(unsigned i);
 
   const Expr *getInputExpr(unsigned i) const {
@@ -1283,8 +1282,6 @@ public:
   /// This returns -1 if the operand name is invalid.
   int getNamedOperand(const std::string &SymbolicName) const;
 
-
-
   unsigned getNumClobbers() const { return Clobbers.size(); }
   StringLiteral *getClobber(unsigned i) { return Clobbers[i]; }
   const StringLiteral *getClobber(unsigned i) const { return Clobbers[i]; }
@@ -1336,16 +1333,6 @@ public:
     return Exprs.data() + NumOutputs;
   }
 
-  // Input name iterator.
-
-  const std::string *begin_output_names() const {
-    return &Names[0];
-  }
-
-  const std::string *end_output_names() const {
-    return &Names[0] + NumOutputs;
-  }
-
   // Child iterators
 
   virtual child_iterator child_begin();
index 12cf9637550453fc462ac9ee440bd618690624f0..7ea8b08c238e188a02b461b83eea7422fceb77e0 100644 (file)
@@ -916,18 +916,18 @@ void CodeGenFunction::EmitAsmStmt(const AsmStmt &S) {
   for (unsigned i = 0, e = S.getNumOutputs(); i != e; i++) {
     TargetInfo::ConstraintInfo Info(S.getOutputConstraint(i),
                                     S.getOutputName(i));
-    bool result = Target.validateOutputConstraint(Info);
-    assert(result && "Failed to parse output constraint"); result=result;
+    assert(Target.validateOutputConstraint(Info) && 
+           "Failed to parse output constraint");
     OutputConstraintInfos.push_back(Info);
   }
 
   for (unsigned i = 0, e = S.getNumInputs(); i != e; i++) {
     TargetInfo::ConstraintInfo Info(S.getInputConstraint(i),
                                     S.getInputName(i));
-    bool result = Target.validateInputConstraint(OutputConstraintInfos.data(),
-                                                 S.getNumOutputs(),
-                                                 Info); result=result;
-    assert(result && "Failed to parse input constraint");
+    assert(Target.validateInputConstraint(OutputConstraintInfos.data(),
+                                          S.getNumOutputs(),
+                                          Info) &&
+           "Failed to parse input constraint");
     InputConstraintInfos.push_back(Info);
   }
 
index 4e29c3ad85f9334f7275ed39264884ff1db318f0..90b5365f04b8054ed976cf81db8d9593a00c1127 100644 (file)
@@ -3352,6 +3352,8 @@ TreeTransform<Derived>::TransformAsmStmt(AsmStmt *S) {
   
   ASTOwningVector<&ActionBase::DeleteExpr> Constraints(getSema());
   ASTOwningVector<&ActionBase::DeleteExpr> Exprs(getSema());
+  llvm::SmallVector<std::string, 4> Names;
+
   OwningExprResult AsmString(SemaRef);
   ASTOwningVector<&ActionBase::DeleteExpr> Clobbers(getSema());
 
@@ -3359,6 +3361,8 @@ TreeTransform<Derived>::TransformAsmStmt(AsmStmt *S) {
   
   // Go through the outputs.
   for (unsigned I = 0, E = S->getNumOutputs(); I != E; ++I) {
+    Names.push_back(S->getOutputName(I));
+    
     // No need to transform the constraint literal.
     Constraints.push_back(S->getOutputConstraintLiteral(I)->Retain());
     
@@ -3375,6 +3379,8 @@ TreeTransform<Derived>::TransformAsmStmt(AsmStmt *S) {
   
   // Go through the inputs.
   for (unsigned I = 0, E = S->getNumInputs(); I != E; ++I) {
+    Names.push_back(S->getInputName(I));
+    
     // No need to transform the constraint literal.
     Constraints.push_back(S->getInputConstraintLiteral(I)->Retain());
     
@@ -3404,7 +3410,7 @@ TreeTransform<Derived>::TransformAsmStmt(AsmStmt *S) {
                                      S->isVolatile(),
                                      S->getNumOutputs(),
                                      S->getNumInputs(),
-                                     S->begin_output_names(),
+                                     Names.data(),
                                      move_arg(Constraints),
                                      move_arg(Exprs),
                                      move(AsmString),