[llvm] 81bbe19 - [VPlan] Add VPSingleDefRecipe::dump() to resolve ambigous lookup (NFC).
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Wed Oct 16 21:32:05 PDT 2024
Author: Florian Hahn
Date: 2024-10-17T05:31:29+01:00
New Revision: 81bbe19383797d5daaa5ddd16a47cd6ff44b66e2
URL: https://github.com/llvm/llvm-project/commit/81bbe19383797d5daaa5ddd16a47cd6ff44b66e2
DIFF: https://github.com/llvm/llvm-project/commit/81bbe19383797d5daaa5ddd16a47cd6ff44b66e2.diff
LOG: [VPlan] Add VPSingleDefRecipe::dump() to resolve ambigous lookup (NFC).
This allows calling ::dump() on various sub-classes of VPSingleDefRecipe
directly, as it resolves an ambigous name lookup.
Previously, calling VPWidenRecipe::dump() (and others), would result in
the following errors:
llvm/unittests/Transforms/Vectorize/VPlanTest.cpp:1284:19: error: member 'dump' found in multiple base classes of different types
1284 | WidenR->dump();
| ^
llvm/include/../lib/Transforms/Vectorize/VPlanValue.h:434:8: note: member found by ambiguous name lookup
434 | void dump() const;
| ^
llvm/include/../lib/Transforms/Vectorize/VPlanValue.h:108:8: note: member found by ambiguous name lookup
108 | void dump() const;
| ^
1 error generated.
Added:
Modified:
llvm/lib/Transforms/Vectorize/VPlan.h
llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
llvm/unittests/Transforms/Vectorize/VPlanTest.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Transforms/Vectorize/VPlan.h b/llvm/lib/Transforms/Vectorize/VPlan.h
index 4cef47e69f0e3b..fd97dda6dc1b25 100644
--- a/llvm/lib/Transforms/Vectorize/VPlan.h
+++ b/llvm/lib/Transforms/Vectorize/VPlan.h
@@ -954,6 +954,11 @@ class VPSingleDefRecipe : public VPRecipeBase, public VPValue {
/// Return the cost of this VPSingleDefRecipe.
InstructionCost computeCost(ElementCount VF,
VPCostContext &Ctx) const override;
+
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
+ /// Print this VPSingleDefRecipe to dbgs() (for debugging).
+ LLVM_DUMP_METHOD void dump() const;
+#endif
};
/// Class to record LLVM IR flag for a recipe along with it.
diff --git a/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp b/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
index 6fe30356e8c912..a38cdfc542cb48 100644
--- a/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+++ b/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
@@ -343,6 +343,10 @@ FastMathFlags VPRecipeWithIRFlags::getFastMathFlags() const {
return Res;
}
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
+void VPSingleDefRecipe::dump() const { VPDef::dump(); }
+#endif
+
template <unsigned PartOpIdx>
VPValue *
VPUnrollPartAccessor<PartOpIdx>::getUnrollPartOperand(VPUser &U) const {
diff --git a/llvm/unittests/Transforms/Vectorize/VPlanTest.cpp b/llvm/unittests/Transforms/Vectorize/VPlanTest.cpp
index 376b00224eb574..0f170efac207b7 100644
--- a/llvm/unittests/Transforms/Vectorize/VPlanTest.cpp
+++ b/llvm/unittests/Transforms/Vectorize/VPlanTest.cpp
@@ -1279,6 +1279,21 @@ TEST(VPRecipeTest, dumpRecipeInPlan) {
},
testing::ExitedWithCode(0), "WIDEN ir<%a> = add ir<1>, ir<2>");
+ VPDef *Def = WidenR;
+ EXPECT_EXIT(
+ {
+ Def->dump();
+ exit(0);
+ },
+ testing::ExitedWithCode(0), "WIDEN ir<%a> = add ir<1>, ir<2>");
+
+ EXPECT_EXIT(
+ {
+ WidenR->dump();
+ exit(0);
+ },
+ testing::ExitedWithCode(0), "WIDEN ir<%a> = add ir<1>, ir<2>");
+
// Test VPRecipeBase::dump().
VPRecipeBase *R = WidenR;
EXPECT_EXIT(
More information about the llvm-commits
mailing list