[all-commits] [llvm/llvm-project] 1183d6: [SCEV] Search operand tree for scope bound when in...

Philip Reames via All-commits all-commits at lists.llvm.org
Wed Oct 6 15:10:22 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 1183d65b4d85de7065070176e6ac5caff13978b6
      https://github.com/llvm/llvm-project/commit/1183d65b4d85de7065070176e6ac5caff13978b6
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-10-06 (Wed, 06 Oct 2021)

  Changed paths:
    M llvm/lib/Analysis/ScalarEvolution.cpp
    M llvm/test/Analysis/LoopAccessAnalysis/memcheck-wrapping-pointers.ll
    M llvm/test/Analysis/ScalarEvolution/flags-from-poison.ll

  Log Message:
  -----------
  [SCEV] Search operand tree for scope bound when inferring flags from IR

When checking to see if we can apply IR flags to a SCEV, we need to identify a bound on the defining scope of the SCEV to be produced.  We'd previously added support for a couple SCEVExpr types which trivially imply bounds, but hadn't handled types such as umax where the bounds come from the bounds of the operands.  This does the obvious thing, and recurses through operands searching for a tighter bound on the defining scope.

I'm honestly surprised by how little this seems to mater on existing tests, but it's worth doing for completeness sake alone.

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




More information about the All-commits mailing list