[llvm-dev] RFC: FileCheck Enhancements

Elena Lepilkina via llvm-dev llvm-dev at lists.llvm.org
Tue May 24 07:10:54 PDT 2016


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


More information about the llvm-dev mailing list