On Sun, Feb 15, 2015 at 7:35 PM, Segher Boessenkool <seg...@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
pr64818-combine-user-specified-register.patch-4
Description: Binary data