<div dir="ltr">Thanks Adam. Also handy to reply to the original commit that you've done so too :)<div><br></div><div>Thanks!<br><div><div><br></div><div>-eric</div></div></div></div><br><div class="gmail_quote"><div dir="ltr">On Mon, Feb 12, 2018 at 2:44 PM Adam Nemet via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: anemet<br>
Date: Mon Feb 12 14:42:13 2018<br>
New Revision: 324958<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=324958&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=324958&view=rev</a><br>
Log:<br>
Revert "[LSR] Avoid UB overflow when examining reuse opportunities"<br>
<br>
This reverts commit r324943.<br>
<br>
Breaking bots, reverting for Gerolf.<br>
<br>
Removed:<br>
    llvm/trunk/test/CodeGen/X86/loop-strength-reduce-overflow-check.ll<br>
Modified:<br>
    llvm/trunk/lib/Transforms/Scalar/LoopStrengthReduce.cpp<br>
<br>
Modified: llvm/trunk/lib/Transforms/Scalar/LoopStrengthReduce.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/LoopStrengthReduce.cpp?rev=324958&r1=324957&r2=324958&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/LoopStrengthReduce.cpp?rev=324958&r1=324957&r2=324958&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/Transforms/Scalar/LoopStrengthReduce.cpp (original)<br>
+++ llvm/trunk/lib/Transforms/Scalar/LoopStrengthReduce.cpp Mon Feb 12 14:42:13 2018<br>
@@ -3939,11 +3939,6 @@ void LSRInstance::GenerateCrossUseConsta<br>
     if (Imms.size() == 1)<br>
       continue;<br>
<br>
-    // UB: Check for overflow<br>
-    int64_t Res;<br>
-    if (__builtin_saddll_overflow(Imms.begin()->first, std::prev(Imms.end())->first, &Res))<br>
-      continue;<br>
-<br>
     DEBUG(dbgs() << "Generating cross-use offsets for " << *Reg << ':';<br>
           for (const auto &Entry : Imms)<br>
             dbgs() << ' ' << Entry.first;<br>
<br>
Removed: llvm/trunk/test/CodeGen/X86/loop-strength-reduce-overflow-check.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/loop-strength-reduce-overflow-check.ll?rev=324957&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/loop-strength-reduce-overflow-check.ll?rev=324957&view=auto</a><br>
==============================================================================<br>
--- llvm/trunk/test/CodeGen/X86/loop-strength-reduce-overflow-check.ll (original)<br>
+++ llvm/trunk/test/CodeGen/X86/loop-strength-reduce-overflow-check.ll (removed)<br>
@@ -1,26 +0,0 @@<br>
-; RUN: llc < %s -O1 -mtriple=x86_64-unknown-unknown<br>
-<br>
-; LSR has to check for overflow to avoid UB when it examines reuse opportunities<br>
-; Clang built with UBSan would expose the issue in this test case<br>
-<br>
-define void @main() {<br>
-bb:<br>
-  br label %bb1<br>
-<br>
-bb1:                                              ; preds = %bb1, %bb<br>
-  %tmp = phi i64 [ 248268322795906120, %bb ], [ %tmp10, %bb1 ]<br>
-  %tmp2 = sub i64 %tmp, 248268322795906120<br>
-  %tmp3 = getelementptr i8, i8* undef, i64 %tmp2<br>
-  %tmp4 = sub i64 %tmp, 248268322795906120<br>
-  %tmp5 = getelementptr i8, i8* undef, i64 %tmp4<br>
-  %tmp6 = getelementptr i8, i8* %tmp5, i64 -9086989864993762928<br>
-  %tmp7 = load i8, i8* %tmp6, align 1<br>
-  %tmp8 = getelementptr i8, i8* %tmp3, i64 -1931736422337600660<br>
-  store i8 undef, i8* %tmp8<br>
-  %tmp9 = add i64 %tmp, 248268322795906121<br>
-  %tmp10 = add i64 %tmp9, -248268322795906120<br>
-  br i1 undef, label %bb11, label %bb1<br>
-<br>
-bb11:                                             ; preds = %bb1<br>
-  ret void<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" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div>