diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2011-04-30 03:44:37 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2011-04-30 03:44:37 +0000 |
commit | f1a5c7ec04002769f1638e64f7439589f0f926e6 (patch) | |
tree | fb8c17ee530e039a738611d8de2ee46488c2ca73 /tools | |
parent | a37bd1d02c0e3d93474fdf30352bf4a425cbe25b (diff) | |
download | llvm-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.cpp | 6 | ||||
-rw-r--r-- | tools/llvm-mc/llvm-mc.cpp | 3 |
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)); |