diff options
author | Jakub Jelinek <jakub@redhat.com> | 2009-05-16 09:12:02 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2009-05-16 09:12:02 +0200 |
commit | 40a8f07a47f1192d06e895ce1a4d0fc91a723743 (patch) | |
tree | 6e8f264af352b2d4f86c2430ec273c272f874f45 /gcc/output.h | |
parent | a99c6711f83e23596c5fdbf575484e3fa34d6e45 (diff) | |
download | gcc-40a8f07a47f1192d06e895ce1a4d0fc91a723743.zip gcc-40a8f07a47f1192d06e895ce1a4d0fc91a723743.tar.gz gcc-40a8f07a47f1192d06e895ce1a4d0fc91a723743.tar.bz2 |
re PR target/39942 (Nonoptimal code - leaveq; xchg %ax,%ax; retq)
PR target/39942
* final.c (label_to_max_skip): New function.
(label_to_alignment): Only use LABEL_TO_ALIGNMENT if
CODE_LABEL_NUMBER <= max_labelno.
* output.h (label_to_max_skip): New prototype.
* config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
(ix86_avoid_jump_mispredicts): ... this. Don't define if
ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
Handle CODE_LABELs with >= 16 byte alignment or with
max_skip == (1 << align) - 1.
(ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
From-SVN: r147607
Diffstat (limited to 'gcc/output.h')
-rw-r--r-- | gcc/output.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/output.h b/gcc/output.h index e7871f9..543164a 100644 --- a/gcc/output.h +++ b/gcc/output.h @@ -1,7 +1,7 @@ /* Declarations for insn-output.c. These functions are defined in recog.c, final.c, and varasm.c. Copyright (C) 1987, 1991, 1994, 1997, 1998, 1999, 2000, 2001, 2002, - 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. + 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. This file is part of GCC. @@ -94,6 +94,10 @@ extern int insn_current_reference_address (rtx); Defined in final.c. */ extern int label_to_alignment (rtx); +/* Find the alignment maximum skip associated with a CODE_LABEL. + Defined in final.c. */ +extern int label_to_max_skip (rtx); + /* Output a LABEL_REF, or a bare CODE_LABEL, as an assembler symbol. */ extern void output_asm_label (rtx); |