diff options
author | Chandler Carruth <chandlerc@gmail.com> | 2012-03-07 02:33:09 +0000 |
---|---|---|
committer | Chandler Carruth <chandlerc@gmail.com> | 2012-03-07 02:33:09 +0000 |
commit | f8cde7388eb96c59992bc4798ec9fca41ea1a13c (patch) | |
tree | b69247c9ecf8783b87e7d399b441dabeb8a92070 /lib/CodeGen | |
parent | 344224b3a34bda62bea86c06807584ec7558e157 (diff) |
Cache the sized-ness of struct types, once we reach the steady state of
"is sized". This prevents every query to isSized() from recursing over
every sub-type of a struct type. This could get *very* slow for
extremely deep nesting of structs, as in 177.mesa.
This change is a 45% speedup for 'opt -O2' of 177.mesa.linked.bc, and
likely a significant speedup for other cases as well. It even impacts
-O0 cases because so many part of the code try to check whether a type
is sized.
Thanks for the review from Nick Lewycky and Benjamin Kramer on IRC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152197 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen')
0 files changed, 0 insertions, 0 deletions