Hi, I find that in the function expand_expr_real_1(), which translates the GIMPLE tree nodes to RTL. There are codes to process the ARRAY_REF/ARRAY_REF_RANGE node. I wrote a test program in C such like this,
void f(int s1[], int s2[], int s3[]) { int j; for (j = 0; j < 16; j++) s3[j] = s1[j] + s2[j]; } I set a breakpoint at the codes to process ARRAY_REF node in expand_expr_real_1(), However I found that GCC never goes there. I do find that the ARRAY_REF nodes denoting S1[j]/S2[j]/S3[j] exist in GENERIC tree for the program. After the gimplify_expr() called, they are lowered to other nodes? If so, why the expand_expr_real_1() handle such nodes. What is wrong. Qing