Patch to prevent do_tablejump from marking vector as unchanging

John Wehle john@feith.com
Wed Aug 16 15:14:00 GMT 2000


> Well, yes and no.  The way the /u bit is being used here
> is to indicate that the *memory* is unchanging.  Not the
> value of R45 after this insn.  I.e. it's being considered
> a marker for alias analysis -- no stores alias.

Oh.  How's the following for rtl.h:

*** gcc/rtl.h.ORIGINAL	Sat Aug  5 16:58:03 2000
--- gcc/rtl.h	Wed Aug 16 17:52:39 2000
*************** typedef struct rtx_def
*** 116,124 ****
    /* 1 in an INSN if it can call another function.
       LINK_COST_FREE in an INSN_LIST.  */
    unsigned int call : 1;
!   /* 1 in a MEM or REG if value of this expression will never change
!      during the current function, even though it is not
!      manifestly constant.
       1 in a SUBREG if it is from a promoted variable that is unsigned.
       1 in a SYMBOL_REF if it addresses something in the per-function
       constants pool.
--- 116,125 ----
    /* 1 in an INSN if it can call another function.
       LINK_COST_FREE in an INSN_LIST.  */
    unsigned int call : 1;
!   /* 1 in a REG if value of this expression will never change during
!      the current function, even though it is not manifestly constant.
!      1 in a MEM if contents of memory are constant.  This does not
!      necessarily mean that the value of this expression is constant.
       1 in a SUBREG if it is from a promoted variable that is unsigned.
       1 in a SYMBOL_REF if it addresses something in the per-function
       constants pool.

> Comments?

As a general improvement is there any problem with changing true_dependence
and write_dependence_p to realize that a label_ref doesn't create any
dependencies?

-- John
-------------------------------------------------------------------------
|   Feith Systems  |   Voice: 1-215-646-8000  |  Email: john@feith.com  |
|    John Wehle    |     Fax: 1-215-540-5495  |                         |
-------------------------------------------------------------------------



More information about the Gcc-patches mailing list