| Bug #8947 | Intel icc 8.1 EM64T compile problems - mi_search.c and inlining | ||
|---|---|---|---|
| Submitted: | 4 Mar 2005 14:24 | Modified: | 6 May 2005 11:57 |
| Reporter: | Kent Boortz | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Compiling | Severity: | S3 (Non-critical) |
| Version: | 4.0.24-pre | OS: | Linux (Red Hat Advanced Server 3 x86_64) |
| Assigned to: | Lenz Grimmer | CPU Architecture: | Any |
[4 Mar 2005 14:31]
Kent Boortz
Preprocessed and compressed mi_search.c
Attachment: mi_search.E.c.gz (application/x-gzip, text), 45.63 KiB.
[4 Mar 2005 15:28]
Kent Boortz
Forgot some details about the environment LD_LIBRARY_PATH=/opt/intel_cce_80/lib PATH=/home/mysqldev/nocona-icc-glibc23/bin:/opt/intel_cce_80/bin:/usr/local/bin:/bin:/usr/bin
[11 Apr 2005 17:06]
Lenz Grimmer
Still seems to happen with the latest update: [lgrimmer@nocona lgrimmer]$ icc -V Intel(R) C Compiler for Intel(R) EM64T-based applications, Version 8.1 Build 20050316 Package ID: l_cce_pc_8.1.026 Copyright (C) 1985-2005 Intel Corporation. All rights reserved. [lgrimmer@nocona lgrimmer]$ icc -ip -c mi_search.E.c /tmp/icc9sVTT9as_: Assembler messages: /tmp/icc9sVTT9as_:1320: Error: suffix or operands invalid for `cmp'
[6 May 2005 11:57]
Lenz Grimmer
Compiling MySQL on EM64T works fine with ICC 8.1 l_cce_pc_8.1.027 - closing this one for now.

Description: % icc -V Intel(R) C Compiler for Intel(R) EM64T-based applications, Version 8.1 Build 20050203 Package ID: l_cce_pc_8.1.025 % uname -a Linux nocona.mysql.com 2.4.21-15.EL #1 Thu Apr 22 00:20:14 EDT 2004 x86_64 x86_64 x86_64 GNU/Linux Compiling the attached stand alone C file attached fails with "-ip" optimization. The error message is /tmp/icce5bcUSas_: Assembler messages: /tmp/icce5bcUSas_:1320: Error: suffix or operands invalid for `cmp' Looks like an optimizer bug. Rearrang/removing things in this part of the source { uint length=keyseg->length; if (piks && (flag=compare_bin(a,length,b,length, (my_bool) ((nextflag & SEARCH_PREFIX) && next_key_length <= 0)))) return ((keyseg->flag & HA_REVERSE_SORT) ? -flag : flag); a+=length; b+=length; } will affect if the compile fails or not. But no clear pattern to me. How to repeat: Download the attached C source and compile using % icc -ip -c mi_search.E.c It will compile using % icc -ip -ip_no_inlining -c mi_search.E.c