[PATCH] D28845: Prototype of modules codegen

David Blaikie via cfe-commits cfe-commits at lists.llvm.org
Tue Jan 24 19:42:05 PST 2017


Richard: This ought to be ready for another round of review at this point,
I Think.

Got test cases (showing opt and non-opt behavior, direct and indirect
modular dependencies, unused modular code, etc - might need some more
comments?), flag, moved the linkage code to GetGVALinkageForFunction.

One oddity was that LangOpts in the ModuleManager was a separate LangOpts
than elsewhere - perhaps you know what the deal is there? Maybe I
shouldn't've been using that LangOpts to detect ModularCodegen? (I
propagated it through the ModuleManager ctor so it would work at the moment)

Also naming - ModularCodegen? -fmodule-codegen? EK_ReplyHazy? ;) Open to
ideas about any of those, and any others that stand out.

(future work: internal linkage functions (need to be weak_odr and have a
proper mangling, possibly with the module name), variables (static locals,
etc), global initializers, type debug info, ... )

Thanks!

On Tue, Jan 24, 2017 at 7:39 PM David Blaikie via Phabricator via
cfe-commits <cfe-commits at lists.llvm.org> wrote:

> dblaikie updated this revision to Diff 85686.
> dblaikie added a comment.
>
> - Add test coverage
>
>
> https://reviews.llvm.org/D28845
>
> Files:
>   include/clang/AST/ASTContext.h
>   include/clang/AST/ExternalASTSource.h
>   include/clang/Basic/LangOptions.def
>   include/clang/Basic/Module.h
>   include/clang/Driver/CC1Options.td
>   include/clang/Serialization/ASTBitCodes.h
>   include/clang/Serialization/ASTReader.h
>   include/clang/Serialization/ASTWriter.h
>   lib/AST/ASTContext.cpp
>   lib/AST/ExternalASTSource.cpp
>   lib/Basic/Module.cpp
>   lib/CodeGen/CodeGenModule.cpp
>   lib/Frontend/CompilerInvocation.cpp
>   lib/Lex/ModuleMap.cpp
>   lib/Serialization/ASTReader.cpp
>   lib/Serialization/ASTWriter.cpp
>   lib/Serialization/ASTWriterDecl.cpp
>   test/Modules/Inputs/codegen/bar.h
>   test/Modules/Inputs/codegen/bar.modulemap
>   test/Modules/Inputs/codegen/foo.h
>   test/Modules/Inputs/codegen/foo.modulemap
>   test/Modules/Inputs/codegen/use.cpp
>   test/Modules/codegen.test
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20170125/c6d80e1e/attachment.html>


More information about the cfe-commits mailing list