On Wed, 2023-08-30 at 09:58 +0800, Yang Yujie wrote: > LoongArch processors may not support memory accesses without natural > alignments. Building libraries with -mstrict-align may help with > toolchain binary compatiblity and performance on these implementations > (e.g. Loongson 2K1000LA). > > No significant performance degredation is observed on current mainstream > LoongArch processors when the option is enabled. > > gcc/ChangeLog: > > * config.gcc: use -mstrict-align for building libraries > if --with-strict-align-lib is given.
Isn't this equivalent to --with-default-multilib=mno-strict-align now? And I still believe the easiest way for 2K1000LA is adding -march=la264 support so the user can simply configure with --with-arch=la264. > --- > gcc/config.gcc | 16 +++++++++++++++- > 1 file changed, 15 insertions(+), 1 deletion(-) > > diff --git a/gcc/config.gcc b/gcc/config.gcc > index 4fae672a3b7..ed70fa63268 100644 > --- a/gcc/config.gcc > +++ b/gcc/config.gcc > @@ -4892,7 +4892,7 @@ case "${target}" in > ;; > > loongarch*-*) > - supported_defaults="abi arch tune fpu simd multilib- > default" > + supported_defaults="abi arch tune fpu simd multilib- > default strict-align-lib" > > # Local variables > unset \ > @@ -5089,6 +5089,17 @@ case "${target}" in > ;; > esac > > + # Build libraries with -mstrict-align if --with- > strict-align-lib is given. > + case ${with_strict_align_lib} in > + yes) strict_align_opt="/mstrict-align" ;; > + ""|no) ;; > + *) > + echo "Unknown option: --with-strict-align- > lib=${with_strict_align_lib}" 1>&2 > + exit 1 > + ;; > + esac > + > + > # Handle --with-multilib-default > if echo "${with_multilib_default}" \ > | grep -E -e '[[:space:]]' -e '//' -e '/$' -e '^/' > > /dev/null 2>&1; then > @@ -5250,6 +5261,9 @@ case "${target}" in > ;; > esac > > + # Use mstrict-align for building libraries if > --with-strict-align-lib is given. > + loongarch_multilib_list_make="${loongarch_mult > ilib_list_make}${strict_align_opt}" > + > # Check for repeated configuration of the same > multilib variant. > if echo "${elem_abi_base}/${elem_abi_ext}" \ > | grep -E "^(${all_abis%|})$" >/dev/null > 2>&1; then -- Xi Ruoyao <xry...@xry111.site> School of Aerospace Science and Technology, Xidian University