[PATCH] D104641: [LICM] Strip context sensitive attributes after call hoisting

Anna Thomas via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 21 06:53:52 PDT 2021


anna created this revision.
anna added reviewers: asbirlea, reames, apilipenko, nikic.
Herald added subscribers: dexonsmith, hiraditya.
anna requested review of this revision.
Herald added a project: LLVM.

When hoisting calls that are not guaranteed to execute in the
loop, we need to strip context-sensitive attributes since they may no
longer be valid in the context hoisted to (preheader).

We have a whitelist of attributes rather than stripping off all
attributes since some attributes (such as ABI specific ones) are needed
for legality.

Fix for PR50744.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D104641

Files:
  llvm/include/llvm/IR/InstrTypes.h
  llvm/lib/IR/Instructions.cpp
  llvm/lib/Transforms/Scalar/LICM.cpp
  llvm/test/Transforms/LICM/call-hoisting.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D104641.353357.patch
Type: text/x-patch
Size: 4377 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210621/ee576a21/attachment.bin>


More information about the llvm-commits mailing list