[cfe-dev] [RFC] cHash: Integration of AST hashing
Christian Dietrich via cfe-dev
cfe-dev at lists.llvm.org
Fri Dec 1 08:32:59 PST 2017
Hi,
so I made some progress in integrating the CHash AST Hashing mechanism
into CLang: https://reviews.llvm.org/D40731
I cleaned up the mess in our repository and based the implementation on
StmtDataCollectors.
Christian Dietrich <dietrich at sra.uni-hannover.de> writes:
> As I see, you have done a lot of work on the StmtDataCollectors and used
> TableGen to generate the DataCollector. So my idea would be the following:
>
> - Extend the StmtDataCollectors.td to handle all possible nodes/types in
> the clang AST. Invoking this operator once, we get the hash value for
> one node.
Currently the change D40731 is still incomplete, but some important
parts were already implemented:
- I have extended the StmtDataCollectors.td file (and added tablegen
files for Decl, Attr, Type).
- Provide a CHashVisitor, based on RecursiveASTVisitor, that captures
our idea of a AST Hash (Semantic, stable across invocations).
- Make it all work with the cHash test suite.
- Start to add a (condensed) unit-test suite to validate CHashVisitor.
Integrating the useful parts of our internal test suite here is still
to be done.
> - Derive an recursive AST hashing visitor from RecursiveASTVisitor. This
> recursive AST visitor then has our desired flags:
>
> - semantic_hash vs syntactic_hash
> - Hash mechanism as a template parameter
> - Include debug flags
Including these flags for the CHashVisitor is still to be done.
At this point I would appreciate some comments on the current state of
the implementation. My next steps would be to integrate larger parts of
our test suite.
chris
--
Christian Dietrich, M.Sc. (Scientific Staff)
Institute for Systems Engineering (Systems and Computerarchitecture)
Leibniz Universität Hannover
Appelstraße 4
30167 Hannover, Germany
Tel: +49 511 762-19737
Fax: +49 511 762-19733
eMail: dietrich at sra.uni-hannover.de
WWW: https://www.sra.uni-hannover.de
More information about the cfe-dev
mailing list