This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

PATCH: V9: Merge DWARF2 update from stack branch


On Mon, Jul 7, 2008 at 2:08 AM, Guo, Xuepeng <xuepeng.guo@intel.com> wrote:
> This patch is derived from v7:Update DWARF2 and contains comments from
> Jason. These comments are really valuable. We appreciate that Jason can
> review it. The changes compared to the previous version are:
> 1) We moved the necessary prototypes higher in the file instead of
> moving function bodies around in the file.
> 2) In the DRAP case, "mov %esp, %ebp" really can cause unnecessary
> DWARF2 information. So now we don't generate any DWARF2 information for
> it.
> 3) Now Rule 19 only redefine CFA with expression.
> 4) Stack pointer will be restored through CFA value by default for DRAP
> case.
> 5) Fixed Bug 36728.
>
> Jason, could you please take time to review again? Thanks very much.
>

Hi Jason,

Here is the updated DWARF patch from stack branch based on your
feedbacks. The main difference from

http://gcc.gnu.org/ml/gcc-patches/2008-07/msg00505.html

is to add an assert for (set fp sp) after stack is aligned as in

http://gcc.gnu.org/ml/gcc-patches/2008-07/msg00562.html

Can you take a look?

Thanks.


H.J.
---
2008-07-07  Xuepeng Guo  <xuepeng.guo@intel.com>
	    H.J. Lu  <hongjiu.lu@intel.com>

	* dwarf2out.c (dw_fde_struct): Add stack_realignment, drap_reg,
	vdrap_reg and stack_realign.
	(add_cfi): Don't redefine CFA when DRAP is used.
	(reg_save): Handle stack alignment.
	(dwarf2out_frame_debug_expr): Add rules 16-20 to handle stack
	alignment.  Don't generate DWARF information for (set fp sp)
	when DRAP is used.
	(dwarf2out_begin_prologue): Initialize drap_reg and vdrap_reg
	to INVALID_REGNUM.
	(int_loc_descriptor): Move prototype forward.  Also define if
	DWARF2_UNWIND_INFO is true.
	(output_cfa_loc): Handle DW_CFA_expression.
	(build_cfa_aligned_loc): New.
	(based_loc_descr): Update assert for stack realign.  For local
	variables, use sp+offset when stack is aligned without drap and
	fp+offset when stack is aligned with drap.  For arguments, use
	cfa+offset when drap is used to align stack.

Attachment: gcc-stack-v9-4.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]