diff options
author | Alexander Potapenko <glider@google.com> | 2019-03-01 09:00:41 +0000 |
---|---|---|
committer | Alexander Potapenko <glider@google.com> | 2019-03-01 09:00:41 +0000 |
commit | fa61dddf5dc8cc35de6f814a04012b73a1afcb0e (patch) | |
tree | 06491add841101cc66bfce8fc13b53b82c86a9f2 /clang/lib/Format/Format.cpp | |
parent | 90641b5581b20bee4b689733d0008d3fbba4973c (diff) | |
download | bcm5719-llvm-fa61dddf5dc8cc35de6f814a04012b73a1afcb0e.tar.gz bcm5719-llvm-fa61dddf5dc8cc35de6f814a04012b73a1afcb0e.zip |
CodeGen: Fix PR40605 by splitting constant struct initializers
When emitting initializers for local structures for code built with
-ftrivial-auto-var-init, replace constant structures with sequences of
stores.
This appears to greatly help removing dead initialization stores to those
locals that are later overwritten by other data.
This also removes a lot of .rodata constants (see PR40605), replacing most
of them with immediate values (for Linux kernel the .rodata size is
reduced by ~1.9%)
llvm-svn: 355181
Diffstat (limited to 'clang/lib/Format/Format.cpp')
0 files changed, 0 insertions, 0 deletions