Marking variable as addressable from within SSA pass

Paolo Bonzini bonzini@gnu.org
Sat Mar 20 18:09:00 GMT 2004


> You do not want to do this.  Addressing variables SEVERELY pessimizes
> the code.  Use a VIEW_CONVERT_EXPR to change the type instead.

I was hoping that DOM could clean up the code, and in this particular case
where I have a logical operation and it's as big as a machine register, yes, I
could do without addressing.

But if the operation is on a wide vector like a V2DI, or if I have something
different from a logical operation, I need to do something like an RTL SUBREG.
Currently I am doing like this:

    V4QI T_1, T_2, T_3;
    char *T_4, *T_5, *T_6, *T_7, *T_8, *T_9;
    char T_10, T_11, T_12;
    T_4 = (char *) &T_1;
    T_5 = (char *) &T_2;
    T_6 = (char *) &T_3;
    ...
    T_7 = T_4 + 3;
    T_8 = T_5 + 3;
    T_9 = T_6 + 3;
    T_10 = *T_7;
    T_11 = *T_8;
    T_12 = T_10 * T_11;
    *T_9 = T_12;

Paolo







More information about the Gcc mailing list