diff options
author | Reid Kleckner <rnk@google.com> | 2018-10-25 22:37:30 +0000 |
---|---|---|
committer | Reid Kleckner <rnk@google.com> | 2018-10-25 22:37:30 +0000 |
commit | 9e9606ec187c07156ceed8b14528ae66522dac5c (patch) | |
tree | 2f5d3cbed04679a586e908c8b95cafa2e76c319e /lldb/packages/Python/lldbsuite/test/expression_command/call-function/main.cpp | |
parent | a0254cac4bb924d7f2e898e578156be1a246f1dd (diff) | |
download | bcm5719-llvm-9e9606ec187c07156ceed8b14528ae66522dac5c.tar.gz bcm5719-llvm-9e9606ec187c07156ceed8b14528ae66522dac5c.zip |
Avoid std::map&vector in hexagon builtin code to save code size
Constructing a global std::map requires clang to generate a linear
amount of code to construct the initializer list if the elements are not
constexpr-constructible. std::vector is not constexpr-constructible, so
this code pattern was generating large amounts of code.
Also, because of PR38829, LLVM is pathologically slow on large basic
blocks, and this causes slow compilation. This works around the bug and
reduces code size.
SemaChecking.cpp -debug-info-kind=limited:
time objsize
before: 1m45.023s 9.8M
after: 0m25.205s 6.9M
So, a 42% obj size reduction and 3.2x speedup.
llvm-svn: 345329
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/expression_command/call-function/main.cpp')
0 files changed, 0 insertions, 0 deletions