[PATCH] D145321: [clang-tidy] altera-id-dependent-backward-branch: fix assignment notes

Egor Suvorov via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sun Mar 5 10:27:26 PST 2023


yeputons-gh added inline comments.


================
Comment at: clang-tools-extra/clang-tidy/altera/IdDependentBackwardBranchCheck.cpp:126
   IdDepFieldsMap[Field] = IdDependencyRecord(
       Field, Statement->getBeginLoc(),
       Twine("assignment of ID-dependent field ") + Field->getNameAsString());
----------------
This line was already correct prior to this patch.


================
Comment at: clang-tools-extra/test/clang-tidy/checkers/altera/id-dependent-backward-branch.cpp:42
+    // CHECK-NOTES: :[[@LINE-1]]:19: warning: backward branch (for loop) is ID-dependent due to variable reference to 'ThreadIDAssigned' and may cause performance degradation [altera-id-dependent-backward-branch]
+    // CHECK-NOTES: :[[@LINE-4]]:3: note: assignment of ID-dependent variable ThreadIDAssigned
+    accumulator++;
----------------
It previously pointed at `int ThreadIDAssigned = 0`, not `ThreadIDAssigned = get_local_id(0) * 2`.


================
Comment at: clang-tools-extra/test/clang-tidy/checkers/altera/id-dependent-backward-branch.cpp:61-63
-  for (int i = 0; i < ThreadID2; i++) {
-    // CHECK-NOTES: :[[@LINE-1]]:19: warning: backward branch (for loop) is ID-dependent due to variable reference to 'ThreadID2' and may cause performance degradation [altera-id-dependent-backward-branch]
-    // CHECK-NOTES: :[[@LINE-4]]:3: note: inferred assignment of ID-dependent value from ID-dependent variable ThreadID
----------------
This became `ThreadIDVarFromVar`, see above.


================
Comment at: clang-tools-extra/test/clang-tidy/checkers/altera/id-dependent-backward-branch.cpp:180-210
+  int NotThreadIDVarFromVar = NotThreadID * 2;
+  for (int i = 0; i < NotThreadIDVarFromVar; i++) {
+    accumulator++;
+  }
+
+  int NotThreadIDVarAssignFromVar;
+  NotThreadIDVarAssignFromVar = NotThreadID * 2;
----------------
I mirror all id-dependent tests with non-id-dependent to make sure https://github.com/llvm/llvm-project/issues/52790 does not creep back.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D145321/new/

https://reviews.llvm.org/D145321



More information about the cfe-commits mailing list