diff options
author | orivej <orivej@yandex-team.ru> | 2022-02-10 16:45:01 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:45:01 +0300 |
commit | 2d37894b1b037cf24231090eda8589bbb44fb6fc (patch) | |
tree | be835aa92c6248212e705f25388ebafcf84bc7a1 /contrib/libs/llvm12/lib/CodeGen/TargetOptionsImpl.cpp | |
parent | 718c552901d703c502ccbefdfc3c9028d608b947 (diff) | |
download | ydb-2d37894b1b037cf24231090eda8589bbb44fb6fc.tar.gz |
Restoring authorship annotation for <orivej@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'contrib/libs/llvm12/lib/CodeGen/TargetOptionsImpl.cpp')
-rw-r--r-- | contrib/libs/llvm12/lib/CodeGen/TargetOptionsImpl.cpp | 102 |
1 files changed, 51 insertions, 51 deletions
diff --git a/contrib/libs/llvm12/lib/CodeGen/TargetOptionsImpl.cpp b/contrib/libs/llvm12/lib/CodeGen/TargetOptionsImpl.cpp index 3a09b48b9a..0731cf9b28 100644 --- a/contrib/libs/llvm12/lib/CodeGen/TargetOptionsImpl.cpp +++ b/contrib/libs/llvm12/lib/CodeGen/TargetOptionsImpl.cpp @@ -1,57 +1,57 @@ -//===-- TargetOptionsImpl.cpp - Options that apply to all targets ----------==// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// -// -// This file implements the methods in the TargetOptions. -// -//===----------------------------------------------------------------------===// - -#include "llvm/CodeGen/MachineFrameInfo.h" -#include "llvm/CodeGen/MachineFunction.h" -#include "llvm/CodeGen/TargetFrameLowering.h" -#include "llvm/CodeGen/TargetSubtargetInfo.h" -#include "llvm/IR/Function.h" -#include "llvm/IR/Module.h" -#include "llvm/Target/TargetOptions.h" -using namespace llvm; - -/// DisableFramePointerElim - This returns true if frame pointer elimination -/// optimization should be disabled for the given machine function. -bool TargetOptions::DisableFramePointerElim(const MachineFunction &MF) const { - // Check to see if the target want to forcably keep frame pointer. - if (MF.getSubtarget().getFrameLowering()->keepFramePointer(MF)) - return true; - - const Function &F = MF.getFunction(); - - if (!F.hasFnAttribute("frame-pointer")) - return false; - StringRef FP = F.getFnAttribute("frame-pointer").getValueAsString(); - if (FP == "all") - return true; - if (FP == "non-leaf") - return MF.getFrameInfo().hasCalls(); - if (FP == "none") - return false; - llvm_unreachable("unknown frame pointer flag"); -} - -/// HonorSignDependentRoundingFPMath - Return true if the codegen must assume -/// that the rounding mode of the FPU can change from its default. -bool TargetOptions::HonorSignDependentRoundingFPMath() const { - return !UnsafeFPMath && HonorSignDependentRoundingFPMathOption; -} - -/// NOTE: There are targets that still do not support the debug entry values +//===-- TargetOptionsImpl.cpp - Options that apply to all targets ----------==// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// +// +// This file implements the methods in the TargetOptions. +// +//===----------------------------------------------------------------------===// + +#include "llvm/CodeGen/MachineFrameInfo.h" +#include "llvm/CodeGen/MachineFunction.h" +#include "llvm/CodeGen/TargetFrameLowering.h" +#include "llvm/CodeGen/TargetSubtargetInfo.h" +#include "llvm/IR/Function.h" +#include "llvm/IR/Module.h" +#include "llvm/Target/TargetOptions.h" +using namespace llvm; + +/// DisableFramePointerElim - This returns true if frame pointer elimination +/// optimization should be disabled for the given machine function. +bool TargetOptions::DisableFramePointerElim(const MachineFunction &MF) const { + // Check to see if the target want to forcably keep frame pointer. + if (MF.getSubtarget().getFrameLowering()->keepFramePointer(MF)) + return true; + + const Function &F = MF.getFunction(); + + if (!F.hasFnAttribute("frame-pointer")) + return false; + StringRef FP = F.getFnAttribute("frame-pointer").getValueAsString(); + if (FP == "all") + return true; + if (FP == "non-leaf") + return MF.getFrameInfo().hasCalls(); + if (FP == "none") + return false; + llvm_unreachable("unknown frame pointer flag"); +} + +/// HonorSignDependentRoundingFPMath - Return true if the codegen must assume +/// that the rounding mode of the FPU can change from its default. +bool TargetOptions::HonorSignDependentRoundingFPMath() const { + return !UnsafeFPMath && HonorSignDependentRoundingFPMathOption; +} + +/// NOTE: There are targets that still do not support the debug entry values /// production and that is being controlled with the SupportsDebugEntryValues. /// In addition, SCE debugger does not have the feature implemented, so prefer /// not to emit the debug entry values in that case. /// The EnableDebugEntryValues can be used for the testing purposes. -bool TargetOptions::ShouldEmitDebugEntryValues() const { +bool TargetOptions::ShouldEmitDebugEntryValues() const { return (SupportsDebugEntryValues && DebuggerTuning != DebuggerKind::SCE) || EnableDebugEntryValues; -} +} |