<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Oct 12, 2015 at 8:55 PM, Craig Topper <span dir="ltr"><<a href="mailto:craig.topper@gmail.com" target="_blank">craig.topper@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote"><span class="">On Mon, Oct 12, 2015 at 11:06 AM, David Blaikie <span dir="ltr"><<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Oct 9, 2015 at 10:25 PM, Craig Topper via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: ctopper<br>
Date: Sat Oct 10 00:25:02 2015<br>
New Revision: 249940<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=249940&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=249940&view=rev</a><br>
Log:<br>
Use emplace_back instead of a constructor call and push_back. NFC<br></blockquote><div><br></div><div>Any particular reason? I've tended to err away from emplace functions except where necessary (because the type isn't movable or the object identity is otherwise necessary)<br><br>Just wondering what kind of motivation others are using for determining the choice - not suggesting any way is right/wrong/should be avoided/encouraged.</div></div></div></div></blockquote><div><br></div></span><div>No good reason other than it was shorter and AsmRewrite objects are only constructed when their being pushed to the vector.</div></div></div></div></blockquote><div><br></div><div>Rightio - I don't feel particularly strongly about it one way or another - happy for you/others to go with whatever's comfortable & we'll see how people feel about it as it becomes more pervasive.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><div class="h5"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Modified:<br>
    llvm/trunk/lib/MC/MCParser/AsmParser.cpp<br>
    llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp<br>
<br>
Modified: llvm/trunk/lib/MC/MCParser/AsmParser.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCParser/AsmParser.cpp?rev=249940&r1=249939&r2=249940&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCParser/AsmParser.cpp?rev=249940&r1=249939&r2=249940&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/MC/MCParser/AsmParser.cpp (original)<br>
+++ llvm/trunk/lib/MC/MCParser/AsmParser.cpp Sat Oct 10 00:25:02 2015<br>
@@ -1337,8 +1337,8 @@ bool AsmParser::parseStatement(ParseStat<br>
             SI->LookupInlineAsmLabel(IDVal, getSourceManager(), IDLoc, true);<br>
         assert(RewrittenLabel.size() &&<br>
                "We should have an internal name here.");<br>
-        Info.AsmRewrites->push_back(AsmRewrite(AOK_Label, IDLoc,<br>
-                                               IDVal.size(), RewrittenLabel));<br>
+        Info.AsmRewrites->emplace_back(AOK_Label, IDLoc, IDVal.size(),<br>
+                                       RewrittenLabel);<br>
         IDVal = RewrittenLabel;<br>
       }<br>
       Sym = getContext().getOrCreateSymbol(IDVal);<br>
@@ -4498,7 +4498,7 @@ bool AsmParser::parseDirectiveMSEmit(SML<br>
   if (!isUIntN(8, IntValue) && !isIntN(8, IntValue))<br>
     return Error(ExprLoc, "literal value out of range for directive");<br>
<br>
-  Info.AsmRewrites->push_back(AsmRewrite(AOK_Emit, IDLoc, Len));<br>
+  Info.AsmRewrites->emplace_back(AOK_Emit, IDLoc, Len);<br>
   return false;<br>
 }<br>
<br>
@@ -4514,8 +4514,7 @@ bool AsmParser::parseDirectiveMSAlign(SM<br>
   if (!isPowerOf2_64(IntValue))<br>
     return Error(ExprLoc, "literal value not a power of two greater then zero");<br>
<br>
-  Info.AsmRewrites->push_back(<br>
-      AsmRewrite(AOK_Align, IDLoc, 5, Log2_64(IntValue)));<br>
+  Info.AsmRewrites->emplace_back(AOK_Align, IDLoc, 5, Log2_64(IntValue));<br>
   return false;<br>
 }<br>
<br>
@@ -4611,12 +4610,12 @@ bool AsmParser::parseMSInlineAsm(<br>
         OutputDecls.push_back(OpDecl);<br>
         OutputDeclsAddressOf.push_back(Operand.needAddressOf());<br>
         OutputConstraints.push_back(("=" + Operand.getConstraint()).str());<br>
-        AsmStrRewrites.push_back(AsmRewrite(AOK_Output, Start, SymName.size()));<br>
+        AsmStrRewrites.emplace_back(AOK_Output, Start, SymName.size());<br>
       } else {<br>
         InputDecls.push_back(OpDecl);<br>
         InputDeclsAddressOf.push_back(Operand.needAddressOf());<br>
         InputConstraints.push_back(Operand.getConstraint().str());<br>
-        AsmStrRewrites.push_back(AsmRewrite(AOK_Input, Start, SymName.size()));<br>
+        AsmStrRewrites.emplace_back(AOK_Input, Start, SymName.size());<br>
       }<br>
     }<br>
