[all-commits] [llvm/llvm-project] 10d0e2: [InstCombine] Split assume test in expensive and n...

Nikita Popov via All-commits all-commits at lists.llvm.org
Fri Jan 17 09:01:13 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 10d0e2882bbed5865e9716f6a091dd39facb02d9
      https://github.com/llvm/llvm-project/commit/10d0e2882bbed5865e9716f6a091dd39facb02d9
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2020-01-17 (Fri, 17 Jan 2020)

  Changed paths:
    M llvm/test/Transforms/InstCombine/assume.ll

  Log Message:
  -----------
  [InstCombine] Split assume test in expensive and not; NFC

The IR difference in @icmp1 serves as a test for D72864.


  Commit: 77befe54f7d72e79f94a3255ae10d529d3b19733
      https://github.com/llvm/llvm-project/commit/77befe54f7d72e79f94a3255ae10d529d3b19733
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2020-01-17 (Fri, 17 Jan 2020)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
    M llvm/test/Transforms/InstCombine/assume.ll

  Log Message:
  -----------
  [InstCombine] Fix worklist management in return combine

There are two related bugs here: First, we don't add the operand
we're replacing to the worklist, which means it may not get DCEd
(see test change). Second, usually this would just get picked up
in the next iteration, but we also do not report the instruction
as changed. This means that we do not get that extra instcombine
iteration, and more importantly, may break the pass pipeline, as
the function is not marked as changed.

Differential Revision: https://reviews.llvm.org/D72864


Compare: https://github.com/llvm/llvm-project/compare/2ca092f32095...77befe54f7d7


More information about the All-commits mailing list