tom-anders marked an inline comment as done.
tom-anders added inline comments.


================
Comment at: clang/lib/AST/RawCommentList.cpp:227
+                      
SourceMgr.getLocForStartOfFile(SourceMgr.getMainFileID()),
+                      Allocator, SourceMgr.getDiagnostics(), Traits);
+}
----------------
kadircet wrote:
> tom-anders wrote:
> > I wasn't sure if it's worth making the `Diagnostics` parameter optional 
> > here - Our `SourceMgr` already has it anyway, does it impact performance 
> > significantly to use it, even though we don't need it (yet)?
> as things stand, Lexer, Sema and Parser expect a non-null diagnosticsengine 
> so we have to pass something (i guess that's what you meant by making it 
> optional).
> 
> the performance implications comes from two places:
> 1- extra analysis being performed in the face of malformed comments to 
> produce "useful" diagnostics
> 2- creation cost of diagnostic itself, as all the data about ranges, decls 
> etc. are copied around when constructing a diagnostic.
> 
> i don't know how costly the first action is today, it's unfortunately the 
> case that would require a lot of code changes, if it's happening quite often 
> in practice (especially when we're in codebases without proper doxygen 
> comments)
> the latter is somewhat easier to address by providing our own "mock" 
> diagnostics engine, that'll just drop all of these extra diagnostic data on 
> the floor instead of copying around.
> 
> i think taking a look at the codebase for the first (searching for `Diag(...) 
> <<` patterns in Comment{Lexer,Sema,Parser}.cpp should give some ideas) and 
> assessing whether we're performing any extra complicated analysis would be a 
> good start. i would expect us not to, and if that's the case i think we can 
> leave it at that and don't try to make code changes.
> the latter we can address easily and we should.
1 - At first glance it indeed seems like there's no significant extra analysis 
performed, so I think we're good for now.
2 - I think this is already taken care of by `SourceManagerForFile` which just 
passes `nullptr` as the `DiagnosticConsumer`, right?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D143112/new/

https://reviews.llvm.org/D143112

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to