<br>
<br>
Modified: llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp?rev=249940&r1=249939&r2=249940&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp?rev=249940&r1=249939&r2=249940&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp (original)<br>
+++ llvm/trunk/lib/Target/X86/AsmParser/X86AsmParser.cpp Sat Oct 10 00:25:02 2015<br>
@@ -1072,8 +1072,8 @@ std::unique_ptr<X86Operand> X86AsmParser<br>
     // Insert an explicit size if the user didn't have one.<br>
     if (!Size) {<br>
       Size = getPointerWidth();<br>
-      InstInfo->AsmRewrites->push_back(AsmRewrite(AOK_SizeDirective, Start,<br>
-                                                  /*Len=*/0, Size));<br>
+      InstInfo->AsmRewrites->emplace_back(AOK_SizeDirective, Start,<br>
+                                          /*Len=*/0, Size);<br>
     }<br>
<br>
     // Create an absolute memory reference in order to match against<br>
@@ -1092,8 +1092,8 @@ std::unique_ptr<X86Operand> X86AsmParser<br>
     if (!Size) {<br>
       Size = Info.Type * 8; // Size is in terms of bits in this context.<br>
       if (Size)<br>
-        InstInfo->AsmRewrites->push_back(AsmRewrite(AOK_SizeDirective, Start,<br>
-                                                    /*Len=*/0, Size));<br>
+        InstInfo->AsmRewrites->emplace_back(AOK_SizeDirective, Start,<br>
+                                            /*Len=*/0, Size);<br>
     }<br>
   }<br>
<br>
@@ -1112,8 +1112,8 @@ RewriteIntelBracExpression(SmallVectorIm<br>
                            int64_t FinalImmDisp, SMLoc &BracLoc,<br>
                            SMLoc &StartInBrac, SMLoc &End) {<br>
   // Remove the '[' and ']' from the IR string.<br>
-  AsmRewrites->push_back(AsmRewrite(AOK_Skip, BracLoc, 1));<br>
-  AsmRewrites->push_back(AsmRewrite(AOK_Skip, End, 1));<br>
+  AsmRewrites->emplace_back(AOK_Skip, BracLoc, 1);<br>
+  AsmRewrites->emplace_back(AOK_Skip, End, 1);<br>
<br>
   // If ImmDisp is non-zero, then we parsed a displacement before the<br>
   // bracketed expression (i.e., ImmDisp [ BaseReg + Scale*IndexReg + Disp])<br>
@@ -1143,7 +1143,7 @@ RewriteIntelBracExpression(SmallVectorIm<br>
       // We have a symbolic and an immediate displacement, but no displacement<br>
       // before the bracketed expression.  Put the immediate displacement<br>
       // before the bracketed expression.<br>
-      AsmRewrites->push_back(AsmRewrite(AOK_Imm, BracLoc, 0, FinalImmDisp));<br>
+      AsmRewrites->emplace_back(AOK_Imm, BracLoc, 0, FinalImmDisp);<br>
     }<br>
   }<br>
   // Remove all the ImmPrefix rewrites within the brackets.<br>
@@ -1158,13 +1158,13 @@ RewriteIntelBracExpression(SmallVectorIm<br>
   // Skip everything before the symbol.<br>
   if (unsigned Len = SymLocPtr - StartInBrac.getPointer()) {<br>
     assert(Len > 0 && "Expected a non-negative length.");<br>
-    AsmRewrites->push_back(AsmRewrite(AOK_Skip, StartInBrac, Len));<br>
+    AsmRewrites.emplace_back(AOK_Skip, StartInBrac, Len);<br>
   }<br>
   // Skip everything after the symbol.<br>
   if (unsigned Len = End.getPointer() - (SymLocPtr + SymName.size())) {<br>
     SMLoc Loc = SMLoc::getFromPointer(SymLocPtr + SymName.size());<br>
     assert(Len > 0 && "Expected a non-negative length.");<br>
-    AsmRewrites->push_back(AsmRewrite(AOK_Skip, Loc, Len));<br>
+    AsmRewrites.emplace_back(AOK_Skip, Loc, Len);<br>
   }<br>
 }<br>
