summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/ProcessImplicitDefs.cpp
diff options
context:
space:
mode:
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>2015-05-21 02:41:23 +0000
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>2015-05-21 02:41:23 +0000
commit0b73d71abb5f08e435a6731bc65f4cb9d755f00c (patch)
treeb525b410e9bda7307c0f68fefaa159ae1fc71acf /llvm/lib/CodeGen/ProcessImplicitDefs.cpp
parent3d4182d4611a8924b02a97de0b3621a1a2adb8ef (diff)
downloadbcm5719-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
OpenPOWER on IntegriCloud