[PATCH] D41006: [SafepointIRVerifier] Allow non-dereferencing uses of unrelocated or poisoned PHI nodes

Daniil Suchkov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Dec 8 06:28:02 PST 2017


DaniilSuchkov created this revision.

PHI that has at least one unrelocated input cannot cause any issues by itself,
though its uses should be carefully verified. With this patch PHIs are allowed
to have any inputs but when all inputs are unrelocated the PHI is marked as
unrelocated and if not all inputs are unrelocated then the PHI is marked as
poisoned. Poisoned pointers can be used only in three ways: to derive new
pointers, in PHIs or in comparisons against constants that are exclusively
derived from null.


https://reviews.llvm.org/D41006

Files:
  lib/IR/SafepointIRVerifier.cpp
  test/SafepointIRVerifier/unrecorded-live-at-sp.ll
  test/SafepointIRVerifier/uses-in-phi-nodes.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D41006.126127.patch
Type: text/x-patch
Size: 17236 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20171208/819c5f40/attachment.bin>


More information about the llvm-commits mailing list