This is the mail archive of the
mailing list for the GCC project.
Re: [RFC] type promotion pass
- From: Wilco Dijkstra <Wilco dot Dijkstra at arm dot com>
- To: "prathamesh dot kulkarni at linaro dot org" <prathamesh dot kulkarni at linaro dot org>
- Cc: "kugan dot vivekanandarajah at linaro dot org" <kugan dot vivekanandarajah at linaro dot org>, Richard Biener <richard dot guenther at gmail dot com>, "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>, nd <nd at arm dot com>
- Date: Fri, 15 Sep 2017 12:22:26 +0000
- Subject: Re: [RFC] type promotion pass
- Authentication-results: sourceware.org; auth=none
- Authentication-results: spf=none (sender IP is ) smtp.mailfrom=Wilco dot Dijkstra at arm dot com;
- Nodisclaimer: True
- Spamdiagnosticmetadata: NSPM
- Spamdiagnosticoutput: 1:99
I've tried out the latest version and it works really well. It built and ran SPEC2017 without any issues or regressions (I didn't do a detailed comparison which would mean multiple runs, however a single run showed performance is pretty much the same on INT and 0.1% faster on FP).
Codesize reduces in almost all cases (only xalancbmk increases by 600 bytes), sometimes by a huge amount. For example in gcc_r around 20% of all AND immediate instructions are removed, clear proof it removes many redundant zero/sign extensions.
So consider this a big +1 from me! GCC is behind other compilers with respect to this kind of optimization and it looks like this phase does a major catchup. Like I mentioned, it doesn't have to be 100% perfect, once it has been committed, we can fine tune it and add more optimizations.