]> granicus.if.org Git - clang/commit
Simplify codegen and debug info generation for block context parameters.
authorAdrian Prantl <aprantl@apple.com>
Thu, 26 Oct 2017 18:16:05 +0000 (18:16 +0000)
committerAdrian Prantl <aprantl@apple.com>
Thu, 26 Oct 2017 18:16:05 +0000 (18:16 +0000)
commitb62a18f137edb8c75a27ab36802a18744147c55e
tree8cd56f4b4d65c8e8d04c9b3f21fdf822d27f6bb5
parent24608dda4d4170b6813211360e6f4253cb81d79f
Simplify codegen and debug info generation for block context parameters.

The exisiting code goes out of its way to put block parameters into an
alloca only at -O0, and then describes the funciton argument with a
dbg.declare, which is undocumented in the LLVM-CFE contract and does
not actually behave as intended after LLVM r642022.

This patch just generates the alloca unconditionally, the mem2reg pass
will eliminate it at -O1 and up anyway and points the dbg.declare to
the alloca as intended (which mem2reg will then correctly rewrite into
a dbg.value).

rdar://problem/35043980

Differential Revision: https://reviews.llvm.org/D39305

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@316684 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/CGBlocks.cpp
lib/CodeGen/CGDebugInfo.cpp
lib/CodeGen/CGDebugInfo.h
test/CodeGen/debug-info-block-vars.c [new file with mode: 0644]
test/CodeGenObjC/debug-info-block-captured-self.m [deleted file]