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 2/2] dwarf2cfi: Flush queued saves at the end of the prologue.


There's little point at holding onto these saves indefinitely.

PR bootstrap/49680
        * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
        end of the prologue.
---
 gcc/ChangeLog   |    4 ++++
 gcc/dwarf2cfi.c |    7 +++++++
 2 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3ba9bf7..34ebb0a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -4,6 +4,10 @@
 	* dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
 	any tablejump vector.
 
+	PR bootstrap/49680
+	* dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
+	end of the prologue.
+
 2011-07-08  Jakub Jelinek  <jakub@redhat.com>
 
 	PR target/49621
diff --git a/gcc/dwarf2cfi.c b/gcc/dwarf2cfi.c
index 8031d48..2625067 100644
--- a/gcc/dwarf2cfi.c
+++ b/gcc/dwarf2cfi.c
@@ -2442,11 +2442,18 @@ create_cfi_notes (void)
 	{
 	  switch (NOTE_KIND (insn))
 	    {
+	    case NOTE_INSN_PROLOGUE_END:
+	      cfi_insn = PREV_INSN (insn);
+	      dwarf2out_flush_queued_reg_saves ();
+	      cfi_insn = NULL;
+	      break;
+
 	    case NOTE_INSN_EPILOGUE_BEG:
 #if defined(HAVE_epilogue)
 	      dwarf2out_cfi_begin_epilogue (insn);
 #endif
 	      break;
+
 	    case NOTE_INSN_CFA_RESTORE_STATE:
 	      cfi_insn = insn;
 	      dwarf2out_frame_debug_restore_state ();
-- 
1.7.6


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