March 22, 2018
https://bugzilla.gdcproject.org/show_bug.cgi?id=288

            Bug ID: 288
           Summary: strange nonsensical x86-64 code generation with -O3 -
                    rats' nest of useless conditional jumps
           Product: GDC
           Version: 7.x
          Hardware: x86_64
                OS: Linux
            Status: NEW
          Severity: minor
          Priority: Normal
         Component: gdc
          Assignee: ibuclaw@gdcproject.org
          Reporter: cecil@cecilward.com

Created attachment 93
  --> https://bugzilla.gdcproject.org/attachment.cgi?id=93&action=edit
D source; debug-only c9de is the weird stuff so compiling with -fdebug is
essential because the source code in question is inside a D 'debug' cond so
otherwise no relevant code will be generated

This seems to be a quirk in the code generated by the GCC x86-64 backend itself in my humble opinion, and very much doubt it has much to do with GDC itself. I am not alleging that the generated code does not perform the correct function, I haven't gone through it carefully enough, but the x64 code generated is just very strange and utterly pointless.

I compiled with GDC 7.x for x64 with
    -O3 -fdebug -march=skylake

See the long list of useless conditional jumps towards the end of the first
function in the asm output (whose demangled name is test.t1(unit))

-- 
You are receiving this mail because:
You are watching all bug changes.