[llvm] 6e7eb72 - [Attributor] Port AAMustProgress to the checkAndQueryIRAttr interface
Johannes Doerfert via llvm-commits
llvm-commits at lists.llvm.org
Sun Jul 9 16:05:04 PDT 2023
Author: Johannes Doerfert
Date: 2023-07-09T16:04:21-07:00
New Revision: 6e7eb729c04526fbff43a67631850a376360e523
URL: https://github.com/llvm/llvm-project/commit/6e7eb729c04526fbff43a67631850a376360e523
DIFF: https://github.com/llvm/llvm-project/commit/6e7eb729c04526fbff43a67631850a376360e523.diff
LOG: [Attributor] Port AAMustProgress to the checkAndQueryIRAttr interface
Added:
Modified:
llvm/lib/Transforms/IPO/Attributor.cpp
llvm/lib/Transforms/IPO/AttributorAttributes.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Transforms/IPO/Attributor.cpp b/llvm/lib/Transforms/IPO/Attributor.cpp
index a9ad2185ae3125..da9c32e297f05c 100644
--- a/llvm/lib/Transforms/IPO/Attributor.cpp
+++ b/llvm/lib/Transforms/IPO/Attributor.cpp
@@ -3278,8 +3278,7 @@ void Attributor::identifyDefaultAbstractAttributes(Function &F) {
checkAndQueryIRAttr<Attribute::WillReturn, AAWillReturn>(FPos, FnAttrs);
// Every function might be "must-progress".
- if (!Attrs.hasFnAttr(Attribute::MustProgress))
- getOrCreateAAFor<AAMustProgress>(FPos);
+ checkAndQueryIRAttr<Attribute::MustProgress, AAMustProgress>(FPos, FnAttrs);
// Every function can be nounwind.
if (!Attrs.hasFnAttr(Attribute::NoUnwind))
diff --git a/llvm/lib/Transforms/IPO/AttributorAttributes.cpp b/llvm/lib/Transforms/IPO/AttributorAttributes.cpp
index b26351644de2ae..f7ba3f86fc5a57 100644
--- a/llvm/lib/Transforms/IPO/AttributorAttributes.cpp
+++ b/llvm/lib/Transforms/IPO/AttributorAttributes.cpp
@@ -2920,6 +2920,13 @@ struct AAMustProgressImpl : public AAMustProgress {
AAMustProgressImpl(const IRPosition &IRP, Attributor &A)
: AAMustProgress(IRP, A) {}
+ /// See AbstractAttribute::initialize(...).
+ void initialize(Attributor &A) override {
+ bool IsKnown;
+ assert(!AA::hasAssumedIRAttr<Attribute::MustProgress>(
+ A, nullptr, getIRPosition(), DepClassTy::NONE, IsKnown));
+ }
+
/// See AbstractAttribute::getAsStr()
const std::string getAsStr(Attributor *A) const override {
return getAssumed() ? "mustprogress" : "may-not-progress";
More information about the llvm-commits
mailing list