From e36505c7f5a034e591679f7dea7384ba78733356 Mon Sep 17 00:00:00 2001 From: Akira Hatanaka Date: Tue, 26 May 2015 20:17:20 +0000 Subject: Remove NoFramePointerElim and NoFramePointerElimOverride from TargetOptions and remove ExecutionEngine's dependence on CodeGen. NFC. This is a follow-up to r238080. Differential Revision: http://reviews.llvm.org/D9830 llvm-svn: 238244 --- llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp') diff --git a/llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp b/llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp index d7d3d19d0af..ce1ab594dfa 100644 --- a/llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp +++ b/llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp @@ -177,15 +177,19 @@ LLVMBool LLVMCreateMCJITCompilerForModule( memcpy(&options, PassedOptions, SizeOfPassedOptions); TargetOptions targetOptions; - targetOptions.NoFramePointerElim = options.NoFramePointerElim; targetOptions.EnableFastISel = options.EnableFastISel; std::unique_ptr Mod(unwrap(M)); if (Mod) // Set function attribute "no-frame-pointer-elim" based on // NoFramePointerElim. - setFunctionAttributes(/* CPU */ "", /* Features */ "", targetOptions, *Mod, - /* AlwaysRecordAttrs */ true); + for (auto &F : *Mod) { + auto Attrs = F.getAttributes(); + auto Value = options.NoFramePointerElim ? "true" : "false"; + Attrs = Attrs.addAttribute(F.getContext(), AttributeSet::FunctionIndex, + "no-frame-pointer-elim", Value); + F.setAttributes(Attrs); + } std::string Error; EngineBuilder builder(std::move(Mod)); -- cgit v1.2.3