diff options
author | Daniel Dunbar <daniel@zuster.org> | 2010-07-01 01:31:45 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2010-07-01 01:31:45 +0000 |
commit | bb7ac52e0288ff88cacd2577137cf64955a643c6 (patch) | |
tree | 5368fdc28491bf6966f7ac1e806a7cf55ebf0584 /clang/lib/CodeGen/BackendUtil.cpp | |
parent | 54b8b8c1a74a78125510a23dc0d02f864c7d0380 (diff) | |
download | llvm-bb7ac52e0288ff88cacd2577137cf64955a643c6.zip llvm-bb7ac52e0288ff88cacd2577137cf64955a643c6.tar.gz llvm-bb7ac52e0288ff88cacd2577137cf64955a643c6.tar.bz2 |
Driver/IRgen: Add support for -momit-leaf-frame-pointer.
llvm-svn: 107367
Diffstat (limited to 'clang/lib/CodeGen/BackendUtil.cpp')
-rw-r--r-- | clang/lib/CodeGen/BackendUtil.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/BackendUtil.cpp b/clang/lib/CodeGen/BackendUtil.cpp index 793a4da..69efe43 100644 --- a/clang/lib/CodeGen/BackendUtil.cpp +++ b/clang/lib/CodeGen/BackendUtil.cpp @@ -160,7 +160,20 @@ bool EmitAssemblyHelper::AddEmitPasses(BackendAction Action, // FIXME: Expose these capabilities via actual APIs!!!! Aside from just // being gross, this is also totally broken if we ever care about // concurrency. - llvm::NoFramePointerElim = CodeGenOpts.DisableFPElim; + + // Set frame pointer elimination mode. + if (!CodeGenOpts.DisableFPElim) { + llvm::NoFramePointerElim = false; + llvm::NoFramePointerElimNonLeaf = false; + } else if (CodeGenOpts.OmitLeafFramePointer) { + llvm::NoFramePointerElim = false; + llvm::NoFramePointerElimNonLeaf = true; + } else { + llvm::NoFramePointerElim = true; + llvm::NoFramePointerElimNonLeaf = true; + } + + // Set float ABI type. if (CodeGenOpts.FloatABI == "soft") llvm::FloatABIType = llvm::FloatABI::Soft; else if (CodeGenOpts.FloatABI == "hard") @@ -169,6 +182,7 @@ bool EmitAssemblyHelper::AddEmitPasses(BackendAction Action, assert(CodeGenOpts.FloatABI.empty() && "Invalid float abi!"); llvm::FloatABIType = llvm::FloatABI::Default; } + NoZerosInBSS = CodeGenOpts.NoZeroInitializedInBSS; llvm::UseSoftFloat = CodeGenOpts.SoftFloat; UnwindTablesMandatory = CodeGenOpts.UnwindTables; |