Skip to content

Commit 6dcd9f5

Browse files
committed
[Attributes] Merge calls to getFnAttribute/hasFnAttribute using Attribute::isValid. NFC
Rather than calling hasFnAttribute and then calling getFnAttribute if the attribute exists, its better to just call getFnAttribute and then check if we got a valid attribute back.
1 parent c1b3e32 commit 6dcd9f5

File tree

1 file changed

+18
-23
lines changed

1 file changed

+18
-23
lines changed

llvm/lib/IR/Attributes.cpp

+18-23
Original file line numberDiff line numberDiff line change
@@ -1937,21 +1937,19 @@ static void adjustCallerStackProbes(Function &Caller, const Function &Callee) {
19371937
/// that is no larger.
19381938
static void
19391939
adjustCallerStackProbeSize(Function &Caller, const Function &Callee) {
1940-
if (Callee.hasFnAttribute("stack-probe-size")) {
1941-
uint64_t CalleeStackProbeSize;
1942-
Callee.getFnAttribute("stack-probe-size")
1943-
.getValueAsString()
1944-
.getAsInteger(0, CalleeStackProbeSize);
1945-
if (Caller.hasFnAttribute("stack-probe-size")) {
1946-
uint64_t CallerStackProbeSize;
1947-
Caller.getFnAttribute("stack-probe-size")
1948-
.getValueAsString()
1949-
.getAsInteger(0, CallerStackProbeSize);
1940+
Attribute CalleeAttr = Callee.getFnAttribute("stack-probe-size");
1941+
if (CalleeAttr.isValid()) {
1942+
Attribute CallerAttr = Caller.getFnAttribute("stack-probe-size");
1943+
if (CallerAttr.isValid()) {
1944+
uint64_t CallerStackProbeSize, CalleeStackProbeSize;
1945+
CallerAttr.getValueAsString().getAsInteger(0, CallerStackProbeSize);
1946+
CalleeAttr.getValueAsString().getAsInteger(0, CalleeStackProbeSize);
1947+
19501948
if (CallerStackProbeSize > CalleeStackProbeSize) {
1951-
Caller.addFnAttr(Callee.getFnAttribute("stack-probe-size"));
1949+
Caller.addFnAttr(CalleeAttr);
19521950
}
19531951
} else {
1954-
Caller.addFnAttr(Callee.getFnAttribute("stack-probe-size"));
1952+
Caller.addFnAttr(CalleeAttr);
19551953
}
19561954
}
19571955
}
@@ -1967,18 +1965,15 @@ adjustCallerStackProbeSize(Function &Caller, const Function &Callee) {
19671965
/// handled as part of inline cost analysis.
19681966
static void
19691967
adjustMinLegalVectorWidth(Function &Caller, const Function &Callee) {
1970-
if (Caller.hasFnAttribute("min-legal-vector-width")) {
1971-
if (Callee.hasFnAttribute("min-legal-vector-width")) {
1972-
uint64_t CallerVectorWidth;
1973-
Caller.getFnAttribute("min-legal-vector-width")
1974-
.getValueAsString()
1975-
.getAsInteger(0, CallerVectorWidth);
1976-
uint64_t CalleeVectorWidth;
1977-
Callee.getFnAttribute("min-legal-vector-width")
1978-
.getValueAsString()
1979-
.getAsInteger(0, CalleeVectorWidth);
1968+
Attribute CallerAttr = Caller.getFnAttribute("min-legal-vector-width");
1969+
if (CallerAttr.isValid()) {
1970+
Attribute CalleeAttr = Callee.getFnAttribute("min-legal-vector-width");
1971+
if (CalleeAttr.isValid()) {
1972+
uint64_t CallerVectorWidth, CalleeVectorWidth;
1973+
CallerAttr.getValueAsString().getAsInteger(0, CallerVectorWidth);
1974+
CalleeAttr.getValueAsString().getAsInteger(0, CalleeVectorWidth);
19801975
if (CallerVectorWidth < CalleeVectorWidth)
1981-
Caller.addFnAttr(Callee.getFnAttribute("min-legal-vector-width"));
1976+
Caller.addFnAttr(CalleeAttr);
19821977
} else {
19831978
// If the callee doesn't have the attribute then we don't know anything
19841979
// and must drop the attribute from the caller.

0 commit comments

Comments
 (0)