-
Notifications
You must be signed in to change notification settings - Fork 15k
[mlir] Fix use-after-move issues #165660
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[mlir] Fix use-after-move issues #165660
Conversation
|
@llvm/pr-subscribers-mlir @llvm/pr-subscribers-mlir-core Author: Slava Gurevich (noclowns) ChangesThis patch addresses two use-after-move issues:
Testing: Full diff: https://github.com/llvm/llvm-project/pull/165660.diff 2 Files Affected:
diff --git a/mlir/lib/Query/Query.cpp b/mlir/lib/Query/Query.cpp
index 375e82050a481..f391734def000 100644
--- a/mlir/lib/Query/Query.cpp
+++ b/mlir/lib/Query/Query.cpp
@@ -121,7 +121,7 @@ LogicalResult MatchQuery::run(llvm::raw_ostream &os, QuerySession &qs) const {
Operation *rootOp = qs.getRootOp();
int matchCount = 0;
matcher::MatchFinder finder;
- auto matches = finder.collectMatches(rootOp, std::move(matcher));
+ auto matches = finder.collectMatches(rootOp, matcher);
// An extract call is recognized by considering if the matcher has a name.
// TODO: Consider making the extract more explicit.
diff --git a/mlir/lib/Support/Timing.cpp b/mlir/lib/Support/Timing.cpp
index fb6f82c283df5..16306d72815f7 100644
--- a/mlir/lib/Support/Timing.cpp
+++ b/mlir/lib/Support/Timing.cpp
@@ -319,7 +319,6 @@ class TimerImpl {
void mergeChildren(AsyncChildrenMap &&other) {
for (auto &thread : other) {
mergeChildren(std::move(thread.second));
- assert(thread.second.empty());
}
other.clear();
}
|
This patch addresses two use-after-move issues: 1. Timing.cpp A variable was std::moved and then immediately passed to an assert() check. Since the moved-from state made the assertion condition trivially true, the check was effectively useless. The assert() is removed. 2. Query.cpp The `matcher` object was moved-from and then subsequently used as if it still retained valid state. The fix ensures no subsequent use of the moved-from variable. Testing: ninja check-mlir
This patch addresses two use-after-move issues: 1. `Timing.cpp` A variable was std::moved and then immediately passed to an `assert()` check. Since the moved-from state made the assertion condition trivially true, the check was effectively useless. The `assert()` is removed. 2. `Query.cpp` The `matcher` object was moved-from and then subsequently used as if it still retained valid state. The fix ensures no subsequent use for the moved-from variable. Testing: `ninja check-mlir`
This patch addresses two use-after-move issues: 1. `Timing.cpp` A variable was std::moved and then immediately passed to an `assert()` check. Since the moved-from state made the assertion condition trivially true, the check was effectively useless. The `assert()` is removed. 2. `Query.cpp` The `matcher` object was moved-from and then subsequently used as if it still retained valid state. The fix ensures no subsequent use for the moved-from variable. Testing: `ninja check-mlir`
This patch addresses two use-after-move issues:
Timing.cppA variable was std::moved and then immediately passed to anassert()check. Since the moved-from state made the assertion condition trivially true, the check was effectively useless. Theassert()is removed.Query.cppThematcherobject was moved-from and then subsequently used as if it still retained valid state. The fix ensures no subsequent use for the moved-from variable.Testing:
ninja check-mlir