================
@@ -788,6 +797,17 @@ void LoopInfoStack::push(BasicBlock *Header,
clang::ASTContext &Ctx,
}
}
+ // Identify loop attribute 'code_align' from Attrs.
+ // For attribute code_align:
+ // n - 'llvm.loop.align i32 n' metadata will be emitted.
+ for (const auto *A : Attrs) {
+ if (const auto *CodeAlign = dyn_cast<CodeAlignAttr>(A)) {
+ const auto *CE = cast<ConstantExpr>(CodeAlign->getAlignment());
+ llvm::APSInt ArgVal = CE->getResultAsAPSInt();
+ setCodeAlign(ArgVal.getSExtValue());
+ }
+ }
----------------
AaronBallman wrote:
```suggestion
if (const auto *CodeAlign = getSpecificAttr<CodeAlignAttr>(Attrs)) {
const auto *CE = cast<ConstantExpr>(CodeAlign->getAlignment());
llvm::APSInt ArgVal = CE->getResultAsAPSInt();
setCodeAlign(ArgVal.getSExtValue());
}
```
https://github.com/llvm/llvm-project/pull/70762
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits