[cfe-dev] Merging AST from Multiple Translation Units

Manuel Klimek klimek at google.com
Wed Jun 17 00:23:04 PDT 2015


The generally used way to do that that also scales well is:
- run tool on each TU, produce intermediate output for each TU (map phase)
- slurp in intermediate output and produce end-result you want (reduce
phase)

On Wed, Jun 17, 2015 at 6:37 AM Alexey Kutumov <alexey.kutumov at gmail.com>
wrote:

> Hello,
>
> I suppose that ASTImporter does not handle all AST nodes (i know that it
> cannot import `using` directives, it cannot import templates, also it
> cannot import pragmas and so on). I think that it can import only simple
> nodes (like structs, classes, functions).
>
> I have branch (based on 3.6)
> https://github.com/prograholic/clang/tree/odr-check
> <https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_prograholic_clang_tree_odr-2Dcheck&d=AwMFaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=CnzuN65ENJ1H9py9XLiRvC_UQz6u3oG6GUNn7_wosSM&m=Ci-RcwkMtj1HhDqZ6WcSimFe-XXVbMOTw5IQHEwcyW4&s=4E8E0dfgdt1-MCIx8AEhq8QLkywTEgBshahMC3q3xgQ&e=>.
> In this branch i'm trying to implement import of all possible nodes. But my
> branch is highly experimental.
>
> 2015-06-17 6:41 GMT+06:00 Uri Mann <umann at symantec.com>:
>
>> Hello everyone;
>>
>> I'm trying to create a tool which transforms source using a class derived
>> from ASTFrontendAction. The tool need to transform one or more source files
>> and then produce a final source file which can reference symbols from all
>> of the processed source files. I tried to use ASTMergeAction class by
>> saving the ASTUnit at the inside my class's EndSourceFileAction(). But when
>> the files are merged, ASTImporter emits multiple errors "cannot import
>> unsupported AST node xxx". Is this the right way to do it?
>>
>> Thanks in advance.
>> -Uri
>>
>>
>> _______________________________________________
>> cfe-dev mailing list
>> cfe-dev at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>>
>
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20150617/5cad5c32/attachment.html>


More information about the cfe-dev mailing list