diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2013-02-03 19:59:25 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2013-02-03 19:59:25 +0000 |
commit | ae3f7608756eb90d8dd5d014238437fcbf1c7de7 (patch) | |
tree | 71b4b0fe84f291930c0e6badc2e11bc77f3076cd /lib/Format/Format.cpp | |
parent | 922cec29a9366f70d593d6225aea01dcd3daf8cf (diff) |
CodeGen: Implement hint values for dynamic_cast as described in the Itanium C++ ABI.
This can yield dramatic speedups of dynamic_cast for simple inheritance trees,
at least with libsupc++. Neither libcxxabi nor libcxxrt make use of this
hint currently, it was never implemented because clang didn't support it.
There was some concern about the number of class hierarchy walks this change
introduces. If it turns out to be an issue we can add caching either at the cast
pair level or even deeper, but we also do a lot of walks in Sema so this
codepath is probably fairly optimized already.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174293 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Format/Format.cpp')
0 files changed, 0 insertions, 0 deletions