This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Problem in split_basic_block
- From: kenner at vlsi1 dot ultra dot nyu dot edu (Richard Kenner)
- To: gcc at gcc dot gnu dot org
- Date: Fri, 1 Aug 03 18:21:34 EDT
- Subject: Problem in split_basic_block
This comes up compiling the Ada library for ia64/VMS with SJLJ exceptions
and flag_non_call_exceptions.
Suppose we have a block with a CALL_INSN. Ity has a REG_EH_REGION note.
The ia64 splitter splits that up into a number of insns, some of which
are memory load insns. Then split_insns copies the REG_EH_REGION note
to that load insn.
Now we try to split the block. The code moves all edges to the new
block. But that's wrong since there might have been an ABNORMAL_CALL
edge that depended on the last insn of the block being a CALL_INSN.
But the CALL_INSN is now in the previous block.
Suggestions?
I don't understand this stuff too well.