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 /llvm/tools/llvm-readobj/llvm-readobj.cpp | |
| parent | 90641b5581b20bee4b689733d0008d3fbba4973c (diff) | |
| download | llvm-fa61dddf5dc8cc35de6f814a04012b73a1afcb0e.zip llvm-fa61dddf5dc8cc35de6f814a04012b73a1afcb0e.tar.gz llvm-fa61dddf5dc8cc35de6f814a04012b73a1afcb0e.tar.bz2 | |
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 'llvm/tools/llvm-readobj/llvm-readobj.cpp')
0 files changed, 0 insertions, 0 deletions
