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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238244 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Akira Hatanaka
2015-05-26 20:17:20 +00:00
parent 2cc3e0a5ec
commit 6f49135066
7 changed files with 42 additions and 62 deletions

View File

@ -177,15 +177,19 @@ LLVMBool LLVMCreateMCJITCompilerForModule(
memcpy(&options, PassedOptions, SizeOfPassedOptions);
TargetOptions targetOptions;
targetOptions.NoFramePointerElim = options.NoFramePointerElim;
targetOptions.EnableFastISel = options.EnableFastISel;
std::unique_ptr<Module> 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));