[all-commits] [llvm/llvm-project] 608ee7: [SCEV] Ensure SCEV does not replace aliases with t...

PiJoules via All-commits all-commits at lists.llvm.org
Thu Feb 23 11:59:57 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 608ee703e530b00130923417b6663c9f3816f889
      https://github.com/llvm/llvm-project/commit/608ee703e530b00130923417b6663c9f3816f889
  Author: Leonard Chan <leonardchan at google.com>
  Date:   2023-02-23 (Thu, 23 Feb 2023)

  Changed paths:
    M llvm/lib/Analysis/ScalarEvolution.cpp
    A llvm/test/Analysis/ScalarEvolution/no-follow-alias.ll

  Log Message:
  -----------
  [SCEV] Ensure SCEV does not replace aliases with their aliasees

Passes in general shouldn't replace an alias with the aliasee (see
https://reviews.llvm.org/D66606). This can lead to situations where a
linkonce_odr symbol (which could be interposable if lowered to weak
linkage) can be replaced with a local aliasee which won't be
interposable. SVEC does this when the function is invoked by
FunctionPass Manager -> Loop Pass Manager -> Induction Variable Users in
the codegen pipeline. This was found in hwasan instrumented code where a
linonce_odr alias was replaced with its private aliasee.

This fixes the bug descriped at
https://github.com/llvm/llvm-project/issues/60668.

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




More information about the All-commits mailing list