GDC generates invalid assembly around fiber yield operations (Not re-reading data from clobberedd memory to registers)

Liran Zvibel via D.gnu d.gnu at puremagic.com
Fri May 15 02:50:58 PDT 2015


Hi,
I’m trying to port a 120k loc fiber based application from dmd to gdc, so applying this work around is not a good option for me (also, there are many engineers that will continue generating code…)

Thanks
Liran
> On May 15, 2015, at 10:08, Johannes Pfau via D.gnu <d.gnu at puremagic.com> wrote:
> 
> Am Thu, 14 May 2015 19:02:48 +0200
> schrieb Johannes Pfau <nospam at example.com>:
> 
>> ...
> 
> TLDR
> As a workaround replace
> 
> globalSum += otherFunc();
> 
> which GDC currently treats as
> 
> globalSum = globalSum + otherFunc();
> 
> with
> 
> globalSum = otherFunc() + globalSum;
> 




More information about the D.gnu mailing list