[PATCH PR94442] [AArch64] Redundant ldp/stp instructions emitted at -O3
xiezhiheng
xiezhiheng@huawei.com
Mon Aug 17 08:05:41 GMT 2020
> -----Original Message-----
> From: Richard Sandiford [mailto:richard.sandiford@arm.com]
> Sent: Wednesday, August 5, 2020 12:26 AM
> To: xiezhiheng <xiezhiheng@huawei.com>
> Cc: Richard Biener <richard.guenther@gmail.com>; gcc-patches@gcc.gnu.org
> Subject: Re: [PATCH PR94442] [AArch64] Redundant ldp/stp instructions
> emitted at -O3
>
> xiezhiheng <xiezhiheng@huawei.com> writes:
> >> > Sorry, I should have used it. And I prepare a patch to use
> FLOAT_MODE_P
> >> > macro and add a flag FLAG_SUPPRESS_FP_EXCEPTIONS to suppress
> >> > FLAG_RAISE_FP_EXCEPTIONS for certain intrinsics in future.
> >>
> >> The same thing is true for reading FPCR as well, so I think the flag
> >> should suppress the FLOAT_MODE_P check, instead of fixing up the flags
> >> afterwards.
> >>
> >> I'm struggling to think of a good name though. How about adding
> >> FLAG_AUTO_FP and making the FLOAT_MODE_P check dependent on
> >> FLAG_AUTO_FP
> >> being set?
> >>
> >> We could leave FLAG_AUTO_FP out of FLAG_ALL, since FLAG_ALL already
> >> includes FLAG_FP. Including it in FLAG_ALL wouldn't do no any harm
> >> though.
> >
> > I could not think of a better name either. So I choose to use
> FLAG_AUTO_FP
> > to control the check of FLOAT_MODE_P finally.
> >
> > Bootstrapped and tested on aarch64 Linux platform.
>
> Thanks, pushed to master.
>
> Richard
I add FLAGS for part of intrinsics in aarch64-simd-builtins.def first for a try,
including all the add/sub arithmetic intrinsics.
Something like faddp intrinsic which only handles floating-point operations,
both FP and NONE flags are suitable for it because FLAG_FP will be added
later if the intrinsic handles floating-point operations. And I prefer FP since
it would be more clear.
But for qadd intrinsics, they would modify FPSR register which is a scenario
I missed before. And I consider to add an additional flag FLAG_WRITE_FPSR
to represent it.
Bootstrapped and tested on aarch64 Linux platform.
Have any suggestions?
Thanks,
XieZhiheng
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9cf1f9733e7..cde50c54d9e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2020-08-17 Zhiheng Xie <xiezhiheng@huawei.com>
+
+ * config/aarch64/aarch64-builtins.c (aarch64_modifies_global_state_p):
+ Add flag FLAG_WRITE_FPSR to control attribtues.
+ * config/aarch64/aarch64-simd-builtins.def: Add proper FLAGS
+ for intrinsic functions.
+
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pr94442-v1.patch
Type: application/octet-stream
Size: 7727 bytes
Desc: pr94442-v1.patch
URL: <https://gcc.gnu.org/pipermail/gcc-patches/attachments/20200817/95230451/attachment.obj>
More information about the Gcc-patches
mailing list