[all-commits] [llvm/llvm-project] 83914e: [InstCombine] Remove side effect of replaced const...

Serge Pavlov via All-commits all-commits at lists.llvm.org
Wed May 4 22:03:58 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 83914ee96fc2d828e1cfb8913f5d156d39150e2c
      https://github.com/llvm/llvm-project/commit/83914ee96fc2d828e1cfb8913f5d156d39150e2c
  Author: Serge Pavlov <sepavloff at gmail.com>
  Date:   2022-05-05 (Thu, 05 May 2022)

  Changed paths:
    M llvm/include/llvm/Analysis/InstructionSimplify.h
    M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
    A llvm/test/Transforms/InstCombine/constrained.ll

  Log Message:
  -----------
  [InstCombine] Remove side effect of replaced constrained intrinsics

If a constrained intrinsic call was replaced by some value, it was not
removed in some cases. The dangling instruction resulted in useless
instructions executed in runtime. It happened because constrained
intrinsics usually have side effect, it is used to model the interaction
with floating-point environment. In some cases it is correct behavior
but often the side effect is actually absent or can be ignored.

This change adds specific treatment of constrained intrinsics so that
their side effect can be removed if it actually absents.

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




More information about the All-commits mailing list