This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[3.4-BIB] fix handling of empty functions for Athlon
- From: Jan Hubicka <jh at suse dot cz>
- To: gcc-patches at gcc dot gnu dot org
- Date: Fri, 8 Nov 2002 13:28:35 +0100
- Subject: [3.4-BIB] fix handling of empty functions for Athlon
Hi,
I've installed the patch as obivous.
For some reason empty functions are performance critical for DRI and few
other low level stuff.
Honza
Fri Nov 8 13:23:17 CET 2002 Jan Hubicka <jh@suse.cz>
* i386.c (x86_machine_dependent_reorg): Fix handling of empty functions.
Index: i386.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/i386/i386.c,v
retrieving revision 1.446.2.4
diff -c -3 -p -r1.446.2.4 i386.c
*** i386.c 1 Nov 2002 01:12:28 -0000 1.446.2.4
--- i386.c 8 Nov 2002 12:21:36 -0000
*************** x86_machine_dependent_reorg (first)
*** 14432,14438 ****
if (!returnjump_p (ret) || !maybe_hot_bb_p (bb))
continue;
! prev = prev_nonnote_insn (ret);
if (prev && GET_CODE (prev) == CODE_LABEL)
{
edge e;
--- 14451,14461 ----
if (!returnjump_p (ret) || !maybe_hot_bb_p (bb))
continue;
! prev = prev_active_insn (ret);
! /* Empty functions get branch misspredict even when the jump destination
! is not visible to us. */
! if (!prev && cfun->function_frequency > FUNCTION_FREQUENCY_UNLIKELY_EXECUTED)
! insert = 1;
if (prev && GET_CODE (prev) == CODE_LABEL)
{
edge e;