[llvm] d2a06ef - Attributor: Allow refining of callsite attributes that already have nofpclass
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 28 10:54:56 PDT 2023
Author: Matt Arsenault
Date: 2023-08-28T13:54:49-04:00
New Revision: d2a06ef05a22211b8b2cefdd1e68d2a54ddc86ce
URL: https://github.com/llvm/llvm-project/commit/d2a06ef05a22211b8b2cefdd1e68d2a54ddc86ce
DIFF: https://github.com/llvm/llvm-project/commit/d2a06ef05a22211b8b2cefdd1e68d2a54ddc86ce.diff
LOG: Attributor: Allow refining of callsite attributes that already have nofpclass
https://reviews.llvm.org/D158419
Added:
Modified:
llvm/lib/Transforms/IPO/AttributorAttributes.cpp
llvm/test/Transforms/Attributor/nofpclass.ll
Removed:
################################################################################
diff --git a/llvm/lib/Transforms/IPO/AttributorAttributes.cpp b/llvm/lib/Transforms/IPO/AttributorAttributes.cpp
index 79f216bedbc505..ee63ec337c6c05 100644
--- a/llvm/lib/Transforms/IPO/AttributorAttributes.cpp
+++ b/llvm/lib/Transforms/IPO/AttributorAttributes.cpp
@@ -10342,7 +10342,6 @@ struct AANoFPClassImpl : AANoFPClass {
A.getAttrs(getIRPosition(), {Attribute::NoFPClass}, Attrs, false);
for (const auto &Attr : Attrs) {
addKnownBits(Attr.getNoFPClass());
- return;
}
const DataLayout &DL = A.getDataLayout();
diff --git a/llvm/test/Transforms/Attributor/nofpclass.ll b/llvm/test/Transforms/Attributor/nofpclass.ll
index d05481a1a34d9f..2690bba123a345 100644
--- a/llvm/test/Transforms/Attributor/nofpclass.ll
+++ b/llvm/test/Transforms/Attributor/nofpclass.ll
@@ -2248,7 +2248,7 @@ define float @fadd_known_positive_normal_dapz(float nofpclass(ninf nnorm nzero)
define internal float @returns_fence(float %arg) {
; TUNIT: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none)
; TUNIT-LABEL: define internal float @returns_fence
-; TUNIT-SAME: (float nofpclass(nan) [[ARG:%.*]]) #[[ATTR3]] {
+; TUNIT-SAME: (float nofpclass(nan inf) [[ARG:%.*]]) #[[ATTR3]] {
; TUNIT-NEXT: [[RET:%.*]] = call float @llvm.arithmetic.fence.f32(float [[ARG]]) #[[ATTR20]]
; TUNIT-NEXT: ret float [[RET]]
;
@@ -2267,7 +2267,7 @@ define internal float @refine_callsite_attribute(float nofpclass(inf) %arg) {
; TUNIT: Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none)
; TUNIT-LABEL: define internal float @refine_callsite_attribute
; TUNIT-SAME: (float nofpclass(inf) [[ARG:%.*]]) #[[ATTR3]] {
-; TUNIT-NEXT: [[FUNC0:%.*]] = call float @returns_fence(float nofpclass(nan) [[ARG]]) #[[ATTR17]]
+; TUNIT-NEXT: [[FUNC0:%.*]] = call float @returns_fence(float nofpclass(nan inf) [[ARG]]) #[[ATTR17]]
; TUNIT-NEXT: [[RET:%.*]] = call float @llvm.arithmetic.fence.f32(float [[FUNC0]]) #[[ATTR20]]
; TUNIT-NEXT: ret float [[RET]]
;
More information about the llvm-commits
mailing list