erichkeane added inline comments.
================
Comment at: clang/lib/CodeGen/CGBuiltin.cpp:2048
+ QualType Type) {
+ static llvm::DenseMap<QualType, StringRef> Types;
if (Types.empty()) {
----------------
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`.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D122822/new/
https://reviews.llvm.org/D122822
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits