This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/34999] Fallthru crossing edges in partition_hot_cold_basic_blocks are not been fixed when the section ends with call insn
- From: "jakub at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 4 Mar 2008 15:10:06 -0000
- Subject: [Bug rtl-optimization/34999] Fallthru crossing edges in partition_hot_cold_basic_blocks are not been fixed when the section ends with call insn
- References: <bug-34999-13229@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #17 from jakub at gcc dot gnu dot org 2008-03-04 15:10 -------
.cfi_* doesn't create .dwarf_frame, but perhaps it could be taught to do that
optionally (some flag on .cfi_startproc that would switch on additional
creation of .dwarf_frame).
The plan with save/restore was that you could do say
.text
.cfi_startproc
.cfi_personality 3, __gxx_personality_v0
.cfi_lsda 3, .LLSDA2
some code plus .cfi_* instructions for it
jmp 1f
.cfi_save .L0123
.section .text.unlikely
.cfi_startproc
.cfi_personality 3, __gxx_personality_v0
.cfi_lsda .LLSDA2
.cfi_restore .L0123
1:
some code plus .cfi_* instructions for it
.cfi_endproc
.previous
.cfi_endproc
where that .cfi_save would add a list of .cfi_* instructions from
.cfi_startproc
till that .cfi_save into .L0123 queue, then .cfi_restore would just add those
queued .cfi directives all at the same location (with some optimizations, e.g.
.cfi_* instructions that clearly cancel themselves would be optimized out, any
location advances of course taken out, etc.).
You can of course do that in dwarf2out.c, but we eventually want to use inline
.cfi_* instructions for other reasons - e.g. so that inline asm code can add
its unwind info.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34999