[PATCH] D52440: Emit lifetime markers for temporary function parameter aggregates

Ian Tessier via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Sep 24 15:03:04 PDT 2018


itessier created this revision.
itessier added a reviewer: rjmccall.
Herald added a subscriber: cfe-commits.

Clang is not emitting lifetime markers for temporary function parameters, so more stack space is potentially being allocated than necessary.

A new parameter is added to the CreateAggTemp and EmitAnyExprToTemp functions to indicate whether to emit lifetime markers for aggregates, so that the EmitCallArg function can request them when evaluating an arg. The parameter is defaulted to false so that the behaviour of other callers is not affected.


Repository:
  rC Clang

https://reviews.llvm.org/D52440

Files:
  lib/CodeGen/CGCall.cpp
  lib/CodeGen/CGExpr.cpp
  lib/CodeGen/CodeGenFunction.h
  test/CodeGenCXX/microsoft-abi-eh-cleanups.cpp
  test/CodeGenCXX/stack-reuse-miscompile.cpp
  test/CodeGenCXX/stack-reuse.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D52440.166755.patch
Type: text/x-patch
Size: 8709 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180924/486ff3ca/attachment.bin>


More information about the cfe-commits mailing list