[LLVMdev] darwin llvm-gfortran Polyhedron 2005 results

Jack Howarth howarth at bromo.med.uc.edu
Thu Apr 8 11:33:23 PDT 2010


On Thu, Apr 08, 2010 at 11:12:24AM -0700, Dale Johannesen wrote:
> 
> On Apr 8, 2010, at 8:45 AMPDT, Bob Wilson wrote:
> 
> > [CCing Dale since this was his change, not mine]
> > 
> > The change in 81455 fixes a compiler crash.  It doesn't happen very often, but I can't imagine we would want to back that out.  Fixing it would be a more reasonable solution.  From a quick look at it, the problem is that gcc/config/darwin-c.c is registering va_opt for GC.  When you build for Fortran, darwin-c.o is not linked so the GC gets confused somehow.
> 
> This is the first I was aware this patch broke anything; nobody cc'd me on the bugzilla, and I don't normally pay attention to Fortran mail.
> 
> We definitely don't want to revert 81455; the bug caused a crash building something that's part of MacOS, and yes, that's more important than Fortran.   But it should be possible to get Fortran to build.  I would think the right idea is to change the build so that either darwin-c.o gets linked in (theoretically wrong but it should work), or (better) gt_gcc–r_gt_darwin_c_h is not referenced in Fortran.  It appears to be configured into gtype-fortran.h, which is generated during the build, so the thing would be to get it not to go in there....I'm not that expert with the GC mechanism, but I can play around a little....

Dale,
   Thanks. You might also look at Duncan's comment at...

http://llvm.org/bugs/show_bug.cgi?id=6778#c20

about the fact that darwin-c.o seems to have multiple
entries in config/t-darwin.
                 Jack
