[all-commits] [llvm/llvm-project] 8a6698: [ValueTracking] Loads with !dereferenceable metada...

Nikita Popov via All-commits all-commits at lists.llvm.org
Wed May 25 00:54:19 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 8a6698b5238228876e7e5eb20ed82167ab1b04db
      https://github.com/llvm/llvm-project/commit/8a6698b5238228876e7e5eb20ed82167ab1b04db
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2022-05-25 (Wed, 25 May 2022)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Transforms/InstCombine/freeze.ll

  Log Message:
  -----------
  [ValueTracking] Loads with !dereferenceable metadata cannot be undef/poison

A load with !dereferenceable or !dereferenceable_or_null metadata
must return a well-defined (non-undef/poison) value. Effectively
they imply !noundef. This is the same as we do for the
dereferenceable(N) attribute.

This should fix https://github.com/llvm/llvm-project/issues/55672,
or at least the specific case discussed there.

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




More information about the All-commits mailing list