jdoerfert added a comment.

In D110257#3015641 <https://reviews.llvm.org/D110257#3015641>, @hsmhsm wrote:

> In D110257#3015553 <https://reviews.llvm.org/D110257#3015553>, @arsenm wrote:
>
>> I do think it's cleaner/more canonical IR to cluster these at the top of the 
>> block, but I don't understand this comment:
>>
>>> otherwise, inliner's attempt to move static allocas from callee to caller 
>>> will fail,
>>
>> The inliner successfully moves allocas to the caller's entry block, even 
>> with addrspacecasts interspersed.
>
> The logic at 
> https://github.com/llvm/llvm-project/blob/main/llvm/lib/Transforms/Utils/InlineFunction.cpp#L2093
>  assumes that static allocas (within callee) are contiguous.

True. Even worse. It will bail if a static alloca is used as an `inalloca` 
argument.
So, if you now interleave allocas that may be used in `inalloca` you also break 
the "canonical form". 
I assume this hits mostly windows but still.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D110257

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to