> 
> > On Apr 8, 2010, at 6:25 AM, Jack Howarth wrote:
> > 
> >> On Wed, Apr 07, 2010 at 09:54:36PM -0700, Chris Lattner wrote:
> >>> 
> >>> On Apr 7, 2010, at 8:41 PM, Jack Howarth wrote:
> >>> 
> >>>> Building the current release 2.7 branch on x86_64-apple-darwin10
> >>>> with r81455 reverted, I get the following Polyhedron 2005 benchmark
> >>>> results (with no test failures)...
> >>> 
> >>> Very nice!  A 14% speedup on a benchmark we don't tune for isn't bad.  I imagine that there are several easy wins you could get on it if you were interested in analyzing the performance.  I don't think that anyone has done *any* llvm-gfortran perf work.
> >>> 
> >>> -Chris
> >> 
> >> Chris,
> >>  How essential is r81455 to the llvm-gcc4.2-2.7 release? Can we regress it
> >> out for 2.7? I've tried all of the suggestions in...
> >> 
> >> http://llvm.org/bugs/show_bug.cgi?id=6778
> >> 
> >> from Duncan for moving va_opt into darwin.c as an extern. While this
> >> works at first glance, it destablizes the parallel make. Regressing r81455
> >> doesn't appear to cause any problems.
> >>                 Jack
> >> 
> >>> 
> >>>> 
> >>>> ================================================================================
> >>>> Date & Time     :  7 Apr 2010 22:24:16
> >>>> Test Name       : llvm_gfortran_lin_p4
> >>>> Compile Command : llvm-gfortran -ffast-math -funroll-loops -msse3 -O3 %n.f90 -o %n
> >>>> Benchmarks      : ac aermod air capacita channel doduc fatigue gas_dyn induct linpk mdbx nf protein rnflow test_fpu tfft
> >>>> Maximum Times   :     2000.0
> >>>> Target Error %  :      0.100
> >>>> Minimum Repeats :    10
> >>>> Maximum Repeats :   100
> >>>> 
> >>>> Benchmark   Compile  Executable   Ave Run  Number   Estim
> >>>>      Name    (secs)     (bytes)    (secs) Repeats   Err %
> >>>> ---------   -------  ----------   ------- -------  ------
> >>>>        ac      0.34       10000     12.85      10  0.0067
> >>>>    aermod     20.01       10000     15.42      10  0.0076
> >>>>       air      1.52       10000      7.50      12  0.0934
> >>>>  capacita      0.58       10000     45.67      10  0.0152
> >>>>   channel      0.41       10000      2.19      10  0.0365
> >>>>     doduc      2.29       10000     29.08      10  0.0140
> >>>>   fatigue      1.02       10000      8.83      10  0.0582
> >>>>   gas_dyn      0.77       10000     13.12      21  0.0909
> >>>>    induct      2.54       10000     24.22      10  0.0096
> >>>>     linpk      0.28       10000     15.67      10  0.0343
> >>>>      mdbx      0.79       10000     12.09      10  0.0070
> >>>>        nf      0.33       10000     30.10      12  0.0751
> >>>>   protein      1.10       10000     42.02      10  0.0100
> >>>>    rnflow      1.53       10000     32.00      10  0.0214
> >>>>  test_fpu      1.28       10000     11.73      10  0.0446
> >>>>      tfft      0.24       10000      2.16      13  0.0988
> >>>> 
> >>>> Geometric Mean Execution Time =      14.07 seconds
> >>>> 
> >>>> ================================================================================
> >>>> 
> >>>> This compares to the last time I ran these for the release 2.5 branch...
> >>>> 
> >>>> ================================================================================
> >>>> Date & Time     :  2 Feb 2009 23:57:03
> >>>> Test Name       : llvm_gfortran_lin_p4
> >>>> Compile Command : llvm-gfortran -ffast-math -funroll-loops -msse3 -O3 %n.f90 -o %n
> >>>> Benchmarks      : ac aermod air capacita channel doduc fatigue gas_dyn induct linpk mdbx nf protein rnflow test_fpu tfft
> >>>> Maximum Times   :     2000.0
> >>>> Target Error %  :      0.100
> >>>> Minimum Repeats :    10
> >>>> Maximum Repeats :   100
> >>>> 
> >>>> Benchmark   Compile  Executable   Ave Run  Number   Estim
> >>>>      Name    (secs)     (bytes)    (secs) Repeats   Err %
> >>>> ---------   -------  ----------   ------- -------  ------
> >>>>        ac      0.28       10000     15.01      10  0.0805
> >>>>    aermod     16.03       10000     15.83      10  0.0772
> >>>>       air      1.62       10000      8.21      10  0.0472
> >>>>  capacita      0.47       10000     51.23      10  0.0261
> >>>>   channel      0.23       10000      3.32      10  0.0106
> >>>>     doduc      1.64       10000     34.17      10  0.0060
> >>>>   fatigue      0.70       10000     12.74      10  0.0572
> >>>>   gas_dyn      0.55       10000     16.07      10  0.0771
> >>>>    induct      1.75       10000     26.54      10  0.0017
> >>>>     linpk      0.22       10000     15.42      10  0.0205
> >>>>      mdbx      0.63       10000     14.13      12  0.0162
> >>>>        nf      0.26       10000     29.01      10  0.0909
> >>>>   protein      0.70       10000     44.89      10  0.0133
> >>>>    rnflow      1.09       10000     39.58      10  0.0212
> >>>>  test_fpu      0.89       10000     14.02      10  0.0132
> >>>>      tfft      0.17       10000      2.20      12  0.0149
> >>>> 
> >>>> Geometric Mean Execution Time =      16.15 seconds
> >>>> 
> >>>> ================================================================================
> >>>> 
> >>>> In general, since the 2.5 release, the code performance is better
> >>>> but the compile time is somewhat regressed.
> >>>>                    Jack
> >>>> _______________________________________________
> >>>> LLVM Developers mailing list
> >>>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> >>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
> > 




More information about the llvm-dev mailing list