<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">That’s hilarious since the test is marked XFAIL. So its actually passing in some configuration. I’ll just delete the test. There’s another patch in review to
 fix the known failure that made it XFAIL.<o:p></o:p></span></p>
<p class="MsoNormal"><a name="_MailEndCompose"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></a></p>
<p class="MsoNormal"><a name="_____replyseparator"></a><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Jordan Rupprecht [mailto:rupprecht@google.com]
<br>
<b>Sent:</b> Friday, December 07, 2018 1:47 PM<br>
<b>To:</b> Topper, Craig <craig.topper@intel.com><br>
<b>Cc:</b> llvm-commits@lists.llvm.org<br>
<b>Subject:</b> Re: [llvm] r348620 - [X86] Initialize and Register X86CondBrFoldingPass<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<div>
<p class="MsoNormal">Looks like this newly added test is failing in certain configurations. Internally we see it pass in vanilla mode but fail in opt, and I see some public buildbots are broken:<o:p></o:p></p>
<div>
<p class="MsoNormal"><a href="http://lab.llvm.org:8011/builders/lldb-amd64-ninja-netbsd8/builds/17493">http://lab.llvm.org:8011/builders/lldb-amd64-ninja-netbsd8/builds/17493</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><a href="http://lab.llvm.org:8011/builders/clang-with-lto-ubuntu/builds/11432">http://lab.llvm.org:8011/builders/clang-with-lto-ubuntu/builds/11432</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">I haven't yet figured out which CMake are relevant for repro though. Mind taking a look?<o:p></o:p></p>
</div>
</div>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">On Fri, Dec 7, 2018 at 10:13 AM Craig Topper via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<p class="MsoNormal">Author: ctopper<br>
Date: Fri Dec  7 10:10:34 2018<br>
New Revision: 348620<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=348620&view=rev" target="_blank">
http://llvm.org/viewvc/llvm-project?rev=348620&view=rev</a><br>
Log:<br>
[X86] Initialize and Register X86CondBrFoldingPass<br>
<br>
To make X86CondBrFoldingPass can be run with --run-pass option, this can test one wrong assertion on analyzeCompare function for SUB32ri when its operand is not imm<br>
<br>
Patch by Jianping Chen<br>
<br>
Differential Revision: <a href="https://reviews.llvm.org/D55412" target="_blank">
https://reviews.llvm.org/D55412</a><br>
<br>
Added:<br>
    llvm/trunk/test/CodeGen/X86/test_x86condbr_globaladdr.mir<br>
Modified:<br>
    llvm/trunk/lib/Target/X86/X86.h<br>
    llvm/trunk/lib/Target/X86/X86CondBrFolding.cpp<br>
    llvm/trunk/lib/Target/X86/X86TargetMachine.cpp<br>
