[PATCH] D21165: Disable MSan-hostile loop unswitching.

Evgeniy Stepanov via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 8 20:03:32 PDT 2016


eugenis added a comment.

In http://reviews.llvm.org/D21165#453075, @chandlerc wrote:

> Should the MSan report be suppressed until the side-effect bearing instruction is executed? I think that would cause MSan to not have a false positive here. I'd love to hear the thoughts of the MSan people here.


Take this example:

while()

  if (a)
    if (undef)
      doX
    else
      doY

is transformed to

if (undef)

  while()
    if (a)
      doX

else

  while()
    if (a)
      doY

The only way to see that the new code is fine (for some definition of fine) when a == false is to execute both branches and make sure that they have the same set of side effects. This sounds like an extremely difficult task in the general case.


Repository:
  rL LLVM

http://reviews.llvm.org/D21165





More information about the llvm-commits mailing list