[PATCH] D25363: [Sema] Store a SourceRange for multi-token builtin types

Aaron Ballman via cfe-commits cfe-commits at lists.llvm.org
Tue Oct 18 06:09:13 PDT 2016


aaron.ballman added inline comments.


================
Comment at: include/clang/AST/TypeLoc.h:513
 struct BuiltinLocInfo {
-  SourceLocation BuiltinLoc;
+  SourceRange BuiltinRange;
 };
----------------
malcolm.parsons wrote:
> aaron.ballman wrote:
> > Since this doubles the size of the type loc for builtin types, do you happen to have any data on what practical impact this has on RAM usage, say for bootstrapping LLVM (or compiling any large source base, really)? Hopefully it's not a lot, but it would be nice to know if it's a .1%, 1%, 10%, etc increase in usage (or does the change get lost in the noise).
> I don't have any data.
> I'm not sure how to collect that data.
It's likely platform dependent, but I was thinking something as simple as looking at peak RAM usage between two different builds of the compiler. Something like `top` would probably work if you're on Linux (unless someone knows of a better way, I'm not strong on Linux).


================
Comment at: unittests/AST/SourceLocationTest.cpp:228
+}
+
 TEST(CXXConstructorDecl, NoRetFunTypeLocRange) {
----------------
malcolm.parsons wrote:
> aaron.ballman wrote:
> > Can you also add a test that the range is correct for something like `long double`  and `long double _Complex`?
> `ComplexTypeLoc` isn't implemented.
> 
> include/clang/AST/TypeLoc.h:
> ```
> // FIXME: location of the '_Complex' keyword.
> class ComplexTypeLoc : public InheritingConcreteTypeLoc<TypeSpecTypeLoc,
>                                                         ComplexTypeLoc,
>                                                         ComplexType> {
> };
> ```
Ah, neat, then don't worry about that one. :-)


https://reviews.llvm.org/D25363





More information about the cfe-commits mailing list