This is the mail archive of the
mailing list for the GCC project.
Re: RTL Optimisations
- From: Georg-Johann Lay <avr at gjlay dot de>
- To: Jeff Law <law at redhat dot com>
- Cc: Umesh Kalappa <umesh dot kalappa0 at gmail dot com>, "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>
- Date: Wed, 26 Mar 2014 15:12:31 +0100
- Subject: Re: RTL Optimisations
- Authentication-results: sourceware.org; auth=none
- References: <CAGfacvTrX0S2W-HeLQtp2a-ECR6OhjmL-T8nL64egVB5FfOjOg at mail dot gmail dot com> <5331766A dot 9050706 at redhat dot com>
Am 03/25/2014 01:28 PM, schrieb Jeff Law:
On 03/25/14 06:23, Umesh Kalappa wrote:
The GCC source reference 4.8.1 will synthesized some of the double
word operations(SI mode) like add /sub in the below case from the word
size (HI) patterns,
expand_binop_directly function in the optabs.c.
/* These can be done a word at a time by propagating carries. */
1949 if ((binoptab == add_optab || binoptab == sub_optab)
1950 && mclass == MODE_INT
1951 && GET_MODE_SIZE (mode) >= 2 * UNITS_PER_WORD
1952 && optab_handler (binoptab, word_mode) != CODE_FOR_nothing)
Current private target port will hash the above conditions ,hence
compiler will synthesizes the double word operation w.r.t word
We would like prevent this optimisations ,The reason for the same is
we do have the some optimised intrinsic functions ,which is coded in
assemble and we want compiler to emit the intrinsic call to these
routines instead of synthesizes the double word operations.
Anyone in the group can shed some lights here will be appreciated .
Write an expander/pattern which calls your intrinsics.
I don't think this is a good and very practical approach.
Presumably it's just a flaw in the target RTX cost model.