yaxunl marked an inline comment as done. ================ Comment at: include/clang/Basic/LangOptions.def:220 @@ -219,3 +219,3 @@ ENUM_LANGOPT(AddressSpaceMapMangling , AddrSpaceMapMangling, 2, ASMM_Target, "OpenCL address space map mangling mode") - +LANGOPT(IncludeDefaultHeader, 1, 0, "Include default header file for OpenCL") BENIGN_LANGOPT(DelayedTemplateParsing , 1, 0, "delayed template parsing") ---------------- I agree and has made the change.
The module caches AST of the header file, which is essentially the same thing as PCH. I checked a typical OpenCL progam. Without including header, ---User Time--- --System Time-- --User+System-- ---Wall Time--- --- Name --- 0.0160 (100.0%) 0.0080 (100.0%) 0.0240 (100.0%) 0.0211 (100.0%) Clang front-end timer 0.0160 (100.0%) 0.0080 (100.0%) 0.0240 (100.0%) 0.0211 (100.0%) Total With header but without module caching, ---User Time--- --System Time-- --User+System-- ---Wall Time--- --- Name --- 0.2160 (100.0%) 0.0120 (100.0%) 0.2280 (100.0%) 0.2271 (100.0%) Clang front-end timer 0.2160 (100.0%) 0.0120 (100.0%) 0.2280 (100.0%) 0.2271 (100.0%) Total With header and module caching, ---User Time--- --System Time-- --User+System-- ---Wall Time--- --- Name --- 0.0160 (100.0%) 0.0080 (100.0%) 0.0240 (100.0%) 0.0222 ( 93.6%) Clang front-end timer 0.0000 ( 0.0%) 0.0000 ( 0.0%) 0.0000 ( 0.0%) 0.0008 ( 3.5%) Reading modules 0.0000 ( 0.0%) 0.0000 ( 0.0%) 0.0000 ( 0.0%) 0.0007 ( 2.9%) Loading /home/yaxunl/llvm-tot/llvm/tools/clang/test/CodeGenOpenCL/./JJHF9CF78G8Z/opencl_c-3RXFI66A6CUM7.pcm 0.0160 (100.0%) 0.0080 (100.0%) 0.0240 (100.0%) 0.0237 (100.0%) Total So the caching is very effective and essentially makes the header loading time to be ignored. http://reviews.llvm.org/D20444 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits