Hardware, Software, and Toolchain optimisation at Arm. Principal engineer, GCC maintainer, Optimisation Team lead.
- User Since
- Apr 13 2016, 3:58 AM (270 w, 8 h)
Jan 19 2021
May 28 2020
Mar 9 2020
Update to also cover float16 as per David's request.
Feb 27 2020
Sep 6 2018
Apr 18 2018
Mar 26 2018
For what it is worth; this is the fix I would have suggested for the issue.
Mar 2 2018
Sorry, I should have caught this when we were reviewing this patch internally; this obviously leaves the lookups in:
v4_profile_ajax_getTopLevelCounters v4_profile_ajax_getCodeForFunction v4_profile_fwd2
Dec 18 2017
If this patch unconditionally defines _Float128, then I think it will conflict with the typedef for _Float128 for IEEE754 128-bit long double systems in glibc:
Nov 24 2017
I'm confused by the title and rationale for this change. I don't think this has anything to do with Armv8.2-A and is instead a feature of Armv8-A.
Oct 17 2017
Sep 4 2017
Thanks for this. I don't know LNT well enough to review the code, but the top-level summary makes sense to me.
Aug 14 2017
Aug 11 2017
Jul 11 2017
Hi Chris, this commit causes servers running from the wsgi script to fail. To reproduce:
Feb 22 2017
Jan 20 2017
The feature bits set match my (limited) understanding of the various ThunderX variants, and their implementation in GCC. From that perspective this patch looks good to me.
Jan 12 2017
Oct 18 2016
Sep 22 2016
Sep 20 2016
Aug 18 2016
Apr 26 2016
Thanks, that looks perfect now.
Apr 25 2016
It'd be good if James could have a final look, but I'm ok with the change.
Apr 18 2016
Sorry to have missed this before commit.
Apr 15 2016
Apr 14 2016
Decaying this to "w" or "r" would potentially pessimize code generation, and might well break use cases. The whole point of "X" is to prevent the compiler from having to reload an operand you don't actually care about using in the output assembly (a scratch, or in that blog post, a hidden dependency). As GCC isn't going to put any effort in to forcing the form of the operand, I'd expect most uses that actually try to print out an "X" constrained register to be using it as a shorthand for getting constants or labels out. There are normally more expressive constraints if that is what you need.