yihanaa added inline comments.

================
Comment at: clang/lib/CodeGen/CGBuiltin.cpp:2048
+                                              QualType Type) {
+  static llvm::DenseMap<QualType, StringRef> Types;
   if (Types.empty()) {
----------------
erichkeane wrote:
> yihanaa wrote:
> > erichkeane wrote:
> > > yihanaa wrote:
> > > > erichkeane wrote:
> > > > > Instead of this initialization, can we make this a constexpr 
> > > > > constructor/collection of some sort and instantiate it inline?  
> > > > > Instead of this initialization, can we make this a constexpr 
> > > > > constructor/collection of some sort and instantiate it inline?  
> > > > 
> > > > I don't have a good idea because it relies on Context to get some types 
> > > > like const char *
> > > We could at minimum do a in inline-initializer instead of the branch 
> > > below.
> > I still haven't come up with a good idea to do it๐Ÿ˜”
> Hrmph, `DenseMap` doesn't seem to have an init list ctor?!
> 
> Since this is a finite, known at compile time list of low 'N', I'd suggest 
> just making it `static std::array<pair<QualType, StringRef>> Types = 
> {{Context.CharTy, "%c"},...`.
> 
> Then just doing a llvm::find_if.  The list is small enough I suspect the 
> DenseMap overhead is more than the use of `llvm::find_if`.
Haha,DenseMap also has no constexpr ctor. I think the time complexity of these 
two is the same. 


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D122822

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

Reply via email to