Fix the bug when two passes with the same priority cannot be registered with the MlirOptimizationPassRegistry.
PiperOrigin-RevId: 353744082 Change-Id: Ibe9c35e5c23e5a2d10043bc4c3fa33f5e5fb0db1
This commit is contained in:
parent
9729442a35
commit
6f3bc3a09e
@ -63,7 +63,7 @@ class MlirOptimizationPassRegistry {
|
||||
}
|
||||
};
|
||||
|
||||
using Passes = std::set<PassRegistration, PriorityComparator>;
|
||||
using Passes = std::multiset<PassRegistration, PriorityComparator>;
|
||||
|
||||
// Returns the global registry of MLIR optimization passes.
|
||||
static MlirOptimizationPassRegistry& Global();
|
||||
@ -145,7 +145,7 @@ class MlirV1CompatOptimizationPassRegistry {
|
||||
}
|
||||
};
|
||||
|
||||
using Passes = std::set<PassRegistration, PriorityComparator>;
|
||||
using Passes = std::multiset<PassRegistration, PriorityComparator>;
|
||||
|
||||
// Returns the global registry of MLIR optimization passes.
|
||||
static MlirV1CompatOptimizationPassRegistry& Global();
|
||||
|
@ -118,4 +118,13 @@ TEST_F(MlirGraphOptimizationPassTest, OptimizationPassFailsShadow) {
|
||||
#endif
|
||||
}
|
||||
|
||||
TEST(MlirOptimizationPassRegistry, RegisterPassesWithTheSamePriority) {
|
||||
MlirOptimizationPassRegistry::Global().Add(
|
||||
0, std::make_unique<NiceMock<MockMlirOptimizationPass>>());
|
||||
MlirOptimizationPassRegistry::Global().Add(
|
||||
0, std::make_unique<NiceMock<MockMlirOptimizationPass>>());
|
||||
|
||||
EXPECT_EQ(MlirOptimizationPassRegistry::Global().passes().size(), 2);
|
||||
}
|
||||
|
||||
} // namespace tensorflow
|
||||
|
Loading…
Reference in New Issue
Block a user