diff options
| author | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2015-05-21 02:41:23 +0000 |
|---|---|---|
| committer | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2015-05-21 02:41:23 +0000 |
| commit | 0b73d71abb5f08e435a6731bc65f4cb9d755f00c (patch) | |
| tree | b525b410e9bda7307c0f68fefaa159ae1fc71acf /llvm/lib/CodeGen/ProcessImplicitDefs.cpp | |
| parent | 3d4182d4611a8924b02a97de0b3621a1a2adb8ef (diff) | |
| download | bcm5719-llvm-0b73d71abb5f08e435a6731bc65f4cb9d755f00c.tar.gz bcm5719-llvm-0b73d71abb5f08e435a6731bc65f4cb9d755f00c.zip | |
AsmPrinter: Compute absolute label difference directly
Create a low-overhead path for `EmitLabelDifference()` that emits a
emits an absolute number when (1) the output is an object stream and (2)
the two symbols are in the same data fragment.
This drops memory usage on Mach-O from 975 MB down to 919 MB (5.8%).
The only call is when `!doesDwarfUseRelocationsAcrossSections()` --
i.e., on Mach-O -- since otherwise an absolute offset from the start of
the section needs a relocation. (`EmitLabelDifference()` is cheaper on
ELF anyway, since it creates 1 fewer temp symbol, and it gets called far
less often. It's not clear to me if this is even a bottleneck there.)
(I'm looking at `llc` memory usage on `verify-uselistorder.lto.opt.bc`;
see r236629 for details.)
llvm-svn: 237876
Diffstat (limited to 'llvm/lib/CodeGen/ProcessImplicitDefs.cpp')
0 files changed, 0 insertions, 0 deletions

