[PATCH] D105288: [coro async] Cap the alignment of spilled values (vs. allocas) at the max frame alignment

Arnold Schwaighofer via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 6 06:44:12 PDT 2021


aschwaighofer added a comment.

Oh my. You are right I should have verified that when we spill that value though we use the right alignment. Because we don't. :(.

  %vector_spill = load <4 x double>, <4 x double>* %vector, align 16
  %vector_spill.spill.addr = getelementptr inbounds %my_async_function.Frame, %my_async_function.Frame* %FramePtr, i32 0, i32 1, !dbg !6
   store <4 x double> %vector_spill, <4 x double>* %vector_spill.spill.addr, align 32, !dbg !6

The code that spills/reloads does not use the alignment we have computed for the spill slot.
Rather it just does:

  Builder.CreateStore(Def, G);


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D105288



More information about the llvm-commits mailing list