jdoerfert added inline comments.
================ Comment at: clang/lib/CodeGen/CGCall.cpp:4095 + } + } call->setCallingConv(getRuntimeCC()); ---------------- eugenis wrote: > guiand wrote: > > jdoerfert wrote: > > > Why would we do this? Function attributes are valid at the call site, no > > > need to copy them. > > Do you mean that for some definition: `define @foo(i32 frozen %a, i32 > > frozen %b)`, it's valid to issue a call instruction like `call @foo(i32 %a, > > i32 %b)` and its operands will be correctly identified as `frozen`? That's > > the kind of behavior I was seeing and I wasn't sure if it was an error. > If you see CallBase::paramHasAttr, function definition attributes will be > taken into account when available. > > I'm not sure what happens for indirect calls that do not have a Callee - we > need to make sure that the frontend emits the callsite attributes that match > the signature of the call. > If you see CallBase::paramHasAttr, function definition attributes will be > taken into account when available. Yes :) > I'm not sure what happens for indirect calls that do not have a Callee - we > need to make sure that the frontend emits the callsite attributes that match > the signature of the call. This would not trigger for indirect calls, `f` would be `nullptr`. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D81678/new/ https://reviews.llvm.org/D81678 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits