diff options
author | Leonard Chan <leonardchan@google.com> | 2023-02-23 19:58:29 +0000 |
---|---|---|
committer | Leonard Chan <leonardchan@google.com> | 2023-02-23 19:59:25 +0000 |
commit | 608ee703e530b00130923417b6663c9f3816f889 (patch) | |
tree | 4175c13c29dab72c929022dde874422c3f4b04ac /llvm/lib/CodeGen/MachineModuleInfo.cpp | |
parent | a9356a515b5a1a3637eaf5820fc0d2c0dad21a64 (diff) | |
download | llvm-608ee703e530b00130923417b6663c9f3816f889.zip llvm-608ee703e530b00130923417b6663c9f3816f889.tar.gz llvm-608ee703e530b00130923417b6663c9f3816f889.tar.bz2 |
[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
Diffstat (limited to 'llvm/lib/CodeGen/MachineModuleInfo.cpp')
0 files changed, 0 insertions, 0 deletions