[PATCH] D63361: Pretend NRVO variables are references so they can be found by debug info

Reid Kleckner via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 20 09:00:32 PDT 2019


rnk accepted this revision.
rnk added a comment.

lgtm, thanks!



================
Comment at: clang/lib/CodeGen/CodeGenFunction.cpp:908
     --EI;
     llvm::Value *Addr = Builder.CreateStructGEP(nullptr, &*EI, Idx);
     Addr = Builder.CreateAlignedLoad(Addr, getPointerAlign(), "agg.result");
----------------
akhuang wrote:
> rnk wrote:
> > akhuang wrote:
> > > rnk wrote:
> > > > What I had in mind was to use this GEP as the ReturnValuePointer here. The inalloca parameter is also a pointer to stack memory, and a GEP is an offset, so it should end up being handled like a static alloca.
> > > Oh, ok. I changed it, but not sure how to test debug info for the inalloca case
> > I don't think this is the correct alignment. The sret slot in the inalloca has a pointer type, so I think you want pointer alignment here. I think you can substitute Int8PtrTy for RetTy here.
> I suppose getPointerAlign() should work?
Looks right to me. :)


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D63361





More information about the llvm-commits mailing list