On Wed, May 28, 2014 at 05:28:31PM -0400, Kai Tietz wrote: > Yes, I missed the plus-part. > > I am just running bootstrap with regression testing for altering predicate to: > > (define_predicate "sibcall_memory_operand" > (match_operand 0 "memory_operand") > { > op = XEXP (op, 0); > > if (GET_CODE (op) == CONST) > op = XEXP (op, 0); > if (GET_CODE (op) == PLUS && CONSTANT_P (XEXP (op, 0))) > op = XEXP (op, 1);
Why not get rid of all the above 4 lines and just keep: > return CONSTANT_P (op); ? CONST matches CONSTANT_P, and what is inside of CONST should be fine, and (plus (symbol_ref) (const_int)) not surrounded by CONST ir invalid. Jakub