<div dir="ltr"><div><div>Thanks for the notice!<br><br></div>Thanks<br><br></div>Galina<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Oct 20, 2017 at 3:52 PM, Daniel Sanders <span dir="ltr"><<a href="mailto:daniel_l_sanders@apple.com" target="_blank">daniel_l_sanders@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word;line-break:after-white-space">Hi Galina,<div><br></div><div>Something strange is happening on one of your bots (llvm-clang-x86_64-expensive-<wbr>checks-win). After this commit, it didn't re-run tablegen as we've found in the past so I forced a clean build as usual. However, now it's failing to run the cmake step successfully due to a missing LLVMBuild.txt (see <a href="http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-win/builds/5612/steps/cmake-configure/logs/stdio" target="_blank">http://lab.llvm.org:8011/<wbr>builders/llvm-clang-x86_64-<wbr>expensive-checks-win/builds/<wbr>5612/steps/cmake-configure/<wbr>logs/stdio</a>). I'd hazard a guess that the actual problem is related to the '/' that's in the path and that the clean build has only made a pre-existing problem visible. Could you take a look?<div><div class="h5"><br><div><br><blockquote type="cite"><div>On 20 Oct 2017, at 13:55, Daniel Sanders via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>> wrote:</div><br class="m_-1754849629292971861Apple-interchange-newline"><div><div>Author: dsanders<br>Date: Fri Oct 20 13:55:29 2017<br>New Revision: 316237<br><br>URL: <a href="http://llvm.org/viewvc/llvm-project?rev=316237&view=rev" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project?rev=316237&view=rev</a><br>Log:<br>[globalisel][tablegen] Fix small spelling nits. NFC<br><br>ComplexRendererFn -> ComplexRendererFns<br>Corrected a couple lingering references to tied operands that were missed.<br><br><br>Modified:<br>    llvm/trunk/include/llvm/<wbr>CodeGen/GlobalISel/<wbr>InstructionSelector.h<br>    llvm/trunk/include/llvm/<wbr>CodeGen/GlobalISel/<wbr>InstructionSelectorImpl.h<br>    llvm/trunk/lib/Target/<wbr>AArch64/<wbr>AArch64InstructionSelector.cpp<br>    llvm/trunk/test/TableGen/<wbr>GlobalISelEmitter.td<br>    llvm/trunk/utils/TableGen/<wbr>GlobalISelEmitter.cpp<br><br>Modified: llvm/trunk/include/llvm/<wbr>CodeGen/GlobalISel/<wbr>InstructionSelector.h<br>URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/GlobalISel/InstructionSelector.h?rev=316237&r1=316236&r2=316237&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/include/<wbr>llvm/CodeGen/GlobalISel/<wbr>InstructionSelector.h?rev=<wbr>316237&r1=316236&r2=316237&<wbr>view=diff</a><br>==============================<wbr>==============================<wbr>==================<br>--- llvm/trunk/include/llvm/<wbr>CodeGen/GlobalISel/<wbr>InstructionSelector.h (original)<br>+++ llvm/trunk/include/llvm/<wbr>CodeGen/GlobalISel/<wbr>InstructionSelector.h Fri Oct 20 13:55:29 2017<br>@@ -276,13 +276,13 @@ public:<br>   virtual bool select(MachineInstr &I) const = 0;<br><br> protected:<br>-  using ComplexRendererFn =<br>+  using ComplexRendererFns =<br>       Optional<SmallVector<<wbr>std::function<void(<wbr>MachineInstrBuilder &)>, 4>>;<br>   using RecordedMIVector = SmallVector<MachineInstr *, 4>;<br>   using NewMIVector = SmallVector<<wbr>MachineInstrBuilder, 4>;<br><br>   struct MatcherState {<br>-    std::vector<<wbr>ComplexRendererFn::value_type> Renderers;<br>+    std::vector<<wbr>ComplexRendererFns::value_<wbr>type> Renderers;<br>     RecordedMIVector MIs;<br><br>     MatcherState(unsigned MaxRenderers);<br><br>Modified: llvm/trunk/include/llvm/<wbr>CodeGen/GlobalISel/<wbr>InstructionSelectorImpl.h<br>URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h?rev=316237&r1=316236&r2=316237&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/include/<wbr>llvm/CodeGen/GlobalISel/<wbr>InstructionSelectorImpl.h?rev=<wbr>316237&r1=316236&r2=316237&<wbr>view=diff</a><br>==============================<wbr>==============================<wbr>==================<br>--- llvm/trunk/include/llvm/<wbr>CodeGen/GlobalISel/<wbr>InstructionSelectorImpl.h (original)<br>+++ llvm/trunk/include/llvm/<wbr>CodeGen/GlobalISel/<wbr>InstructionSelectorImpl.h Fri Oct 20 13:55:29 2017<br>@@ -297,7 +297,7 @@ bool InstructionSelector::<wbr>executeMatchTa<br>                    << "), ComplexPredicateID=" << ComplexPredicateID << ")\n");<br>       assert(State.MIs[InsnID] != nullptr && "Used insn before defined");<br>       // FIXME: Use std::invoke() when it's available.<br>-      ComplexRendererFn Renderer =<br>+      ComplexRendererFns Renderer =<br>           (ISel.*MatcherInfo.<wbr>ComplexPredicates[<wbr>ComplexPredicateID])(<br>               State.MIs[<wbr>InsnID]->getOperand(OpIdx));<br>       if (Renderer.hasValue())<br><br>Modified: llvm/trunk/lib/Target/AArch64/<wbr>AArch64InstructionSelector.cpp<br>URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/AArch64/AArch64InstructionSelector.cpp?rev=316237&r1=316236&r2=316237&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/lib/Target/<wbr>AArch64/<wbr>AArch64InstructionSelector.<wbr>cpp?rev=316237&r1=316236&r2=<wbr>316237&view=diff</a><br>==============================<wbr>==============================<wbr>==================<br>--- llvm/trunk/lib/Target/AArch64/<wbr>AArch64InstructionSelector.cpp (original)<br>+++ llvm/trunk/lib/Target/AArch64/<wbr>AArch64InstructionSelector.cpp Fri Oct 20 13:55:29 2017<br>@@ -64,31 +64,31 @@ private:<br>   bool selectCompareBranch(<wbr>MachineInstr &I, MachineFunction &MF,<br>                            <wbr>MachineRegisterInfo &MRI) const;<br><br>-  ComplexRendererFn selectArithImmed(<wbr>MachineOperand &Root) const;<br>+  ComplexRendererFns selectArithImmed(<wbr>MachineOperand &Root) const;<br><br>-  ComplexRendererFn selectAddrModeUnscaled(<wbr>MachineOperand &Root,<br>-                               <wbr>            unsigned Size) const;<br>+  ComplexRendererFns selectAddrModeUnscaled(<wbr>MachineOperand &Root,<br>+                               <wbr>             unsigned Size) const;<br><br>-  ComplexRendererFn selectAddrModeUnscaled8(<wbr>MachineOperand &Root) const {<br>+  ComplexRendererFns selectAddrModeUnscaled8(<wbr>MachineOperand &Root) const {<br>     return selectAddrModeUnscaled(Root, 1);<br>   }<br>-  ComplexRendererFn selectAddrModeUnscaled16(<wbr>MachineOperand &Root) const {<br>+  ComplexRendererFns selectAddrModeUnscaled16(<wbr>MachineOperand &Root) const {<br>     return selectAddrModeUnscaled(Root, 2);<br>   }<br>-  ComplexRendererFn selectAddrModeUnscaled32(<wbr>MachineOperand &Root) const {<br>+  ComplexRendererFns selectAddrModeUnscaled32(<wbr>MachineOperand &Root) const {<br>     return selectAddrModeUnscaled(Root, 4);<br>   }<br>-  ComplexRendererFn selectAddrModeUnscaled64(<wbr>MachineOperand &Root) const {<br>+  ComplexRendererFns selectAddrModeUnscaled64(<wbr>MachineOperand &Root) const {<br>     return selectAddrModeUnscaled(Root, 8);<br>   }<br>-  ComplexRendererFn selectAddrModeUnscaled128(<wbr>MachineOperand &Root) const {<br>+  ComplexRendererFns selectAddrModeUnscaled128(<wbr>MachineOperand &Root) const {<br>     return selectAddrModeUnscaled(Root, 16);<br>   }<br><br>-  ComplexRendererFn selectAddrModeIndexed(<wbr>MachineOperand &Root,<br>-                               <wbr>           unsigned Size) const;<br>+  ComplexRendererFns selectAddrModeIndexed(<wbr>MachineOperand &Root,<br>+                               <wbr>            unsigned Size) const;<br>   template <int Width><br>-  ComplexRendererFn selectAddrModeIndexed(<wbr>MachineOperand &Root) const {<br>+  ComplexRendererFns selectAddrModeIndexed(<wbr>MachineOperand &Root) const {<br>     return selectAddrModeIndexed(Root, Width / 8);<br>   }<br><br>@@ -1373,7 +1373,7 @@ bool AArch64InstructionSelector::<wbr>select(<br> /// SelectArithImmed - Select an immediate value that can be represented as<br> /// a 12-bit value shifted left by either 0 or 12.  If so, return true with<br> /// Val set to the 12-bit value and Shift set to the shifter operand.<br>-InstructionSelector::<wbr>ComplexRendererFn<br>+InstructionSelector::<wbr>ComplexRendererFns<br> AArch64InstructionSelector::<wbr>selectArithImmed(<wbr>MachineOperand &Root) const {<br>   MachineInstr &MI = *Root.getParent();<br>   MachineBasicBlock &MBB = *MI.getParent();<br>@@ -1423,7 +1423,7 @@ AArch64InstructionSelector::<wbr>selectArithI<br> /// immediate addressing mode.  The "Size" argument is the size in bytes of the<br> /// memory reference, which is needed here to know what is valid for a scaled<br> /// immediate.<br>-InstructionSelector::<wbr>ComplexRendererFn<br>+InstructionSelector::<wbr>ComplexRendererFns<br> AArch64InstructionSelector::<wbr>selectAddrModeUnscaled(<wbr>MachineOperand &Root,<br>                               <wbr>                     unsigned Size) const {<br>   MachineRegisterInfo &MRI =<br>@@ -1467,7 +1467,7 @@ AArch64InstructionSelector::<wbr>selectAddrMo<br> /// Select a "register plus scaled unsigned 12-bit immediate" address.  The<br> /// "Size" argument is the size in bytes of the memory reference, which<br> /// determines the scale.<br>-InstructionSelector::<wbr>ComplexRendererFn<br>+InstructionSelector::<wbr>ComplexRendererFns<br> AArch64InstructionSelector::<wbr>selectAddrModeIndexed(<wbr>MachineOperand &Root,<br>                               <wbr>                    unsigned Size) const {<br>   MachineRegisterInfo &MRI =<br><br>Modified: llvm/trunk/test/TableGen/<wbr>GlobalISelEmitter.td<br>URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/TableGen/GlobalISelEmitter.td?rev=316237&r1=316236&r2=316237&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>TableGen/GlobalISelEmitter.td?<wbr>rev=316237&r1=316236&r2=<wbr>316237&view=diff</a><br>==============================<wbr>==============================<wbr>==================<br>--- llvm/trunk/test/TableGen/<wbr>GlobalISelEmitter.td (original)<br>+++ llvm/trunk/test/TableGen/<wbr>GlobalISelEmitter.td Fri Oct 20 13:55:29 2017<br>@@ -53,7 +53,7 @@ def HasC : Predicate<"Subtarget->hasC()"<br><br> // CHECK-LABEL: #ifdef GET_GLOBALISEL_TEMPORARIES_<wbr>DECL<br> // CHECK-NEXT:    mutable MatcherState State;<br>-// CHECK-NEXT:    typedef ComplexRendererFn(<wbr>MyTargetInstructionSelector::*<wbr>ComplexMatcherMemFn)(<wbr>MachineOperand &) const;<br>+// CHECK-NEXT:    typedef ComplexRendererFns(<wbr>MyTargetInstructionSelector::*<wbr>ComplexMatcherMemFn)(<wbr>MachineOperand &) const;<br> // CHECK-NEXT:    const MatcherInfoTy<PredicateBitset, ComplexMatcherMemFn> MatcherInfo;<br> // CHECK-NEXT:    static MyTargetInstructionSelector::<wbr>ComplexMatcherMemFn ComplexPredicateFns[];<br> // CHECK-NEXT:  #endif // ifdef GET_GLOBALISEL_TEMPORARIES_<wbr>DECL<br><br>Modified: llvm/trunk/utils/TableGen/<wbr>GlobalISelEmitter.cpp<br>URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/GlobalISelEmitter.cpp?rev=316237&r1=316236&r2=316237&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/utils/<wbr>TableGen/GlobalISelEmitter.<wbr>cpp?rev=316237&r1=316236&r2=<wbr>316237&view=diff</a><br>==============================<wbr>==============================<wbr>==================<br>--- llvm/trunk/utils/TableGen/<wbr>GlobalISelEmitter.cpp (original)<br>+++ llvm/trunk/utils/TableGen/<wbr>GlobalISelEmitter.cpp Fri Oct 20 13:55:29 2017<br>@@ -672,7 +672,7 @@ public:<br>   /// but OPM_Int must have priority over OPM_RegBank since constant integers<br>   /// are represented by a virtual register defined by a G_CONSTANT instruction.<br>   enum PredicateKind {<br>-    OPM_Tie,<br>+    OPM_SameOperand,<br>     OPM_ComplexPattern,<br>     OPM_IntrinsicID,<br>     OPM_Instruction,<br>@@ -724,14 +724,14 @@ PredicateListMatcher<<wbr>OperandPredicateMat<br> /// Generates code to check that a register operand is defined by the same exact<br> /// one as another.<br> class SameOperandMatcher : public OperandPredicateMatcher {<br>-  std::string TiedTo;<br>+  std::string MatchingName;<br><br> public:<br>-  SameOperandMatcher(StringRef TiedTo)<br>-      : OperandPredicateMatcher(OPM_<wbr>Tie), TiedTo(TiedTo) {}<br>+  SameOperandMatcher(StringRef MatchingName)<br>+      : OperandPredicateMatcher(OPM_<wbr>SameOperand), MatchingName(MatchingName) {}<br><br>   static bool classof(const OperandPredicateMatcher *P) {<br>-    return P->getKind() == OPM_Tie;<br>+    return P->getKind() == OPM_SameOperand;<br>   }<br><br>   void emitPredicateOpcodes(<wbr>MatchTable &Table, RuleMatcher &Rule,<br>@@ -2094,7 +2094,7 @@ void SameOperandMatcher::<wbr>emitPredicateOp<br>                               <wbr>                RuleMatcher &Rule,<br>                               <wbr>                unsigned InsnVarID,<br>                               <wbr>                unsigned OpIdx) const {<br>-  const OperandMatcher &OtherOM = Rule.getOperandMatcher(TiedTo)<wbr>;<br>+  const OperandMatcher &OtherOM = Rule.getOperandMatcher(<wbr>MatchingName);<br>   unsigned OtherInsnVarID = Rule.getInsnVarID(OtherOM.<wbr>getInstructionMatcher());<br><br>   Table << MatchTable::Opcode("GIM_<wbr>CheckIsSameOperand")<br>@@ -2982,7 +2982,7 @@ void GlobalISelEmitter::run(raw_<wbr>ostream<br>   OS << "#ifdef GET_GLOBALISEL_TEMPORARIES_<wbr>DECL\n"<br>      << "  mutable MatcherState State;\n"<br>      << "  typedef "<br>-        "ComplexRendererFn("<br>+        "ComplexRendererFns("<br>      << Target.getName()<br>      << "InstructionSelector::*<wbr>ComplexMatcherMemFn)(<wbr>MachineOperand &) const;\n"<br>      << "  const MatcherInfoTy<PredicateBitset, ComplexMatcherMemFn> "<br><br><br>______________________________<wbr>_________________<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" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br></div></div></blockquote></div><br></div></div></div></div></blockquote></div><br></div>