]> granicus.if.org Git - clang/commit
implement a nice new optimization: CodeGenTypes::UpdateCompletedType
authorChris Lattner <sabre@nondot.org>
Sun, 10 Jul 2011 06:03:22 +0000 (06:03 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 10 Jul 2011 06:03:22 +0000 (06:03 +0000)
commit3ade97504790bbc5a148baa5b3f7e577aed9c1c6
tree956307bbe288e4b2e173d7645d2222280f816eb1
parent1b5ba858e4628049a7105257fa712b4ab93c0a62
implement a nice new optimization: CodeGenTypes::UpdateCompletedType
is called whenever a tag type is completed.  We previously used that
as the sign to layout the codegen representation for the tag type,
which worked but meant that we laid out *every* completed type, whether
it was used or not.

Now we just lay out the type if we've already seen it somehow else.
This means that we lay out types we've used but haven't seen a body
for, but we don't lay out tons of stuff that noone cares about.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134866 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/CodeGenTypes.cpp
test/CodeGenCXX/template-anonymous-types.cpp