Thread overview
[Issue 2888] New: [PATCH] float * 2.0 is unnecessarily slow
Apr 24, 2009
d-bugmail
Apr 24, 2009
d-bugmail
[Issue 2888] [PATCH] speedup for float * 2.0
Apr 27, 2009
d-bugmail
Jul 09, 2009
Walter Bright
April 24, 2009
http://d.puremagic.com/issues/show_bug.cgi?id=2888

           Summary: [PATCH] float * 2.0 is unnecessarily slow
           Product: D
           Version: 2.029
          Platform: PC
        OS/Version: Windows
            Status: NEW
          Keywords: patch, performance
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: bugzilla@digitalmars.com
        ReportedBy: clugdbug@yahoo.com.au


DMD generates slow code in simple situations such as:
double foo(double x) { return x*2; }

It creates a floating-point constant 2.0, and then generates an FMUL to multiply by it. It's particularly slow in the 80-bit real case, where two instructions (FLD and FMULP) are required.

The attached patch generates the fast and simple FADD ST(0), ST; instead. It only applies to float,double, real, not to complex numbers.


-- 

April 24, 2009
http://d.puremagic.com/issues/show_bug.cgi?id=2888





------- Comment #1 from clugdbug@yahoo.com.au  2009-04-24 15:13 -------
Created an attachment (id=338)
 --> (http://d.puremagic.com/issues/attachment.cgi?id=338&action=view)
Patch against DMD2.029

This will be a useful step towards further optimisation of pure functions with real return values.


-- 

April 27, 2009
http://d.puremagic.com/issues/show_bug.cgi?id=2888


clugdbug@yahoo.com.au changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|normal                      |enhancement
            Summary|[PATCH] float * 2.0 is      |[PATCH] speedup for float *
                   |unnecessarily slow          |2.0




------- Comment #2 from clugdbug@yahoo.com.au  2009-04-27 04:36 -------
Renaming this issue to be less negative


-- 

July 09, 2009
http://d.puremagic.com/issues/show_bug.cgi?id=2888


Walter Bright <bugzilla@digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED




--- Comment #3 from Walter Bright <bugzilla@digitalmars.com>  2009-07-09 02:48:31 PDT ---
Fixed dmd 1.046 and 2.031

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------