john.brawn marked an inline comment as done. john.brawn added inline comments.
================ Comment at: clang/lib/Basic/Attributes.cpp:101-103 + for (ParsedAttrInfoRegistry::iterator it = ParsedAttrInfoRegistry::begin(), + ie = ParsedAttrInfoRegistry::end(); + it != ie; ++it) { ---------------- aaron.ballman wrote: > Range-based for loop? Also, `it` and `ie` don't meet the usual naming > conventions. > > One thing I'm not keen on with this is the performance hit. We spent a decent > amount of effort making this lookup fast and it's now a linear search through > all of the attributes and requires memory allocations and deallocations to > perform the search. Yes, I've done some experiments and in the pathological case (lots of trivial functions with the xray_log_args attribute) the slowdown is noticeable. I've done some tinkering and I think the best way to resolve this is to first use a generated function (i.e. something like the current getAttrKind) to look up the attributes that are compiled into clang, then if that fails look in the registry to find a match. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D31338/new/ https://reviews.llvm.org/D31338 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits