[all-commits] [llvm/llvm-project] 23693f: [InstCombine] reduce xor-of-or's bitwise logic (PR...

RotateRight via All-commits all-commits at lists.llvm.org
Mon Aug 3 07:28:32 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 23693ffc3ba6146a22cd1e9373e25dc1e1a41a17
      https://github.com/llvm/llvm-project/commit/23693ffc3ba6146a22cd1e9373e25dc1e1a41a17
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2020-08-03 (Mon, 03 Aug 2020)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
    M llvm/test/Transforms/InstCombine/xor.ll

  Log Message:
  -----------
  [InstCombine] reduce xor-of-or's bitwise logic (PR46955); 2nd try

The 1st try at this (rG2265d01f2a5b) exposed what looks like
unspecified behavior in C/C++ resulting in test variations.

The arguments to BinaryOperator::CreateAnd() were both IRBuilder
function calls, and the order in which they execute determines
the order of the new instructions in the IR. But the order of
function arg evaluation is not fixed by the rules of C/C++, so
depending on compiler config, the test would fail because the
test expected a single fixed ordering of instructions.

Original commit message:
I tried to use m_Deferred() on this, but didn't find
a clean way to do that.

http://bugs.llvm.org/PR46955

https://alive2.llvm.org/ce/z/2h6QTq




More information about the All-commits mailing list