[PATCH] D111602: [SCEV][NFC] Tackle quadratic CT consumption in forgetValue

Nikita Popov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 12 01:55:25 PDT 2021


nikic added a comment.

This is an improvement in some cases, but less than I'd hoped: https://llvm-compile-time-tracker.com/compare.php?from=5e2c6abab42241c06680941be06fddcb9279e63d&to=18b24fb231b0dcbaf0dc304826974ac1aad77a01&stat=instructions



================
Comment at: llvm/lib/Analysis/ScalarEvolution.cpp:7576
         eraseValueFromMap(It->first);
         forgetMemoizedResults(It->second);
         if (PHINode *PN = dyn_cast<PHINode>(I))
----------------
We should be collecting these into a vector as well.


================
Comment at: llvm/lib/Analysis/ScalarEvolution.cpp:12813
+  ToForget.push_back(S);
+  forgetMemoizedResults(ToForget);
+}
----------------
You can just pass `S` directly, no need to create SmallVector for single-element ArrayRef.


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

https://reviews.llvm.org/D111602



More information about the llvm-commits mailing list