[all-commits] [llvm/llvm-project] e25449: [IR][GVN] allow intrinsics in Instruction's isComm...

RotateRight via All-commits all-commits at lists.llvm.org
Mon Aug 31 13:01:49 PDT 2020


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

  Changed paths:
    M llvm/include/llvm/IR/Instruction.h
    M llvm/lib/IR/Instruction.cpp
    M llvm/lib/Transforms/Scalar/GVN.cpp
    M llvm/lib/Transforms/Scalar/NewGVN.cpp
    M llvm/test/Transforms/GVN/commute.ll

  Log Message:
  -----------
  [IR][GVN] allow intrinsics in Instruction's isCommutative query (2nd try)

The 1st try was reverted because I missed an assert that
needed softening.

As discussed in D86798 / rG09652721 , we were potentially
returning a different result for whether an Instruction
is commutable depending on if we call the base class or
derived class method.

This requires relaxing asserts in GVN, but that pass
seems to be working otherwise.

NewGVN requires more work because it uses different
code paths for numbering binops and calls.




More information about the All-commits mailing list