[all-commits] [llvm/llvm-project] cf7977: [SCCP] Replace new value's value state with remove...

luxufan via All-commits all-commits at lists.llvm.org
Sun Jun 11 20:41:21 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: cf79773a9006a7e22f3919268b7db381ddcb3abc
      https://github.com/llvm/llvm-project/commit/cf79773a9006a7e22f3919268b7db381ddcb3abc
  Author: luxufan <luxufan at iscas.ac.cn>
  Date:   2023-06-12 (Mon, 12 Jun 2023)

  Changed paths:
    M llvm/include/llvm/Transforms/Utils/SCCPSolver.h
    M llvm/lib/Transforms/IPO/SCCP.cpp
    M llvm/lib/Transforms/Scalar/SCCP.cpp
    M llvm/lib/Transforms/Utils/SCCPSolver.cpp
    M llvm/test/Transforms/SCCP/add-nuw-nsw-flags.ll
    M llvm/test/Transforms/SCCP/ip-ranges-sext.ll

  Log Message:
  -----------
  [SCCP] Replace new value's value state with removed value's

In replaceSignedInst, if a signed instruction can be repalced with
unsigned instruction, we created a new instruction and removed the old
instruction's value state. If the following instructions has this new
instruction as a use operand, transformations like replaceSignedInst and
refineInstruction would be blocked. The reason is there is no value
state for the new instrution.

This patch set the new instruction's value state with the removed
instruction's value state. I believe it is correct bacause when we
repalce a signed instruction with unsigned instruction, the value state
is not changed.

Reviewed By: nikic

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




More information about the All-commits mailing list