Skip to content

Commit 4710e0f

Browse files
[NFC][Clang] Move functions of BranchProtectionInfo out of line (#98329)
Also let's add const to the setFnAttributes.
1 parent d9d977f commit 4710e0f

File tree

2 files changed

+26
-19
lines changed

2 files changed

+26
-19
lines changed

clang/include/clang/Basic/TargetInfo.h

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,7 @@
3232
#include "llvm/ADT/StringRef.h"
3333
#include "llvm/ADT/StringSet.h"
3434
#include "llvm/Frontend/OpenMP/OMPGridValues.h"
35-
#include "llvm/IR/Attributes.h"
3635
#include "llvm/IR/DerivedTypes.h"
37-
#include "llvm/IR/Function.h"
3836
#include "llvm/Support/DataTypes.h"
3937
#include "llvm/Support/Error.h"
4038
#include "llvm/Support/VersionTuple.h"
@@ -47,6 +45,8 @@
4745

4846
namespace llvm {
4947
struct fltSemantics;
48+
class Function;
49+
class AttrBuilder;
5050
}
5151

5252
namespace clang {
@@ -1455,24 +1455,9 @@ class TargetInfo : public TransferrableTargetInfo,
14551455
GuardedControlStack = LangOpts.GuardedControlStack;
14561456
}
14571457

1458-
void setFnAttributes(llvm::Function &F) {
1459-
llvm::AttrBuilder FuncAttrs(F.getContext());
1460-
setFnAttributes(FuncAttrs);
1461-
F.addFnAttrs(FuncAttrs);
1462-
}
1458+
void setFnAttributes(llvm::Function &F) const;
14631459

1464-
void setFnAttributes(llvm::AttrBuilder &FuncAttrs) {
1465-
if (SignReturnAddr != LangOptions::SignReturnAddressScopeKind::None) {
1466-
FuncAttrs.addAttribute("sign-return-address", getSignReturnAddrStr());
1467-
FuncAttrs.addAttribute("sign-return-address-key", getSignKeyStr());
1468-
}
1469-
if (BranchTargetEnforcement)
1470-
FuncAttrs.addAttribute("branch-target-enforcement");
1471-
if (BranchProtectionPAuthLR)
1472-
FuncAttrs.addAttribute("branch-protection-pauth-lr");
1473-
if (GuardedControlStack)
1474-
FuncAttrs.addAttribute("guarded-control-stack");
1475-
}
1460+
void setFnAttributes(llvm::AttrBuilder &FuncAttrs) const;
14761461
};
14771462

14781463
/// Determine if the Architecture in this TargetInfo supports branch

clang/lib/Basic/TargetInfo.cpp

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#include "clang/Basic/LangOptions.h"
1919
#include "llvm/ADT/APFloat.h"
2020
#include "llvm/ADT/STLExtras.h"
21+
#include "llvm/IR/Function.h"
2122
#include "llvm/Support/ErrorHandling.h"
2223
#include "llvm/TargetParser/TargetParser.h"
2324
#include <cstdlib>
@@ -1005,3 +1006,24 @@ void TargetInfo::copyAuxTarget(const TargetInfo *Aux) {
10051006
auto *Src = static_cast<const TransferrableTargetInfo*>(Aux);
10061007
*Target = *Src;
10071008
}
1009+
1010+
void TargetInfo::BranchProtectionInfo::setFnAttributes(
1011+
llvm::Function &F) const {
1012+
llvm::AttrBuilder FuncAttrs(F.getContext());
1013+
setFnAttributes(FuncAttrs);
1014+
F.addFnAttrs(FuncAttrs);
1015+
}
1016+
1017+
void TargetInfo::BranchProtectionInfo::setFnAttributes(
1018+
llvm::AttrBuilder &FuncAttrs) const {
1019+
if (SignReturnAddr != LangOptions::SignReturnAddressScopeKind::None) {
1020+
FuncAttrs.addAttribute("sign-return-address", getSignReturnAddrStr());
1021+
FuncAttrs.addAttribute("sign-return-address-key", getSignKeyStr());
1022+
}
1023+
if (BranchTargetEnforcement)
1024+
FuncAttrs.addAttribute("branch-target-enforcement");
1025+
if (BranchProtectionPAuthLR)
1026+
FuncAttrs.addAttribute("branch-protection-pauth-lr");
1027+
if (GuardedControlStack)
1028+
FuncAttrs.addAttribute("guarded-control-stack");
1029+
}

0 commit comments

Comments
 (0)