Opened 8 years ago

Closed 8 years ago

#6350 closed defect (fixed)

Optimization versus broken versions of Intel compiler

Reported by: werdna Owned by: warmerdam
Priority: normal Milestone: 2.0.3
Component: default Version: unspecified
Severity: normal Keywords:
Cc:

Description

This is a follow up to a discussion in the email list last year, which started at http://lists.osgeo.org/pipermail/gdal-dev/2015-November/043025.html (some emails, including mine, in the discussion have not made it onto the list).

I have access to a machine which has many versions and subversions of the intel compiler from v9 to v15. Compiler versions 9.1.043, 9.1.046, 10.0.017, 10.0.026 and 10.1.015 fail before attempting to compile thinplatespline.cpp (on gdalmediancut.cpp). Versions 10.1.022 and all the v11 and v13 versions I have (11.0.074, 11.0.081, 11.0.083, 1 1.1.046, 11.1.056, 11.1.059, 11.1.064, 11.1.069, 11.1.072 and 11.1.073 13.0.0.079, 13.0.1. 117, 13.1.0.146 and 13.1.2.183) fail to compile thinplatespline.cpp. Compilation succeeds with all version 12 and 15 versions I have (12.0.0.084, 12.0.1.107, 1 2.0.2.137, 12.0.4.191, 12.0.5.220, 12.0.7.256, 12.1.10.319, 12.1.11.339, 12.1.8.273, 12.1. 9.293 and 15.0.0.090, 15.0.1.133, 15.0.5.223). Version 14.0.3.174 succeeds, but all other v14 versions (all older 14.0.0.080, 14.0.1.106 and 14.0.2.144) I have access to fail.

There are two compiler predefined macros related to the intel compiler version: INTEL_CO MPILER and INTEL_COMPILER_BUILD_DATE . The Intel compilers also also define GNUC and x86_64 .

Version INTEL_COMPILER INTEL_COMPILER_BUILD_DATEOK?
9.1.043 910 20060818 gdalmediancut.lo fails
9.1.046 910 20070109 gdalmediancut.lo fails
10.0.017 1000 20070307 gdalmediancut.lo fails
10.0.026 1000 20070809 gdalmediancut.lo fails
10.1.015 1010 20080312 gdalmediancut.lo fails
10.1.022 1010 20090203 thinplatespline.lo fails
11.0.074 1100 20081105 thinplatespline.lo fails
11.0.081 1100 20090131 thinplatespline.lo fails
11.0.083 1100 20090318 thinplatespline.lo fails
11.1.046 1110 20090630 thinplatespline.lo fails
11.1.056 1110 20090827 thinplatespline.lo fails
11.1.059 1110 20091012 thinplatespline.lo fails
11.1.064 1110 20091130 thinplatespline.lo fails
11.1.069 1110 20100203 thinplatespline.lo fails
11.1.072 1110 20100414 thinplatespline.lo fails
11.1.073 1110 20100806 thinplatespline.lo fails
-- -- -- --
12.0.0.084 1200 20101006 compiles
12.0.1.107 1200 20101116 compiles
12.0.2.137 1200 20110112 compiles
12.0.4.191 1200 20110427 compiles
12.0.5.220 1200 20110719 compiles
12.0.7.256 1210 20111011 compiles
12.1.10.319 1210 20120410 compiles
12.1.11.339 1210 20120612 compiles
12.1.8.273 1210 20111128 compiles
12.1.9.293 1210 20120212 compiles
-- -- -- --
13.0.0.079 1300 20120731 thinplatespline.lo fails
13.0.1.117 1300 20121010 thinplatespline.lo fails
13.1.0.146 1310 20130121 thinplatespline.lo fails
13.1.2.183 1310 20130514 thinplatespline.lo fails
14.0.0.080 1400 20130728 thinplatespline.lo fails
14.0.1.106 1400 20131008 thinplatespline.lo fails
14.0.2.144 1400 20140120 thinplatespline.lo fails
-- -- -- --
14.0.3.174 1400 20140422 compiles
15.0.0.090 1500 20140723 compiles
15.0.1.133 1500 20141023 compiles
15.0.5.223 1500 20150805 compiles

The attached patch enables all my versions of the compiler to compile thinplatespline.c, and uses the optimization where posible - except for v14.0.3.174 where it uses the unoptimized version (this could be fixed with further work if necessary).

Attachments (1)

gdal-thinplate.cpp-bug.patch (686 bytes ) - added by werdna 8 years ago.
Proposed patch

Download all attachments as: .zip

Change History (2)

by werdna, 8 years ago

Proposed patch

comment:1 by Even Rouault, 8 years ago

Milestone: 2.0.3
Resolution: fixed
Status: newclosed

I've just changed the name of the #ifdef to avoid reserved names (leading double underscore)

trunk r33364, branches/2.0 r33365 "thinplatespline.cpp: avoid using optimized version of VizGeorefSpline2DBase_func4() with ICC versions that fail on it (#6350)"

Note: See TracTickets for help on using tickets.