[MC] Suppress .Lcfi labels when emitting textual assembly
authorReid Kleckner <rnk@google.com>
Tue, 10 Oct 2017 00:57:36 +0000 (00:57 +0000)
committerReid Kleckner <rnk@google.com>
Tue, 10 Oct 2017 00:57:36 +0000 (00:57 +0000)
commitab23dace567394515566c13d44dc85acc249651a
tree7075c6aff990774313bb1a1728c62a7b86c2bbbe
parenta11b983e11057651613305da1d10a13fc77ffd13
[MC] Suppress .Lcfi labels when emitting textual assembly

Summary:
This suppresses the generation of .Lcfi labels in our textual assembler.
It was annoying that this generated cascading .Lcfi labels:
  llc foo.ll -o - | llvm-mc | llvm-mc

After three trips through MCAsmStreamer, we'd have three labels in the
output when none are necessary. We should only bother creating the
labels and frame data when making a real object file.

This supercedes D38605, which moved the entire .seh_ implementation into
MCObjectStreamer.

This has the advantage that we do more checking when emitting textual
assembly, as a minor efficiency cost. Outputting textual assembly is not
performance critical, so this shouldn't matter.

Reviewers: majnemer, MatzeB

Subscribers: qcolombet, nemanjai, javed.absar, eraman, hiraditya, JDevlieghere, llvm-commits

Differential Revision: https://reviews.llvm.org/D38638

