[PATCH] D122521: Value-number GVNHoist loads by result type as well as pointer address.

Nikita Popov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Mar 26 02:35:50 PDT 2022


nikic added a reviewer: nikic.
nikic added inline comments.


================
Comment at: llvm/lib/Transforms/Scalar/GVNHoist.cpp:193
+      // "0" size for pointers is OK, as pointer loads are equivalent.
+      unsigned TypeHash = LT->getTypeID() + (LT->getPrimitiveSizeInBits() << 8);
+      VNtoLoads[{V, TypeHash}].push_back(Load);
----------------
The load type is not necessarily a primitive. I don't think you can get around including the full load type in the key here, otherwise you risk collisions.


================
Comment at: llvm/test/Transforms/GVNHoist/opaque-diff-type.ll:1
+; RUN: opt -opaque-pointers -passes="gvn-hoist" -S %s | FileCheck %s
+
----------------
Use update_test_checks.py please.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D122521



More information about the llvm-commits mailing list