Update frontend to 2.066#87
Conversation
|
Getting an ICE on X32 only, with -O2: There is very little chance of finding what front-end/glue change is causing this. May have to do incremental merges against dmd master, (eek!). |
|
git format-patch to the rescue... there are 944 commits between 2.065 and 2.066. |
|
I can build the compiler and my minimum runtime for arm. minlibd/libdruntime/libdruntime.a(object_.o):(.data._D33TypeInfo_S6object14OffsetTypeInfo6__initZ[_D33TypeInfo_S6object14OffsetTypeInfo6__initZ]+0x18): undefined reference to |
|
It is quite possible that I have missed some typeinfo change that needs to be reflected in the glue code. Unfortunately it is too difficult to tell what though. It seems that 2.065 was left in beta for 6 months, so what got applied to 2.066 and what got backported to 2.065 during that time is just a spaghetti mess. |
|
Found the bug: |
|
PR actually exposed a bigger bug. |
|
Changing ABI of CatExp's. Rather than passing the generated dynamic arrays directly over varargs (disallowed in normal D code), instead I've amended the codegen to instead split the fields as a separate parameter. So: This works around the ICE in the X32 optimiser. But doing it in the former way was probably not a good idea in the first place. |
|
@jpf91 - I think we're ready to start merging in the testsuite and regression testing. |
|
@timosi - there actually turned out to be many many glue changes missed in the first merge. This time things should be better (I hope!) |
62e739b to
abe01e1
Compare
|
ARM build is running since yesterday but it'll probably take some time. Side note: gcc-5 no longer compiles on wheezy/arm which still uses gcc 4.6. |
|
Now binutils crashes. Seems like I can't test this on my always-running wheezy box. I'll have to test on the archlinux pandaboard, but that'll have to wait till the weekend. |
4bc01bb to
72545c0
Compare
|
New backported fix: |
540afdc to
cfea229
Compare
|
@jpf91 - any more things you wish to add to this before I call it a day and merge up? |
aac141e to
1aa7e51
Compare
|
Looks great. I started an ARM build right now, but no need to wait for the result. I can pushes fixes later if necessary. However, I see one test failure on X86-64: Is this a known problem? |
|
Heh, I forgot to update one piece of my build environment when I did a laptop move last month - this test has been coming up as "UNRESOLVED" in my logs and I didn't pick it up. Needs sorting out, give me 15 minutes. |
|
Got my cast from/to C++ class logic backwards. Should be ok now (rebased it in) |
|
Running the testsuite (one last time) with -m32, -mx32 and -m64. I should get @braddr to set-up a VM for this. :) |
|
|
@jpf91 - Is it ok to leave this in your hands to merge in? |
|
Great, tests now pass on X86-64. gcc-5-20150111 is broken on ARM but that should be fixed in the next snapshot. |
|
@ibuclaw OK. I'll see if an older gcc csnapshot builds on ARM. Otherwise I'll just merge this pull request and test ARM later. |
|
@braddr - Awesome! Thanks. |
|
There's some very big problems with my auto-tester and the GDC project's behavior since it was set up. The biggest is that it looks like it's testing 4 different things but it's really testing x86/32 4 times. The second is a lot more minor but the order of builds isn't working right and GDC pull requests are building a lot later than they should. I'll have both fixed this week (hopefully today or tomorrow). |
|
I'm currently reducing the last ARM bug. Might take some more time. |
|
Pushed directly. dustmite finished reducing the last ARM bug. Looks like wrong-code but I'll backport & test on 4.9.2 first as this could be a GCC bug. |
TODO:
Visitor conversions.Delaying until after 2.067, where separation between front and backend has been been completed: [cleanup] Finish moving glue functions out of classes dlang/dmd#4291Move toArgTypes visitor to glue where it belongs.Delaying this until can think of a more arch agnostic way to do this.C++ support (cppmangle.c) - to glue or not to glue.cppmangle.c changes have been left out of this merge due to blocking breakages.Update Testsuite.Maybe update to 2.066.1