<br>
@@ -1233,8 +1233,7 @@ bool X86AsmParser::ParseIntelExpression(<br>
     case AsmToken::Integer: {<br>
       StringRef ErrMsg;<br>
       if (isParsingInlineAsm() && SM.getAddImmPrefix())<br>
-        InstInfo->AsmRewrites->push_back(AsmRewrite(AOK_ImmPrefix,<br>
-                                                    Tok.getLoc()));<br>
+        InstInfo->AsmRewrites->emplace_back(AOK_ImmPrefix, Tok.getLoc());<br>
       // Look for 'b' or 'f' following an Integer as a directional label<br>
       SMLoc Loc = getTok().getLoc();<br>
       int64_t IntVal = getTok().getIntVal();<br>
@@ -1401,9 +1400,8 @@ bool X86AsmParser::ParseIntelIdentifier(<br>
                                          Loc, false);<br>
     assert(InternalName.size() && "We should have an internal name here.");<br>
     // Push a rewrite for replacing the identifier name with the internal name.<br>
-    InstInfo->AsmRewrites->push_back(AsmRewrite(AOK_Label, Loc,<br>
-                                                Identifier.size(),<br>
-                                                InternalName));<br>
+    InstInfo->AsmRewrites->emplace_back(AOK_Label, Loc, Identifier.size(),<br>
+                                        InternalName);<br>
   }<br>
<br>
   // Create the symbol reference.<br>
@@ -1430,8 +1428,7 @@ X86AsmParser::ParseIntelSegmentOverride(<br>
     AsmToken ImmDispToken = Parser.Lex(); // Eat the integer.<br>
<br>
     if (isParsingInlineAsm())<br>
-      InstInfo->AsmRewrites->push_back(<br>
-          AsmRewrite(AOK_ImmPrefix, ImmDispToken.getLoc()));<br>
+      InstInfo->AsmRewrites->emplace_back(AOK_ImmPrefix, ImmDispToken.getLoc());<br>
<br>
     if (getLexer().isNot(AsmToken::LBrac)) {<br>
       // An immediate following a 'segment register', 'colon' token sequence can<br>
@@ -1600,8 +1597,7 @@ bool X86AsmParser::ParseIntelDotOperator<br>
     SMLoc Loc = SMLoc::getFromPointer(DotDispStr.data());<br>
     unsigned Len = DotDispStr.size();<br>
     unsigned Val = OrigDispVal + DotDispVal;<br>
-    InstInfo->AsmRewrites->push_back(AsmRewrite(AOK_DotOperator, Loc, Len,<br>
-                                                Val));<br>
+    InstInfo->AsmRewrites->emplace_back(AOK_DotOperator, Loc, Len, Val);<br>
   }<br>
<br>
   NewDisp = MCConstantExpr::create(OrigDispVal + DotDispVal, getContext());<br>
@@ -1625,7 +1621,7 @@ std::unique_ptr<X86Operand> X86AsmParser<br>
     return nullptr;<br>
<br>
   // Don't emit the offset operator.<br>
-  InstInfo->AsmRewrites->push_back(AsmRewrite(AOK_Skip, OffsetOfLoc, 7));<br>
+  InstInfo->AsmRewrites->emplace_back(AOK_Skip, OffsetOfLoc, 7);<br>
<br>
   // The offset operator will have an 'r' constraint, thus we need to create<br>
   // register operand to ensure proper matching.  Just pick a GPR based on<br>
@@ -1676,7 +1672,7 @@ std::unique_ptr<X86Operand> X86AsmParser<br>
   // Rewrite the type operator and the C or C++ type or variable in terms of an<br>
   // immediate.  E.g. TYPE foo -> $$4<br>
   unsigned Len = End.getPointer() - TypeLoc.getPointer();<br>
-  InstInfo->AsmRewrites->push_back(AsmRewrite(AOK_Imm, TypeLoc, Len, CVal));<br>
+  InstInfo->AsmRewrites->emplace_back(AOK_Imm, TypeLoc, Len, CVal);<br>
<br>
   const MCExpr *Imm = MCConstantExpr::create(CVal, getContext());<br>
   return X86Operand::CreateImm(Imm, Start, End);<br>
@@ -1723,10 +1719,10 @@ std::unique_ptr<X86Operand> X86AsmParser<br>
       unsigned Len = Tok.getLoc().getPointer() - Start.getPointer();<br>
       if (StartTok.getString().size() == Len)<br>
         // Just add a prefix if this wasn't a complex immediate expression.<br>
-        InstInfo->AsmRewrites->push_back(AsmRewrite(AOK_ImmPrefix, Start));<br>
+        InstInfo->AsmRewrites->emplace_back(AOK_ImmPrefix, Start);<br>
       else<br>
         // Otherwise, rewrite the complex expression as a single immediate.<br>
-        InstInfo->AsmRewrites->push_back(AsmRewrite(AOK_Imm, Start, Len, Imm));<br>
+        InstInfo->AsmRewrites->emplace_back(AOK_Imm, Start, Len, Imm);<br>
     }<br>
<br>
     if (getLexer().isNot(AsmToken::LBrac)) {<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div></div>
</blockquote></div></div></div><span class="HOEnZb"><font color="#888888"><br><br clear="all"><div><br></div>-- <br><div>~Craig</div>
</font></span></div></div>
</blockquote></div><br></div></div>