This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Since I don't know if I got the official go ahead to just merge this branch or not (I am a bit worried to merge it and then getting told I did the wrong thing), I am sending the (big) patch for review (it includes a new changelog for each directory which contained a changelog before). This is latest and greatest patch from the branch. The patch contains a couple of new testcases which could go in seperate if need be. But most of the changes are mechanical s/PLUS_EXPR/POINTER_PLUS_EXPR/ . There are a couple of places where it is not. Scalar evolution for an example has a change such that when you have a pointer type, the increment is not in that pointer type but is in sizetype. In VRP, we only support now MIN_EXPR, MAX_EXPR, and POINTER_PLUS_EXPR for pointers and we will get ICEs if we have any other tree code. Alias is better because we now know which side is a pointer type (this is also true for restrict for rtl aliasing too).
Even though this patch is large, it removes a lot of code dealing with how the index could be either operand of PLUS_EXPR. It only adds a small bit of extra folding (cross folding between PLUS_EXPR and POINTER_PLUS_EXPR).
I think I added enough checks in both build2_stat and in the tree cfg checking code to make sure we only get POINTER_PLUS_EXPR and no PLUS_EXPR for pointers.
There is only one part which I have been worried about and that is the C++ front-end when dealing with templates, this patch does a build2 with a NULL operand 0 to get around checking for pointer type with PLUS_EXPR. I did not change to change more code in the C++ front-end than I wantted to. I did forget one thing I need to change for the C++ front-end, the diagnostic code; I only thought of this now.
What should I do about the ChangeLog, should I keep ChangeLog.ptr or write a new one and when I commit, commit it with that one?
This branch has been bootstrapped and tested on powerpc64-linux-gnu, i686-linux-gnu, powerpc-darwin, sh4-linux-gnu, sparc-solaris, ia64-linux-gnu. Built and tested for arm-elf, mips-elf, spu-elf. And some more which I forgot now. This was tested with Ada turned on at least on i686-linux-gnu.
Thanks, Andrew Pinski
Attachment:
wholeptrplus.diff.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |