diff options
author | Akira Hatanaka <ahatanaka@apple.com> | 2015-05-26 20:17:20 +0000 |
---|---|---|
committer | Akira Hatanaka <ahatanaka@apple.com> | 2015-05-26 20:17:20 +0000 |
commit | e36505c7f5a034e591679f7dea7384ba78733356 (patch) | |
tree | ef1a7312de3147d432e21c7ef4027d1e47582d61 /llvm/lib | |
parent | 6f8c1b6be6487d1c0330fa5609763196f43a2a9b (diff) | |
download | bcm5719-llvm-e36505c7f5a034e591679f7dea7384ba78733356.tar.gz bcm5719-llvm-e36505c7f5a034e591679f7dea7384ba78733356.zip |
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
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/CodeGen/TargetOptionsImpl.cpp | 27 | ||||
-rw-r--r-- | llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp | 10 | ||||
-rw-r--r-- | llvm/lib/ExecutionEngine/LLVMBuild.txt | 2 |
3 files changed, 8 insertions, 31 deletions
diff --git a/llvm/lib/CodeGen/TargetOptionsImpl.cpp b/llvm/lib/CodeGen/TargetOptionsImpl.cpp index 9d1c27ef51e..f4926cbc624 100644 --- a/llvm/lib/CodeGen/TargetOptionsImpl.cpp +++ b/llvm/lib/CodeGen/TargetOptionsImpl.cpp @@ -54,30 +54,3 @@ bool TargetOptions::HonorSignDependentRoundingFPMath() const { StringRef TargetOptions::getTrapFunctionName() const { return TrapFuncName; } - - -void llvm::setFunctionAttributes(StringRef CPU, StringRef Features, - const TargetOptions &Options, Module &M, - bool AlwaysRecordAttrs) { - for (auto &F : M) { - auto &Ctx = F.getContext(); - AttributeSet Attrs = F.getAttributes(), NewAttrs; - - if (!CPU.empty()) - NewAttrs = NewAttrs.addAttribute(Ctx, AttributeSet::FunctionIndex, - "target-cpu", CPU); - - if (!Features.empty()) - NewAttrs = NewAttrs.addAttribute(Ctx, AttributeSet::FunctionIndex, - "target-features", Features); - - if (Options.NoFramePointerElimOverride || AlwaysRecordAttrs) - NewAttrs = NewAttrs.addAttribute( - Ctx, AttributeSet::FunctionIndex, "no-frame-pointer-elim", - Options.NoFramePointerElim ? "true" : "false"); - - // Let NewAttrs override Attrs. - NewAttrs = Attrs.addAttributes(Ctx, AttributeSet::FunctionIndex, NewAttrs); - F.setAttributes(NewAttrs); - } -} 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<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)); diff --git a/llvm/lib/ExecutionEngine/LLVMBuild.txt b/llvm/lib/ExecutionEngine/LLVMBuild.txt index 447b96fbfaf..8509852b652 100644 --- a/llvm/lib/ExecutionEngine/LLVMBuild.txt +++ b/llvm/lib/ExecutionEngine/LLVMBuild.txt @@ -22,4 +22,4 @@ subdirectories = Interpreter MCJIT RuntimeDyld IntelJITEvents OProfileJIT Orc type = Library name = ExecutionEngine parent = Libraries -required_libraries = CodeGen Core MC Object RuntimeDyld Support +required_libraries = Core MC Object RuntimeDyld Support |