[llvm] r212643 - Decouple llvm::SpecialCaseList text representation and its LLVM IR semantics.
Peter Collingbourne
peter at pcc.me.uk
Wed Jul 9 16:42:37 PDT 2014
On Wed, Jul 09, 2014 at 04:15:42PM -0700, Alexey Samsonov wrote:
> Hi,
>
> On Wed, Jul 9, 2014 at 1:42 PM, Peter Collingbourne <peter at pcc.me.uk> wrote:
>
> > On Wed, Jul 09, 2014 at 07:40:09PM -0000, Alexey Samsonov wrote:
> > > Author: samsonov
> > > Date: Wed Jul 9 14:40:08 2014
> > > New Revision: 212643
> > >
> > > URL: http://llvm.org/viewvc/llvm-project?rev=212643&view=rev
> > > Log:
> > > Decouple llvm::SpecialCaseList text representation and its LLVM IR
> > semantics.
> > >
> > > Turn llvm::SpecialCaseList into a simple class that parses text files in
> > > a specified format and knows nothing about LLVM IR. Move this class into
> > > LLVMSupport library. Implement two users of this class:
> > > * DFSanABIList in DFSan instrumentation pass.
> > > * SanitizerBlacklist in Clang CodeGen library.
> > > The latter will be modified to use actual source-level information from
> > frontend
> > > (source file names) instead of unstable LLVM IR things (LLVM Module
> > identifier).
> > >
> > > Remove dependency edge from ClangCodeGen/ClangDriver to
> > LLVMTransformUtils.
> > >
> > > No functionality change.
> >
> > Okay.
> >
> > Do you have any further refactoring planned for SpecialCaseList? One change
> > that I realised that I will need to make for DFSan is to change the
> > semantics
> > for symbol names appearing in the special case list so that they are always
> > interpreted "literally", in order to allow symbol names that may contain
> > regex metacharacters to be added to the StringSet. Of course this would be
> > under a boolean argument somewhere so that the special case list semantics
> > for the other sanitizers aren't affected.
> >
>
> No, I don't currently plan refactoring of SpecialCaseList, instead I'm
> going change
> the behavior of SanitizerBlacklist. Literal representation of
> metacharacters (except for *)
> sounds like a good idea - documentation refers to special case list entries
> as "wildcard
> expressions", not "regular expressions", so it would be weird to force
> users to escape
> characters on their own.
The patterns are referred to as "regular expressions" here, with examples
that use RE syntax and specifically refer to the patterns as being EREs:
http://clang.llvm.org/docs/SanitizerSpecialCaseList.html#format
The examples don't seem particularly compelling to me. If not bound by
compatibility constraints, I would make '*' the only recognized metacharacter.
Maybe we should add support to SpecialCaseList for a "version 2" of the
format which only supports '*'?
> But, yes, let's make this change affect DFSan only
> for now,
> just add an extra parameter to SpecialCaseList factory to specify if it
> needs to escape
> metachars when parsing the file.
OK, sounds good.
Thanks,
--
Peter
More information about the llvm-commits
mailing list