Hi Mike, on 2021/12/3 上午8:51, Michael Meissner wrote: > On Mon, Nov 29, 2021 at 10:57:12AM -0600, Segher Boessenkool wrote: >> Why are there OPTION_MASKs for separate P10 fusion types here, as well as >> MASK_P10_FUSION? > > Well going back in time, before we used rs6000_isa_flags, we used the default > flag word for MASK arguments. Unfortunately, the default flag word is only > 32-bits, and we needed more mask bits, so we moved to rs6000_isa_flags, which > is HOST_WIDE_INT. > > Unfortunately, the options infrastructure used 'OPTION_MASK_<foo>' instead of > 'MASK_<foo>'. So we have a bunch of macros in rs6000.h that map 'MASK_<foo>' > to 'OPTION_MASK_<foo>'. > > We should clean this up and use 'OPTION_MASK_<foo>' everywhere, but so far it > hasn't percolated to the top as being important enough to do. > > As new options are added, people just clone the code and add new macros, even > though in theory nobody should be using MASK_P10_FUSION_<foo>. >
Thanks for the explanation on the history. Fortunately now for Power10 fusion, we have only one defined MASK_P10_FUSION but not the other MASK_P10_FUSION_<...>. As you explained, I will use OPTION_MASK_P10_FUSION and OPTION_MASK_P8_FUSION instead. BR, Kewen