rnk added a comment.

That's interesting, somehow clang spends 1% of its time for sqlite3 in 
attribute lookup. I wonder how we ended up doing so much string-based attribute 
lookup. These were not really ever intended to be used for anything 
semantically interesting for the middle end, they were designed as a way to 
pass through uninteresting target-specific details like SSE features through to 
the backend. I guess what happened next is that we added rules to the inliner 
to block inlining between functions with mismatched CPU features, and that's 
where these string attribute lookups are coming from. Perhaps there's a design 
lesson here.

Regarding LLVMGetStringAttributeAtIndex and the C API, I don't imagine that 
most non-C++ frontends do a lot of attribute lookups. They mainly generate IR. 
I think, on balance, the performance improvements in LLVM itself will outweigh 
any regressions from doing extra lookups via the C API during IR generation.


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

https://reviews.llvm.org/D114394

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
  • [PATCH] D114394: Compile-tim... Reid Kleckner via Phabricator via cfe-commits

Reply via email to