[PATCH] D117303: [LoopUnswitch] Deny loop unswitch if its body contains volatile inline asm

Daniil Kovalev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 14 05:24:14 PST 2022


kovdan01 added a comment.

In D117303#3243350 <https://reviews.llvm.org/D117303#3243350>, @fhahn wrote:

> If inline assembly calls can be convergent in general, should `CallBase::isConvergent` handle this? otherwise we might run into similar mis-compiles in other transforms.

I suppose that `CallBase::isConvergent` can’t handle this. Without the change, test with volatile inline asm fails (the unswitching is performed) – it indicates that marking inline asm as volatile does not set convergent attribute on corresponding CallBase.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D117303/new/

https://reviews.llvm.org/D117303



More information about the llvm-commits mailing list