+Mon Sep 21 13:51:05 1998 Jim Wilson <wilson@cygnus.com>
+
+ * flow.c (find_basic_blocks): Delete check for in_libcall_block when
+ prev_code is a CALL_INSN. Change check for REG_RETVAL note to
+ use in_libcall_block.
+ (find_basic_blocks_1): Delete check for in_libcall_block when prev_code
+ is a CALL_INSN. If CALL_INSN and in_libcall_block, then change code
+ to INSN.
+
Mon Sep 21 14:02:23 1998
* i386.h: (TARGET_SWITCHES) Improve doc for align-double. Fix
|| (GET_RTX_CLASS (code) == 'i'
&& (prev_code == JUMP_INSN
|| (prev_code == CALL_INSN
- && (nonlocal_label_list != 0 || eh_region)
- && ! in_libcall_block)
+ && (nonlocal_label_list != 0 || eh_region))
|| prev_code == BARRIER)))
i++;
- if (code == CALL_INSN && find_reg_note (insn, REG_RETVAL, NULL_RTX))
+ /* We change the code of the CALL_INSN, so that it won't start a
+ new block. */
+ if (code == CALL_INSN && in_libcall_block)
code = INSN;
if (code != NOTE)
|| (GET_RTX_CLASS (code) == 'i'
&& (prev_code == JUMP_INSN
|| (prev_code == CALL_INSN
- && (nonlocal_label_list != 0 || eh_note)
- && ! in_libcall_block)
+ && (nonlocal_label_list != 0 || eh_note))
|| prev_code == BARRIER)))
{
basic_block_head[++i] = insn;
NOTE_BLOCK_NUMBER (XEXP (eh_note, 0));
BLOCK_NUM (insn) = i;
+ /* We change the code of the CALL_INSN, so that it won't start a
+ new block. */
+ if (code == CALL_INSN && in_libcall_block)
+ code = INSN;
+
if (code != NOTE)
prev_code = code;