From: kazu Date: Mon, 7 Feb 2005 17:10:27 +0000 (+0000) Subject: * cse.c: Update comments. X-Git-Url: http://git.sourceforge.jp/view?a=commitdiff_plain;h=96d808c2db3ef47f7bd9376ebb3986da6ee2e18c;p=pf3gnuchains%2Fgcc-fork.git * cse.c: Update comments. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@94705 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 132faac6022..91ba10b4b6f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -5,6 +5,8 @@ config/rs6000/altivec.md, config/rs6000/darwin-tramp.asm: Update copyright. + * cse.c: Update comments. + 2005-02-07 Richard Guenther PR middle-end/19775 diff --git a/gcc/cse.c b/gcc/cse.c index 1f71f4cfc54..4a130d36a59 100644 --- a/gcc/cse.c +++ b/gcc/cse.c @@ -80,11 +80,11 @@ Registers and "quantity numbers": copies one register into another, we copy the quantity number. When a register is loaded in any other way, we allocate a new quantity number to describe the value generated by this operation. - `reg_qty' records what quantity a register is currently thought + `REG_QTY (N)' records what quantity register N is currently thought of as containing. All real quantity numbers are greater than or equal to zero. - If register N has not been assigned a quantity, reg_qty[N] will + If register N has not been assigned a quantity, `REG_QTY (N)' will equal -N - 1, which is always negative. Quantity numbers below zero do not exist and none of the `qty_table' @@ -172,18 +172,20 @@ Other expressions: the register's new value. This sequence of circumstances is rare within any one basic block. - The vectors `reg_tick' and `reg_in_table' are used to detect this case. - reg_tick[i] is incremented whenever a value is stored in register i. - reg_in_table[i] holds -1 if no references to register i have been - entered in the table; otherwise, it contains the value reg_tick[i] had - when the references were entered. If we want to enter a reference - and reg_in_table[i] != reg_tick[i], we must scan and remove old references. - Until we want to enter a new entry, the mere fact that the two vectors - don't match makes the entries be ignored if anyone tries to match them. + `REG_TICK' and `REG_IN_TABLE', accessors for members of + cse_reg_info, are used to detect this case. REG_TICK (i) is + incremented whenever a value is stored in register i. + REG_IN_TABLE (i) holds -1 if no references to register i have been + entered in the table; otherwise, it contains the value REG_TICK (i) + had when the references were entered. If we want to enter a + reference and REG_IN_TABLE (i) != REG_TICK (i), we must scan and + remove old references. Until we want to enter a new entry, the + mere fact that the two vectors don't match makes the entries be + ignored if anyone tries to match them. Registers themselves are entered in the hash table as well as in - the equivalent-register chains. However, the vectors `reg_tick' - and `reg_in_table' do not apply to expressions which are simple + the equivalent-register chains. However, `REG_TICK' and + `REG_IN_TABLE' do not apply to expressions which are simple register references. These expressions are removed from the table immediately when they become invalid, and this can be done even if we do not immediately search for all the expressions that refer to @@ -289,7 +291,7 @@ static rtx this_insn; Or -1 if this register is at the end of the chain. - If reg_qty[N] == N, reg_eqv_table[N].next is undefined. */ + If REG_QTY (N) == -N - 1, reg_eqv_table[N].next is undefined. */ /* Per-register equivalence chain. */ struct reg_eqv_elem