Hi, CHECK-WORD - If you want find some string in file, but you want to be sure, that this string should be a separate word. There are examples in file. Prefixes which can be described as regular expressions should be turning on with option -regex-prefixes . By default, you can't use it. Thanks for your comments. -----Original Message----- From: Jonathan Roelofs [mailto:jonathan at codesourcery.com] Sent: Tuesday, May 24, 2016 5:05 PM To: Elena Lepilkina <Elena.Lepilkina at synopsys.com>; llvm-dev <llvm-dev at lists.llvm.org> Subject: Re: [llvm-dev] RFC: FileCheck Enhancements On 5/24/16 7:51 AM, Elena Lepilkina via llvm-dev wrote:> Hi everyone, > > There was idea to add new directives to FileCheck: > > 1.Directive to use some patterns as named template with or without > parameters. > > 2.CHECK-INCLUDE - Directive to include other file with checks to another. > > 3.Expressions repeat for CHECK - If statement should be checked > several times repeat modifiers {n}, {n,m} , {,n}, {n,}, *, + can be used. > > 4.Repeat in regexs - Repeat with current number should become > available by using {n}, {n,m} , {,n}, {n,} > > 5.CHECK-LABEL-DAG - Not sequential order of labels. > > 6.Check statement for words only - // CHECK-WORD, // CHECK-WORD-NEXT, > // CHECK-WORD-SAME, // CHECK-WORD-DAG, // CHECK-WORD-NOT.What does this ^ do?> > 7.Wildcard for prefixes - If some statements should be checked > regardless prefix, it should be used //{{*}}, //{{*}}-NEXT, > //{{*}}-SAME and etc.I'm not a fan of this ^ feature. I think it'll make testcases much harder to understand.> > 8.Prefix with regular expressions - If statement should be checked if > prefix matches some regular expression, it should be used {{regex}}:, > {{regex}}-NEXT and etc.I'm not a fan of this ^ feature. I think it'll make testcases much harder to understand.> > More information in file > https://docs.google.com/document/d/1wAKNzU7-S2EeK1-aADwgP8dEiKfByKNazonybCQW3zs/edit?usp=sharing. > > Now we have prototype with these features. It’s tested on LLVM 3.8. > > There was found unsupported before directive in old test. Bug about > this > - https://llvm.org/bugs/show_bug.cgi?id=27852. > > There is about 6% slowdown with new features when we tested them on 3.8. > > I see that there are some changes in FileCheck LLVM 3.9 with new > features too. We can publish patch for 3.8 and it can be adapted for > LLVM 3.9. Is it interesting for anyone? And how will be better to > publish patch as for 3.8 or for 3.9?Patches that apply on trunk are preferred (assuming the community accepts these changes). Jon> > Thanks, > > Elena. > > > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >-- Jon Roelofs jonathan at codesourcery.com CodeSourcery / Mentor Embedded
Jonathan Roelofs via llvm-dev
2016-May-24 14:13 UTC
[llvm-dev] RFC: FileCheck Enhancements
On 5/24/16 8:10 AM, Elena Lepilkina wrote:> Hi, > > CHECK-WORD - If you want find some string in file, but you want to be sure, that this string should be a separate word.Is this functionally equivalent to doing: // CHECK: {{\s}}whatever{{\s}} Or is there some other subtlety about it? Jon> > There are examples in file. > Prefixes which can be described as regular expressions should be turning on with option -regex-prefixes . By default, you can't use it. > > Thanks for your comments. > > -----Original Message----- > From: Jonathan Roelofs [mailto:jonathan at codesourcery.com] > Sent: Tuesday, May 24, 2016 5:05 PM > To: Elena Lepilkina <Elena.Lepilkina at synopsys.com>; llvm-dev <llvm-dev at lists.llvm.org> > Subject: Re: [llvm-dev] RFC: FileCheck Enhancements > > > > On 5/24/16 7:51 AM, Elena Lepilkina via llvm-dev wrote: >> Hi everyone, >> >> There was idea to add new directives to FileCheck: >> >> 1.Directive to use some patterns as named template with or without >> parameters. >> >> 2.CHECK-INCLUDE - Directive to include other file with checks to another. >> >> 3.Expressions repeat for CHECK - If statement should be checked >> several times repeat modifiers {n}, {n,m} , {,n}, {n,}, *, + can be used. >> >> 4.Repeat in regexs - Repeat with current number should become >> available by using {n}, {n,m} , {,n}, {n,} >> >> 5.CHECK-LABEL-DAG - Not sequential order of labels. >> >> 6.Check statement for words only - // CHECK-WORD, // CHECK-WORD-NEXT, >> // CHECK-WORD-SAME, // CHECK-WORD-DAG, // CHECK-WORD-NOT. > > What does this ^ do? > >> >> 7.Wildcard for prefixes - If some statements should be checked >> regardless prefix, it should be used //{{*}}, //{{*}}-NEXT, >> //{{*}}-SAME and etc. > > I'm not a fan of this ^ feature. I think it'll make testcases much harder to understand. > >> >> 8.Prefix with regular expressions - If statement should be checked if >> prefix matches some regular expression, it should be used {{regex}}:, >> {{regex}}-NEXT and etc. > > I'm not a fan of this ^ feature. I think it'll make testcases much harder to understand. > >> >> More information in file >> https://docs.google.com/document/d/1wAKNzU7-S2EeK1-aADwgP8dEiKfByKNazonybCQW3zs/edit?usp=sharing. >> >> Now we have prototype with these features. It’s tested on LLVM 3.8. >> >> There was found unsupported before directive in old test. Bug about >> this >> - https://llvm.org/bugs/show_bug.cgi?id=27852. >> >> There is about 6% slowdown with new features when we tested them on 3.8. >> >> I see that there are some changes in FileCheck LLVM 3.9 with new >> features too. We can publish patch for 3.8 and it can be adapted for >> LLVM 3.9. Is it interesting for anyone? And how will be better to >> publish patch as for 3.8 or for 3.9? > > Patches that apply on trunk are preferred (assuming the community accepts these changes). > > > Jon > >> >> Thanks, >> >> Elena. >> >> >> >> _______________________________________________ >> LLVM Developers mailing list >> llvm-dev at lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >> >-- Jon Roelofs jonathan at codesourcery.com CodeSourcery / Mentor Embedded
It's equivalent to {{\b}}whatever{{\b}}. I amn't sure if assertion \b is supported. \s will not match with start and of line, but it should be matched. Elena. -----Original Message----- From: Jonathan Roelofs [mailto:jonathan at codesourcery.com] Sent: Tuesday, May 24, 2016 5:14 PM To: Elena Lepilkina <Elena.Lepilkina at synopsys.com>; llvm-dev <llvm-dev at lists.llvm.org> Subject: Re: [llvm-dev] RFC: FileCheck Enhancements On 5/24/16 8:10 AM, Elena Lepilkina wrote:> Hi, > > CHECK-WORD - If you want find some string in file, but you want to be sure, that this string should be a separate word.Is this functionally equivalent to doing: // CHECK: {{\s}}whatever{{\s}} Or is there some other subtlety about it? Jon> > There are examples in file. > Prefixes which can be described as regular expressions should be turning on with option -regex-prefixes . By default, you can't use it. > > Thanks for your comments. > > -----Original Message----- > From: Jonathan Roelofs [mailto:jonathan at codesourcery.com] > Sent: Tuesday, May 24, 2016 5:05 PM > To: Elena Lepilkina <Elena.Lepilkina at synopsys.com>; llvm-dev > <llvm-dev at lists.llvm.org> > Subject: Re: [llvm-dev] RFC: FileCheck Enhancements > > > > On 5/24/16 7:51 AM, Elena Lepilkina via llvm-dev wrote: >> Hi everyone, >> >> There was idea to add new directives to FileCheck: >> >> 1.Directive to use some patterns as named template with or without >> parameters. >> >> 2.CHECK-INCLUDE - Directive to include other file with checks to another. >> >> 3.Expressions repeat for CHECK - If statement should be checked >> several times repeat modifiers {n}, {n,m} , {,n}, {n,}, *, + can be used. >> >> 4.Repeat in regexs - Repeat with current number should become >> available by using {n}, {n,m} , {,n}, {n,} >> >> 5.CHECK-LABEL-DAG - Not sequential order of labels. >> >> 6.Check statement for words only - // CHECK-WORD, // CHECK-WORD-NEXT, >> // CHECK-WORD-SAME, // CHECK-WORD-DAG, // CHECK-WORD-NOT. > > What does this ^ do? > >> >> 7.Wildcard for prefixes - If some statements should be checked >> regardless prefix, it should be used //{{*}}, //{{*}}-NEXT, >> //{{*}}-SAME and etc. > > I'm not a fan of this ^ feature. I think it'll make testcases much harder to understand. > >> >> 8.Prefix with regular expressions - If statement should be checked if >> prefix matches some regular expression, it should be used {{regex}}:, >> {{regex}}-NEXT and etc. > > I'm not a fan of this ^ feature. I think it'll make testcases much harder to understand. > >> >> More information in file >> https://docs.google.com/document/d/1wAKNzU7-S2EeK1-aADwgP8dEiKfByKNazonybCQW3zs/edit?usp=sharing. >> >> Now we have prototype with these features. It’s tested on LLVM 3.8. >> >> There was found unsupported before directive in old test. Bug about >> this >> - https://llvm.org/bugs/show_bug.cgi?id=27852. >> >> There is about 6% slowdown with new features when we tested them on 3.8. >> >> I see that there are some changes in FileCheck LLVM 3.9 with new >> features too. We can publish patch for 3.8 and it can be adapted for >> LLVM 3.9. Is it interesting for anyone? And how will be better to >> publish patch as for 3.8 or for 3.9? > > Patches that apply on trunk are preferred (assuming the community accepts these changes). > > > Jon > >> >> Thanks, >> >> Elena. >> >> >> >> _______________________________________________ >> LLVM Developers mailing list >> llvm-dev at lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >> >-- Jon Roelofs jonathan at codesourcery.com CodeSourcery / Mentor Embedded