summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2011-04-30 03:44:37 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2011-04-30 03:44:37 +0000
commitf1a5c7ec04002769f1638e64f7439589f0f926e6 (patch)
treefb8c17ee530e039a738611d8de2ee46488c2ca73 /tools
parenta37bd1d02c0e3d93474fdf30352bf4a425cbe25b (diff)
downloadllvm-f1a5c7ec04002769f1638e64f7439589f0f926e6.tar.gz
llvm-f1a5c7ec04002769f1638e64f7439589f0f926e6.tar.bz2
llvm-f1a5c7ec04002769f1638e64f7439589f0f926e6.tar.xz
Add all the plumbing needed for MC to expand cfi to the old tables in
the final assembly. It is the same technique used when targeting assemblers that don't support .loc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130587 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools')
-rw-r--r--tools/llc/llc.cpp6
-rw-r--r--tools/llvm-mc/llvm-mc.cpp3
2 files changed, 8 insertions, 1 deletions
diff --git a/tools/llc/llc.cpp b/tools/llc/llc.cpp
index 77e3ddce3a..a36b6d77b9 100644
--- a/tools/llc/llc.cpp
+++ b/tools/llc/llc.cpp
@@ -99,6 +99,9 @@ cl::opt<bool> NoVerify("disable-verify", cl::Hidden,
cl::opt<bool> DisableDotLoc("disable-dot-loc", cl::Hidden,
cl::desc("Do not use .loc entries"));
+cl::opt<bool> DisableCFI("disable-cfi", cl::Hidden,
+ cl::desc("Do not use .cfi_* directives"));
+
static cl::opt<bool>
DisableRedZone("disable-red-zone",
cl::desc("Do not emit code that uses the red zone."),
@@ -279,6 +282,9 @@ int main(int argc, char **argv) {
if (DisableDotLoc)
Target.setMCUseLoc(false);
+ if (DisableCFI)
+ Target.setMCUseCFI(false);
+
// Disable .loc support for older OS X versions.
if (TheTriple.isMacOSX() &&
TheTriple.isMacOSXVersionLT(10, 6))
diff --git a/tools/llvm-mc/llvm-mc.cpp b/tools/llvm-mc/llvm-mc.cpp
index f76b6edb80..24cc263c2e 100644
--- a/tools/llvm-mc/llvm-mc.cpp
+++ b/tools/llvm-mc/llvm-mc.cpp
@@ -356,7 +356,8 @@ static int AssembleInput(const char *ProgName) {
TAB = TheTarget->createAsmBackend(TripleName);
}
Str.reset(TheTarget->createAsmStreamer(Ctx, FOS, /*asmverbose*/true,
- /*useLoc*/ true, IP, CE, TAB,
+ /*useLoc*/ true,
+ /*useCFI*/ true, IP, CE, TAB,
ShowInst));
} else if (FileType == OFT_Null) {
Str.reset(createNullStreamer(Ctx));