Notes |
|
(0000556)
|
pbone
|
2013-07-24 18:24
|
|
I have uploaded a patch that I started working on. |
|
|
|
Hi Paul,
Some comments on your patch: in the configure script, you should be able to use the value of C_COMPILER_TYPE to tell whether to pass -fno-reorder-functions or not to the C compiler or not. (The value of that variable also encodes the version of the C compiler.)
For now I would suggest disabling the option for GCC version 4.6 and onwards.
This bug should be kept open until we know *why* -freorder-functions is breaking the .par grades. |
|
|
(0000559)
|
pbone
|
2013-09-01 14:43
|
|
Notes on why this bug may be occurring:
The program has to use higher order code but doesn't need to contain a
parallel conjunction.
The effected grade has to be a low-level C par grade, I've only tested with
stack segments, so I don't know if disabling them will help. I tested a few
of the low-level C grades:
asm_fast.gc: Works
asm_fast.gc.par.seg: Broken
asm_fast.gc.seg: Broken
reg.gc.par.seg: Broken
none.gc.par.seg: Works
So, the bug is independent of GC and parallel conjunction. It does require
higher order code, a parallel grade, and gcc global registers. |
|
|
|
Is this on x86_64, i686 or both? Also, is the test case also broken on reg.gc.steg? |
|
|
(0000561)
|
pbone
|
2013-09-01 17:46
|
|
x86_64, I havn't tested the others.
Also regarding reg.gc.par.stseg, this doesn't work in older versions of GCC 4.6 either, so there are at least two different bugs, and until I understand both of them I can't say if the "reg" grades are affected or not. So I can't tell if this is GCC global registers or some other option. |
|
|
(0000563)
|
pbone
|
2013-09-03 16:30
|
|
I've now also tested asm_fast.gc.stseg, which does not have the bug. |
|
|
(0000569)
|
pbone
|
2013-09-29 15:12
|
|
Fixed in a8397086be733a27d73fe1b0f14b5aa92487adb4
I'm leaving the bug open as we still do not know the cause. |
|