llvm-svn: 315259
95 files changed:
llvm/include/llvm/MC/MCObjectStreamer.h
llvm/include/llvm/MC/MCStreamer.h
llvm/lib/MC/MCObjectStreamer.cpp
llvm/lib/MC/MCStreamer.cpp
llvm/test/CodeGen/AArch64/arm64-patchpoint-webkit_jscc.ll
llvm/test/CodeGen/PowerPC/empty-functions.ll
llvm/test/CodeGen/PowerPC/memCmpUsedInZeroEqualityComparison.ll
llvm/test/CodeGen/X86/2011-10-19-widen_vselect.ll
llvm/test/CodeGen/X86/GlobalISel/add-scalar.ll
llvm/test/CodeGen/X86/GlobalISel/brcond.ll
llvm/test/CodeGen/X86/GlobalISel/callingconv.ll
llvm/test/CodeGen/X86/GlobalISel/frameIndex.ll
llvm/test/CodeGen/X86/TruncAssertZext.ll
llvm/test/CodeGen/X86/atomic128.ll
llvm/test/CodeGen/X86/avx2-vbroadcast.ll
llvm/test/CodeGen/X86/avx512-calling-conv.ll
llvm/test/CodeGen/X86/avx512-fsel.ll
llvm/test/CodeGen/X86/avx512-insert-extract.ll
llvm/test/CodeGen/X86/avx512-insert-extract_i1.ll
llvm/test/CodeGen/X86/avx512-mask-op.ll
llvm/test/CodeGen/X86/avx512-mask-spills.ll
llvm/test/CodeGen/X86/avx512-mask-zext-bugfix.ll
llvm/test/CodeGen/X86/avx512-schedule.ll
llvm/test/CodeGen/X86/avx512-select.ll
llvm/test/CodeGen/X86/avx512-vbroadcast.ll
llvm/test/CodeGen/X86/avx512bw-intrinsics-fast-isel.ll
llvm/test/CodeGen/X86/avx512bw-intrinsics-upgrade.ll
llvm/test/CodeGen/X86/avx512bw-intrinsics.ll
llvm/test/CodeGen/X86/avx512vl-intrinsics-fast-isel.ll
llvm/test/CodeGen/X86/avx512vl-vbroadcast.ll
llvm/test/CodeGen/X86/avx512vl-vec-masked-cmp.ll
llvm/test/CodeGen/X86/bitcast-and-setcc-512.ll
llvm/test/CodeGen/X86/bitcast-int-to-vector-bool-zext.ll
llvm/test/CodeGen/X86/bitcast-setcc-512.ll
llvm/test/CodeGen/X86/bool-vector.ll
llvm/test/CodeGen/X86/cmp.ll
llvm/test/CodeGen/X86/deopt-intrinsic-cconv.ll
llvm/test/CodeGen/X86/deopt-intrinsic.ll
llvm/test/CodeGen/X86/empty-functions.ll
llvm/test/CodeGen/X86/fast-isel-store.ll
llvm/test/CodeGen/X86/haddsub-2.ll
llvm/test/CodeGen/X86/illegal-bitfield-loadstore.ll
llvm/test/CodeGen/X86/imul.ll
llvm/test/CodeGen/X86/inline-asm-fpstack.ll
llvm/test/CodeGen/X86/lea-opt-cse1.ll
llvm/test/CodeGen/X86/lea-opt-cse2.ll
llvm/test/CodeGen/X86/lea-opt-cse3.ll
llvm/test/CodeGen/X86/lea-opt-cse4.ll
llvm/test/CodeGen/X86/legalize-shift-64.ll
llvm/test/CodeGen/X86/live-out-reg-info.ll
llvm/test/CodeGen/X86/load-combine.ll
llvm/test/CodeGen/X86/masked_gather_scatter.ll
llvm/test/CodeGen/X86/memset-nonzero.ll
llvm/test/CodeGen/X86/merge-consecutive-loads-128.ll
llvm/test/CodeGen/X86/movpc32-check.ll
llvm/test/CodeGen/X86/mul-constant-result.ll
llvm/test/CodeGen/X86/mul-i256.ll
llvm/test/CodeGen/X86/patchpoint-webkit_jscc.ll
llvm/test/CodeGen/X86/pr21792.ll
llvm/test/CodeGen/X86/pr2656.ll
llvm/test/CodeGen/X86/pr29061.ll
llvm/test/CodeGen/X86/pr29112.ll
llvm/test/CodeGen/X86/pr30430.ll
llvm/test/CodeGen/X86/pr32241.ll
llvm/test/CodeGen/X86/pr32256.ll
llvm/test/CodeGen/X86/pr32282.ll
llvm/test/CodeGen/X86/pr32329.ll
llvm/test/CodeGen/X86/pr32345.ll
llvm/test/CodeGen/X86/pr32451.ll
llvm/test/CodeGen/X86/pr34080.ll
llvm/test/CodeGen/X86/pr34088.ll
llvm/test/CodeGen/X86/pr9743.ll
llvm/test/CodeGen/X86/push-cfi.ll
llvm/test/CodeGen/X86/recip-pic.ll
llvm/test/CodeGen/X86/rtm.ll
llvm/test/CodeGen/X86/select-mmx.ll
llvm/test/CodeGen/X86/setcc-lowering.ll
llvm/test/CodeGen/X86/sincos.ll
llvm/test/CodeGen/X86/statepoint-live-in.ll
llvm/test/CodeGen/X86/tls-pie.ll
llvm/test/CodeGen/X86/tls-shrink-wrapping.ll
llvm/test/CodeGen/X86/vector-sext.ll
llvm/test/CodeGen/X86/vector-shuffle-avx512.ll
llvm/test/CodeGen/X86/vector-shuffle-mmx.ll
llvm/test/CodeGen/X86/vector-shuffle-v1.ll
llvm/test/CodeGen/X86/wide-fma-contraction.ll
llvm/test/CodeGen/X86/wide-integer-cmp.ll
llvm/test/CodeGen/X86/win32-pic-jumptable.ll
llvm/test/CodeGen/X86/x86-interleaved-access.ll
llvm/test/CodeGen/X86/x86-no_caller_saved_registers-preserve.ll
llvm/test/CodeGen/XCore/epilogue_prologue.ll
llvm/test/MC/AsmParser/seh-unfinished-frame.s [new file with mode: 0644]
llvm/test/tools/llvm-dwarfdump/X86/brief.s
llvm/test/tools/llvm-dwarfdump/X86/verify_debug_info.s
llvm/test/tools/llvm-dwarfdump/X86/verify_die_ranges.s