[all-commits] [llvm/llvm-project] e35a9e: [InstCombine] isFreeToInvert(): constant expressio...

Roman Lebedev via All-commits all-commits at lists.llvm.org
Mon May 17 04:58:32 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e35a9ecf3df8f26ce50f8429cbaaf5a0e0212e86
      https://github.com/llvm/llvm-project/commit/e35a9ecf3df8f26ce50f8429cbaaf5a0e0212e86
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-05-17 (Mon, 17 May 2021)

  Changed paths:
    M llvm/include/llvm/Transforms/InstCombine/InstCombiner.h
    M llvm/test/Transforms/InstCombine/not-add.ll

  Log Message:
  -----------
  [InstCombine] isFreeToInvert(): constant expressions aren't free to invert (PR50370)

This fixes https://bugs.llvm.org/show_bug.cgi?id=50370,
which reports a yet another endless combine loop,
this one regressed from 554b1bced325a8d860ad00bd59020d66d01c95f8,
which fixed yet another endless combine loop (PR50308)

This code had fallen into the very typical pitfall of forgetting
that constant expressions exist, and they aren't free to invert,
because the `not` won't be absorbed by the "constant",
but will remain a (constant) expression...




More information about the All-commits mailing list