On Jan 2, 2008 3:24 PM, Qing Wei <[EMAIL PROTECTED]> wrote: > 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.
Nothing is wrong. Try int s1[10]; int s2[10]; int s3[10]; void f() { int i; for (i=0; i<10; ++i) s1[i] = s2[i] + s3[i]; } Richard.