[PATCH] D61314: [SCCP] Remove forcedconstant, go to overdefined instead

Florian Hahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 12 10:15:40 PST 2020


fhahn added a comment.

I've recommitted the change with a fix as rGbb310b3f73dd <https://reviews.llvm.org/rGbb310b3f73dde5551bc2a0d564e88f7c831dfdb3> . The issue was related to the fact that we skip calls to tracked functions, but we might mark one of the users of the result as overdefined. If we later discover that the result of the call is constant, we try in some cases to mark an overdefined value as constant. I think in theory we also had the same issue without the patch, but got lucky that in case we mark a user of a function result as overdefined the corresponding visitor bails out early if the instruction is overdefined.

As a fix, we can skip instructions depending on tracked and unknown calls. Once we resolve the call result, we propagate it to the users. This also allows us the handle a few additional cases.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D61314





More information about the llvm-commits mailing list