aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/MC/MCTargetOptionsCommandFlags.cpp
diff options
context:
space:
mode:
authorVy Nguyen <vyng@google.com>2023-06-06 14:00:47 -0400
committerVy Nguyen <vyng@google.com>2023-06-07 10:03:50 -0400
commite60b30d5e3878e7d91f8872ec4c4dca00d4a2dfc (patch)
tree91674a55081d3968d264d0a68224f3b1b15f2a1f /llvm/lib/MC/MCTargetOptionsCommandFlags.cpp
parent2eb84c3ae2bf6c918c20cbe1c315e2f4683056f4 (diff)
downloadllvm-e60b30d5e3878e7d91f8872ec4c4dca00d4a2dfc.zip
llvm-e60b30d5e3878e7d91f8872ec4c4dca00d4a2dfc.tar.gz
llvm-e60b30d5e3878e7d91f8872ec4c4dca00d4a2dfc.tar.bz2
Reland "D144999 [MC][MachO]Only emits compact-unwind format for "canonical" personality symbols. For the rest, use DWARFs."
Reasons for rolling forward: - the crash reported from Chromium was fixed in D151824 (not related to this patch at all) - since D152824 was committed, it should now be safe to roll this forward. New change: - add an additional _ in name check This reverts commit 4980eead4d0b4666d53dad07afb091375b3a13a0.
Diffstat (limited to 'llvm/lib/MC/MCTargetOptionsCommandFlags.cpp')
-rw-r--r--llvm/lib/MC/MCTargetOptionsCommandFlags.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/llvm/lib/MC/MCTargetOptionsCommandFlags.cpp b/llvm/lib/MC/MCTargetOptionsCommandFlags.cpp
index 0667ca5..8a4923e 100644
--- a/llvm/lib/MC/MCTargetOptionsCommandFlags.cpp
+++ b/llvm/lib/MC/MCTargetOptionsCommandFlags.cpp
@@ -39,6 +39,7 @@ MCOPT(bool, IncrementalLinkerCompatible)
MCOPT(int, DwarfVersion)
MCOPT(bool, Dwarf64)
MCOPT(EmitDwarfUnwindType, EmitDwarfUnwind)
+MCOPT(bool, EmitCompactUnwindNonCanonical)
MCOPT(bool, ShowMCInst)
MCOPT(bool, FatalWarnings)
MCOPT(bool, NoWarn)
@@ -87,6 +88,14 @@ llvm::mc::RegisterMCTargetOptionsFlags::RegisterMCTargetOptionsFlags() {
"Use target platform default")));
MCBINDOPT(EmitDwarfUnwind);
+ static cl::opt<bool> EmitCompactUnwindNonCanonical(
+ "emit-compact-unwind-non-canonical",
+ cl::desc(
+ "Whether to try to emit Compact Unwind for non canonical entries."),
+ cl::init(
+ false)); // By default, use DWARF for non-canonical personalities.
+ MCBINDOPT(EmitCompactUnwindNonCanonical);
+
static cl::opt<bool> ShowMCInst(
"asm-show-inst",
cl::desc("Emit internal instruction representation to assembly file"));
@@ -135,6 +144,7 @@ MCTargetOptions llvm::mc::InitMCTargetOptionsFromFlags() {
Options.MCNoDeprecatedWarn = getNoDeprecatedWarn();
Options.MCNoTypeCheck = getNoTypeCheck();
Options.EmitDwarfUnwind = getEmitDwarfUnwind();
+ Options.EmitCompactUnwindNonCanonical = getEmitCompactUnwindNonCanonical();
Options.AsSecureLogFile = getAsSecureLogFile();
return Options;