Hi, I am not asking right now to merge this branch to the mainline, I think it needs more eyes on the code. But here is the current status of the branch.
It bootstraps and tests on i686-linux-gnu with two regressions. It builds/tests for spu-elf with two regressions (the same as the x86 regressions). I am working on fixing up the bootstrap/tests for powerpc64-linux-gnu/powerpc-linux-gnu right now (well the patch was in testing but the machine crashed because of the heat in the office). For i686-linux-gnu, this includes Ada, Java, Fortran, C++, objective-C, Objective-C++ and C. I did not test treelang yet but a quick look through the source shows that this language should just work. The two regressions which exist are: FAIL: gcc.dg/vect/vect-102.c scan-tree-dump-times possible dependence between data-refs 1 FAIL: gcc.dg/vect/vect-104.c scan-tree-dump-times possible dependence between data-refs 1 This is cause we get "a p+ (b+1)*4" while on the mainline we get a + "(((int*)b)*4B + 4B)". So we don't fold "(b+1)*4" to "b*4 + 4" but I have not looked into why yet. Next week I will be ask Mark Mitchell and the SC about merging this branch into the mainline, I should have some benchmark results during that time frame also. To people who are going to test the branch on other targets than the one I mentioned already: Every target's gimplify_va_arg needs to be fixed, likewise for each target's va_start, the changes are usually s/PLUS_EXPR/POINTER_PLUS_EXPR and make sure the second operand is converted to sizetype (most already just use sizetype anyways). Thanks, Andrew Pinski