<br>
Modified: llvm/trunk/lib/Target/X86/X86.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86.h?rev=348620&r1=348619&r2=348620&view=diff" target="_blank">
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86.h?rev=348620&r1=348619&r2=348620&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/X86/X86.h (original)<br>
+++ llvm/trunk/lib/Target/X86/X86.h Fri Dec  7 10:10:34 2018<br>
@@ -143,6 +143,7 @@ void initializeWinEHStatePassPass(PassRe<br>
 void initializeX86AvoidSFBPassPass(PassRegistry &);<br>
 void initializeX86CallFrameOptimizationPass(PassRegistry &);<br>
 void initializeX86CmovConverterPassPass(PassRegistry &);<br>
+void initializeX86CondBrFoldingPassPass(PassRegistry &);<br>
 void initializeX86DomainReassignmentPass(PassRegistry &);<br>
 void initializeX86ExecutionDomainFixPass(PassRegistry &);<br>
 void initializeX86FlagsCopyLoweringPassPass(PassRegistry &);<br>
<br>
Modified: llvm/trunk/lib/Target/X86/X86CondBrFolding.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86CondBrFolding.cpp?rev=348620&r1=348619&r2=348620&view=diff" target="_blank">
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86CondBrFolding.cpp?rev=348620&r1=348619&r2=348620&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/X86/X86CondBrFolding.cpp (original)<br>
+++ llvm/trunk/lib/Target/X86/X86CondBrFolding.cpp Fri Dec  7 10:10:34 2018<br>
@@ -62,8 +62,9 @@ STATISTIC(NumFixedCondBrs, "Number of x8<br>
 namespace {<br>
 class X86CondBrFoldingPass : public MachineFunctionPass {<br>
 public:<br>
-  X86CondBrFoldingPass() : MachineFunctionPass(ID) {}<br>
-<br>
+  X86CondBrFoldingPass() : MachineFunctionPass(ID) {<br>
+    initializeX86CondBrFoldingPassPass(*PassRegistry::getPassRegistry());<br>
+  }<br>
   StringRef getPassName() const override { return "X86 CondBr Folding"; }<br>
<br>
   bool runOnMachineFunction(MachineFunction &MF) override;<br>
@@ -73,12 +74,13 @@ public:<br>
     AU.addRequired<MachineBranchProbabilityInfo>();<br>
   }<br>
<br>
-private:<br>
+public:<br>
   static char ID;<br>
 };<br>
+} // namespace<br>
<br>
 char X86CondBrFoldingPass::ID = 0;<br>
-} // namespace<br>
+INITIALIZE_PASS(X86CondBrFoldingPass, "X86CondBrFolding", "X86CondBrFolding", false, false)<br>
<br>
 FunctionPass *llvm::createX86CondBrFolding() {<br>
   return new X86CondBrFoldingPass();<br>
<br>
Modified: llvm/trunk/lib/Target/X86/X86TargetMachine.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86TargetMachine.cpp?rev=348620&r1=348619&r2=348620&view=diff" target="_blank">
http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86TargetMachine.cpp?rev=348620&r1=348619&r2=348620&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Target/X86/X86TargetMachine.cpp (original)<br>
+++ llvm/trunk/lib/Target/X86/X86TargetMachine.cpp Fri Dec  7 10:10:34 2018<br>
@@ -78,6 +78,7 @@ extern "C" void LLVMInitializeX86Target(<br>
   initializeX86AvoidSFBPassPass(PR);<br>
   initializeX86SpeculativeLoadHardeningPassPass(PR);<br>
   initializeX86FlagsCopyLoweringPassPass(PR);<br>
+  initializeX86CondBrFoldingPassPass(PR);<br>
 }<br>
<br>
 static std::unique_ptr<TargetLoweringObjectFile> createTLOF(const Triple &TT) {<br>
<br>
Added: llvm/trunk/test/CodeGen/X86/test_x86condbr_globaladdr.mir<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/test_x86condbr_globaladdr.mir?rev=348620&view=auto" target="_blank">
http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/test_x86condbr_globaladdr.mir?rev=348620&view=auto</a><br>
==============================================================================<br>
--- llvm/trunk/test/CodeGen/X86/test_x86condbr_globaladdr.mir (added)<br>
+++ llvm/trunk/test/CodeGen/X86/test_x86condbr_globaladdr.mir Fri Dec  7 10:10:34 2018<br>
@@ -0,0 +1,30 @@<br>
+# XFAIL: *<br>
+# RUN: llc -o - %s -mtriple=i686-- -mcpu=ivybridge --run-pass X86CondBrFolding | FileCheck %s<br>
+# Test wrong assertion when meet SUB32ri with global address<br>
+# in X86CondBrFoldingiPass<br>
+--- |<br>
+  @img2buf_normal = external global i32<br>
+  define void @func() { ret void }<br>
+...<br>
+---<br>
+# CHECK: bb.0:<br>
+# CHECK: %2:gr32 = SUB32ri %1, @img2buf_normal, implicit-def $eflags<br>
+<br>
+name: func<br>
+tracksRegLiveness: true<br>
+body: |<br>
+  bb.0:<br>
+    liveins: $edx<br>
+    %1:gr32 = COPY $edx<br>
+    %2:gr32 = MOV32rm %1:gr32, 1, $noreg, 850256, $noreg<br>
+    %3:gr32 = SUB32ri %2:gr32, @img2buf_normal, implicit-def $eflags<br>
+    JE_1 %bb.2, implicit $eflags<br>
+    JMP_1 %bb.3<br>
+<br>
+  bb.2:<br>
+    RET 0, undef $eax<br>
+<br>
+  bb.3:<br>
+    $eax = MOV32rr %3:gr32<br>
+    RET 0, $eax<br>
+...<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" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><o:p></o:p></p>
</blockquote>
</div>
</div>
</body>
</html>