[Ping^1] [PATCH] [gcc, combine] PR46164: Don't combine the insns if a volatile register is contained.
Terry Guo
flameroc@gmail.com
Thu Feb 26 02:43:00 GMT 2015
On Tue, Feb 17, 2015 at 11:39 AM, Terry Guo <flameroc@gmail.com> wrote:
> On Sun, Feb 15, 2015 at 7:35 PM, Segher Boessenkool
> <segher@kernel.crashing.org> wrote:
>> Hi Terry,
>>
>> I still think this is stage1 material.
>>
>>> + /* Don't combine if dest contains a user specified register and i3 contains
>>> + ASM_OPERANDS, because the user specified register (same with dest) in i3
>>> + would be replaced by the src of insn which might be different with
>>> + the user's expectation. */
>>
>> "Do not eliminate a register asm in an asm input" or similar? Text
>> explaining why REG_USERVAR_P && HARD_REGISTER_P works here would be
>> good to have, too.
>>
>>> + if (REG_P (dest) && REG_USERVAR_P (dest) && HARD_REGISTER_P (dest)
>>> + && (GET_CODE (PATTERN (i3)) == SET
>>> + && GET_CODE (SET_SRC (PATTERN (i3))) == ASM_OPERANDS))
>>> + return 0;
>>
>> That works only for asms with exactly one output. You want
>> extract_asm_operands.
>>
>>
>> Segher
>
> Thanks Segher. Patch is updated per you suggestion. Is this one ok for stage 1?
>
> BR,
> Terry
Hi Segher,
Any comments on the updated patch, is it OK?
BR,
Terry
More information about the Gcc-patches
mailing list