| Summary: | LTO accumulates CPU requirements from all input objects (reopen) | ||
|---|---|---|---|
| Product: | gcc | Reporter: | andysem |
| Component: | target | Assignee: | Not yet assigned to anyone <unassigned> |
| Status: | NEW --- | ||
| Severity: | normal | CC: | hubicka, rguenth, tulipawn, uros |
| Priority: | P3 | Keywords: | lto |
| Version: | 5.4.0 | ||
| Target Milestone: | --- | ||
| Host: | Target: | x86_64-*-*, i?86-*-* | |
| Build: | Known to work: | ||
| Known to fail: | 5.4.0, 6.2.0 | Last reconfirmed: | 2016-10-05 00:00:00 |
| Attachments: | The testcase that miscompiles with gcc 5.4 | ||
|
Description
andysem
2016-10-04 17:43:25 UTC
the lto_opts section still contains -mavx and -msse2 for the respective objects
which are passed down at link time. It looks like the DECL_FUNCTION_SPECIFIC_TARGET node free-lang-data (is supposed to) installs
doesn't "undo" -mavx fully. I suppose the ix86_sse2avx flag is to handle this.
Confirmed for GCC 5 and GCC 6.
Breakpoint 1, ix86_function_specific_restore (opts=0x2440b80 <global_options>,
ptr=0x7ffff6a6cbd0)
at /space/rguenther/src/svn/gcc-6-branch/gcc/config/i386/i386.c:5748
warning: Source file is more recent than executable.
5748 int i;
Missing separate debuginfos, use: zypper install libgmp10-debuginfo-6.0.0-71.1.x86_64 libisl15-debuginfo-0.16.1-0.x86_64 libmpc3-debuginfo-1.0.2-38.2.x86_64 libmpfr4-debuginfo-3.1.2-3.1.2.x86_64
(gdb) p opts->x_ix86_sse2avx
$1 = 0
(gdb) p ptr->x_ix86_sse2avx
$2 = 0
(gdb) p cfun
$3 = (function *) 0x7ffff6a702a0
(gdb) p debug_generic_expr (cfun->decl)
my_simd_func_avx
so I may be mistaken. Not sure how saving/restoring of flags like -mavx or -msse2 is supposed to work.
|