Hi, Bonzini, Thank you for your reponse. I do not want to modify the old loop optimizer defined in loop.c. I am preparing to port some improvements done on gcc-3.5 to gcc-4.0, and the GIV optimizations is part of my concerns.
On IA-64, the GIV optimization can hardly improve the performance. The reason is that check_ext_dependent_givs can not giv an exactly answer whether the BIVs will be wrap around or not. In most cases, it only produce a conservative result that the BIVs may overflow and the corresponding GIVs can not be reduced. I modified the code in check_ext_dependent_givs to let the BIVs always successfully pass the check, then test the example you have given to me, but the result is the same as before. Would you please give me another example which will lead a wrong result if the check_ext_dependnet_givs has not been called. FORTRAN program is nice, and my platform is a 64bit system. Best regards, Canqun Yang Creative Compiler Research Group. National University of Defense Technology, China.