Bug 111270 - gcc/config/i386/i386-options.cc:3039:8: warning: duplicated ‘if ’ condition [-Wduplicated-cond]
Summary: gcc/config/i386/i386-options.cc:3039:8: warning: duplicated ‘if ’ condition [...
Status: UNCONFIRMED
Alias: None
Product: gcc
Classification: Unclassified
Component: target (show other bugs)
Version: 14.0
: P3 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-09-01 14:54 UTC by David Binderman
Modified: 2023-09-12 10:43 UTC (History)
2 users (show)

See Also:
Host:
Target: x86_64-*-*
Build:
Known to work:
Known to fail:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description David Binderman 2023-09-01 14:54:28 UTC
Source code is

  if (ix86_tune_features [X86_TUNE_AVOID_256FMA_CHAINS])
    SET_OPTION_IF_UNSET (opts, opts_set, param_avoid_fma_max_bits, 512);
  else if (ix86_tune_features [X86_TUNE_AVOID_256FMA_CHAINS])
    SET_OPTION_IF_UNSET (opts, opts_set, param_avoid_fma_max_bits, 256);
  else if (ix86_tune_features [X86_TUNE_AVOID_128FMA_CHAINS])
    SET_OPTION_IF_UNSET (opts, opts_set, param_avoid_fma_max_bits, 128);

Suggest code rework. 

I got this by adding -Wduplicated-cond to a build.

If someone were brave enough to add this warning flag to -Wall, then
other developers could benefit from a well hidden but useful flag.
Comment 1 David Binderman 2023-09-01 15:05:52 UTC
git blame says:

^d4ba3b369 (Jonathan Wakely 2022-11-01 09:48:41 +0000 3037)   if (ix86_tune_features [X86_TUNE_AVOID_256FMA_CHAINS])
eef81eefcd (Jan Hubicka     2022-12-22 10:55:46 +0100 3038)     SET_OPTION_IF_UNSET (opts, opts_set, param_avoid_fma_max_bits, 512);

Adding Jonathan for their best advice.
Comment 2 Jonathan Wakely 2023-09-01 20:43:20 UTC
This is nothing to do with me, g:d4ba3b369 doesn't touch that file at all, and git blame doesn't show that commit for me. Do you have a shallow clone maybe, and d4ba3b369 is simply the first commit in your history?
Comment 3 Jonathan Wakely 2023-09-01 20:44:26 UTC
The correct git blame output is:

105c2795b0d6 gcc/config/i386/i386-options.c  (Jan Hubicka          2019-07-23 09:35:18 +0000 3037)   if (ix86_tune_features [X86_TUNE_AVOID_256FMA_CHAINS])
eef81eefcdc2 gcc/config/i386/i386-options.cc (Jan Hubicka          2022-12-22 10:55:46 +0100 3038)     SET_OPTION_IF_UNSET (opts, opts_set, param_avoid_fma_max_bits, 512);
eef81eefcdc2 gcc/config/i386/i386-options.cc (Jan Hubicka          2022-12-22 10:55:46 +0100 3039)   else if (ix86_tune_features [X86_TUNE_AVOID_256FMA_CHAINS])
028d40925205 gcc/config/i386/i386-options.c  (Martin Liska         2019-11-12 11:08:40 +0100 3040)     SET_OPTION_IF_UNSET (opts, opts_set, param_avoid_fma_max_bits, 256);
105c2795b0d6 gcc/config/i386/i386-options.c  (Jan Hubicka          2019-07-23 09:35:18 +0000 3041)   else if (ix86_tune_features [X86_TUNE_AVOID_128FMA_CHAINS])
028d40925205 gcc/config/i386/i386-options.c  (Martin Liska         2019-11-12 11:08:40 +0100 3042)     SET_OPTION_IF_UNSET (opts, opts_set, param_avoid_fma_max_bits, 128);
Comment 4 David Binderman 2023-09-01 21:02:00 UTC
(In reply to Jonathan Wakely from comment #3)
> The correct git blame output is:
> 
> 105c2795b0d6 gcc/config/i386/i386-options.c  (Jan Hubicka         
> 2019-07-23 09:35:18 +0000 3037)   if (ix86_tune_features

Thanks for that. This bug looks like one for Jan, then.

My apologies for the lack of git knowledge. Despite multiple
attempts, I've never really reached a good understanding of it's
more subtle aspects.