[llvm] r263667 - use FileCheck for tighter checking

Sanjay Patel via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 16 17:58:14 PDT 2016


That would be checking for the absence of badness rather than presence of
goodness.

I prefer the latter for the same reason we've done this in the x86 backend:
it's too easy for bugs to slip through the cracks with lax checking.

I've definitely been a victim of weak regression tests. Quentin, Ahmed, and
Tim have cited loose checks as the cause of problems too:
https://llvm.org/bugs/show_bug.cgi?id=22897
https://llvm.org/bugs/show_bug.cgi?id=26815#c12
https://llvm.org/bugs/show_bug.cgi?id=26815#c13

But if the consensus is that IR checking with this detail is going too far,
I can revert and/or hand-edit to reduce the checking. I'm not sure how we'd
make a script filter out checks based on functional importance.

BTW - Tim, thanks for posting your script in http://reviews.llvm.org/D17999
! I'm using part of that here.

On Wed, Mar 16, 2016 at 5:59 PM, Alex Rosenberg <alexr at ohmantics.com> wrote:

> It looks like this test can be a single line CHECK-NOT. The same is true
> of a few other similar commits today.
>
> Alex
>
> On Mar 16, 2016, at 3:29 PM, Sanjay Patel via llvm-commits <
> llvm-commits at lists.llvm.org> wrote:
>
> > Author: spatel
> > Date: Wed Mar 16 17:29:07 2016
> > New Revision: 263667
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=263667&view=rev
> > Log:
> > use FileCheck for tighter checking
> >
> > I'm testing out a script that auto-generates the check lines.
> > It's 98% copied from utils/update_llc_test_checks.py.
> > If others think this is useful, please let me know.
> >
> > Modified:
> >    llvm/trunk/test/Transforms/SimplifyCFG/two-entry-phi-return.ll
> >
> > Modified: llvm/trunk/test/Transforms/SimplifyCFG/two-entry-phi-return.ll
> > URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/SimplifyCFG/two-entry-phi-return.ll?rev=263667&r1=263666&r2=263667&view=diff
> >
> ==============================================================================
> > --- llvm/trunk/test/Transforms/SimplifyCFG/two-entry-phi-return.ll
> (original)
> > +++ llvm/trunk/test/Transforms/SimplifyCFG/two-entry-phi-return.ll Wed
> Mar 16 17:29:07 2016
> > @@ -1,15 +1,23 @@
> > -; RUN: opt < %s -simplifycfg -S | not grep br
> > +; RUN: opt < %s -simplifycfg -S | FileCheck %s
> >
> > define i1 @qux(i8* %m, i8* %n, i8* %o, i8* %p) nounwind  {
> > entry:
> > -        %tmp7 = icmp eq i8* %m, %n
> > -        br i1 %tmp7, label %bb, label %UnifiedReturnBlock
> > +  %tmp7 = icmp eq i8* %m, %n
> > +  br i1 %tmp7, label %bb, label %UnifiedReturnBlock
> >
> > bb:
> > -        %tmp15 = icmp eq i8* %o, %p
> > -        br label %UnifiedReturnBlock
> > +  %tmp15 = icmp eq i8* %o, %p
> > +  br label %UnifiedReturnBlock
> >
> > UnifiedReturnBlock:
> > -        %result = phi i1 [ 0, %entry ], [ %tmp15, %bb ]
> > -        ret i1 %result
> > +  %result = phi i1 [ 0, %entry ], [ %tmp15, %bb ]
> > +  ret i1 %result
> > +
> > +; CHECK-LABEL: @qux(
> > +; CHECK-NEXT:  entry:
> > +; CHECK-NEXT:    [[TMP7:%.*]] = icmp eq i8* %m, %n
> > +; CHECK-NEXT:    [[TMP15:%.*]] = icmp eq i8* %o, %p
> > +; CHECK-NEXT:    [[TMP15_:%.*]] = select i1 [[TMP7]], i1 [[TMP15]], i1
> false
> > +; CHECK-NEXT:    ret i1 [[TMP15_]]
> > }
> > +
> >
> >
> > _______________________________________________
> > llvm-commits mailing list
> > llvm-commits at lists.llvm.org
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160316/08cba4c6/attachment.html>


More information about the llvm-commits mailing list