[PATCH] D57790: [CodeView] Fix cycles in debug info when merging Types with global hashes

Zachary Turner via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 5 16:05:50 PST 2019


zturner added inline comments.


================
Comment at: include/llvm/DebugInfo/CodeView/TypeHashing.h:119
+    }
+    if (ReqSecondPass) {
+      auto HashIt = Hashes.begin();
----------------
aganea wrote:
> rnk wrote:
> > I think this would have to go to fix point, not just two passes. Consider the case where each record in the type stream refers to the next, i.e. a pointer to a pointer to a pointer ... to void, and everything is backwards. =(
> Good point. I can make a test case, and modify to handle that.
I think we can do slightly better than go to fixed point.  First go forwards, then go backwards over the remaining records.  That's verrrrrry likely to get you to the end in 2 passes.  If nothing else, definitely a better heuristic then always going forward.


Repository:
  rL LLVM

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

https://reviews.llvm.org/D57790





More information about the llvm-commits mailing list