RTL Optimisations
Georg-Johann Lay
avr@gjlay.de
Wed Mar 26 14:12:00 GMT 2014
Am 03/25/2014 01:28 PM, schrieb Jeff Law:
> On 03/25/14 06:23, Umesh Kalappa wrote:
>> Dear All,
>>
>> 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,
>>
>> (code snippet)
>> 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)
>> (code snippet)
>>
>> Current private target port will hash the above conditions ,hence
>> compiler will synthesizes the double word operation w.r.t word
>> operations .
>>
>> 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.
Johann
More information about the Gcc
mailing list