Jan Hubicka <hubicka@freesoft.cz>

* i386.c (ix86_adjust_cost): Ignore false ebp dependencies in
        prologues.

From-SVN: r29745
This commit is contained in:
Jan Hubicka 1999-10-01 03:35:37 +02:00 committed by Richard Henderson
parent 0d7148e3f2
commit 9b00189f09
2 changed files with 18 additions and 1 deletions

View File

@ -1,3 +1,8 @@
Thu Sep 30 18:34:54 1999 Jan Hubicka <hubicka@freesoft.cz>
* i386.c (ix86_adjust_cost): Ignore false ebp dependencies in
prologues.
Thu Sep 30 18:31:36 1999 Jan Hubicka <hubicka@freesoft.cz>
* alias.c: Include insn-flags.h.

View File

@ -5325,15 +5325,27 @@ ix86_adjust_cost (insn, link, dep_insn, cost)
{
enum attr_type insn_type, dep_insn_type;
rtx set, set2;
int dep_insn_code_number;
/* We describe no anti or output depenancies. */
if (REG_NOTE_KIND (link) != 0)
return cost;
dep_insn_code_number = recog_memoized (dep_insn);
/* If we can't recognize the insns, we can't really do anything. */
if (recog_memoized (insn) < 0 || recog_memoized (dep_insn) < 0)
if (dep_insn_code_number < 0 || recog_memoized (insn) < 0)
return cost;
/* Prologue and epilogue allocators have false dependency on ebp.
This results in one cycle extra stall on Pentium prologue scheduling, so
handle this important case manually. */
if ((dep_insn_code_number == CODE_FOR_prologue_allocate_stack
|| dep_insn_code_number == CODE_FOR_epilogue_deallocate_stack)
&& !reg_mentioned_p (stack_pointer_rtx, insn))
return 0;
insn_type = get_attr_type (insn);
dep_insn_type = get_attr_type (dep_insn);