[all-commits] [llvm/llvm-project] de122c: [SCCP] Use range info to prove AddInst has NUW flag.

Florian Hahn via All-commits all-commits at lists.llvm.org
Tue Jan 24 12:53:25 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: de122cb920080fd9e24b2777114271fbef932d5e
      https://github.com/llvm/llvm-project/commit/de122cb920080fd9e24b2777114271fbef932d5e
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2023-01-24 (Tue, 24 Jan 2023)

  Changed paths:
    M llvm/lib/Transforms/Utils/SCCPSolver.cpp
    M llvm/test/Transforms/SCCP/add-nuw-nsw-flags.ll
    M llvm/test/Transforms/SCCP/binaryops-constexprs.ll
    M llvm/test/Transforms/SCCP/conditions-ranges-with-undef.ll
    M llvm/test/Transforms/SCCP/conditions-ranges.ll
    M llvm/test/Transforms/SCCP/ip-add-range-to-call.ll
    M llvm/test/Transforms/SCCP/ip-constant-ranges.ll
    M llvm/test/Transforms/SCCP/ip-ranges-binaryops.ll
    M llvm/test/Transforms/SCCP/ip-ranges-casts.ll
    M llvm/test/Transforms/SCCP/ip-ranges-phis.ll
    M llvm/test/Transforms/SCCP/ip-ranges-select.ll
    M llvm/test/Transforms/SCCP/return-argument.ll
    M llvm/test/Transforms/SCCP/return-constants.ll
    M llvm/test/Transforms/SCCP/widening.ll

  Log Message:
  -----------
  [SCCP] Use range info to prove AddInst has NUW flag.

This patch updates SCCP to use the value ranges of AddInst operands to
try to prove the AddInst does not overflow in the unsigned sense and
adds the NUW flag. The reasoning is done with
makeGuaranteedNoWrapRegion (thanks @nikic for point it out!).

Follow-ups will include adding NSW and extension to more
OverflowingBinaryOperators.

Reviewed By: nikic

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




More information about the All-commits mailing list