David Greene via llvm-dev
2020-Jul-07 21:10 UTC
[llvm-dev] [RFC] Compiled regression tests.
"Robinson, Paul via llvm-dev" <llvm-dev at lists.llvm.org> writes:> I believe you can get the effect you want with a pair of DAG directives > followed by `CHECK: {{$}}`. The latter will constrain the DAG search > to be between the previous match point and the next EOL.I'm sorry, I don't quite understand what you mean. Can you give an example? My use-case is for metadata, where I wanted to do this: CHECK: %r1 = add %r2, %r3 CHECK-SAME: !some-metadata CHECK-SAME: !some-other-metadata where some-metadata and some-other-metadata might be reordered within the line (because some unrelated metadata got added to the instruction). In other words, all of these should match: %r1 = add %r2, %r3, !some-metadata !1, !some-other-metadata !2 %r1 = add %r2, %r3, !some-other-metadata !1, !some-metadata !2 %r1 = add %r2, %r3, !some-other-metadata !1, !some-unrelated-metadata !3, !some-metadata !2 -David
Robinson, Paul via llvm-dev
2020-Jul-08 11:12 UTC
[llvm-dev] [RFC] Compiled regression tests.
> -----Original Message----- > From: David Greene <david.greene at hpe.com> > Sent: Tuesday, July 7, 2020 5:11 PM > To: Robinson, Paul <paul.robinson at sony.com>; Michael Kruse > <llvmdev at meinersbur.de>; 'llvm-dev at lists.llvm.org' <llvm- > dev at lists.llvm.org> > Subject: Re: [llvm-dev] [RFC] Compiled regression tests. > > "Robinson, Paul via llvm-dev" <llvm-dev at lists.llvm.org> writes: > > > I believe you can get the effect you want with a pair of DAG directives > > followed by `CHECK: {{$}}`. The latter will constrain the DAG search > > to be between the previous match point and the next EOL. > > I'm sorry, I don't quite understand what you mean. Can you give an > example? > > My use-case is for metadata, where I wanted to do this: > > CHECK: %r1 = add %r2, %r3 > CHECK-SAME: !some-metadata > CHECK-SAME: !some-other-metadata > > where some-metadata and some-other-metadata might be reordered within > the line (because some unrelated metadata got added to the instruction). > In other words, all of these should match: > > %r1 = add %r2, %r3, !some-metadata !1, !some-other-metadata !2 > %r1 = add %r2, %r3, !some-other-metadata !1, !some-metadata !2 > %r1 = add %r2, %r3, !some-other-metadata !1, !some-unrelated-metadata !3, > !some-metadata !2 > > -DavidI'd expect the following to do what you want: CHECK: %r1 = add %r2, %r3 CHECK-DAG: !some-metadata CHECK-DAG: !some-other-metadata CHECK: {{$}} Interestingly, it does not; I filed PR46634 to figure this out. --paulr
David Greene via llvm-dev
2020-Jul-15 19:11 UTC
[llvm-dev] [RFC] Compiled regression tests.
"Robinson, Paul via llvm-dev" <llvm-dev at lists.llvm.org> writes:>> My use-case is for metadata, where I wanted to do this: >> >> CHECK: %r1 = add %r2, %r3 >> CHECK-SAME: !some-metadata >> CHECK-SAME: !some-other-metadata >> >> where some-metadata and some-other-metadata might be reordered within >> the line (because some unrelated metadata got added to the instruction). >> In other words, all of these should match: >> >> %r1 = add %r2, %r3, !some-metadata !1, !some-other-metadata !2 >> %r1 = add %r2, %r3, !some-other-metadata !1, !some-metadata !2 >> %r1 = add %r2, %r3, !some-other-metadata !1, !some-unrelated-metadata !3, >> !some-metadata !2> > I'd expect the following to do what you want: > > CHECK: %r1 = add %r2, %r3 > CHECK-DAG: !some-metadata > CHECK-DAG: !some-other-metadata > CHECK: {{$}} > > Interestingly, it does not; I filed PR46634 to figure this out.According to that PR this isn't supposed to work. So I don't think we have a solution to do what I want. And CHECK-DAG starts from the end of the previous match, and so can match things on the same line? I didn't expect that given the documentation. -David