This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Thanks, DJ. I tought about a solution. I think that insn changing stack pointer is more preferable than one using it (because in the second case there is bigger probability that insn which is not really a part of call sequence will be a part of the schedule group). So the patch should insert the insn changing the stack pointer into the schedule group.
I could write the patch and submit it on Friday. In this case somebody should review it. If you prefer to write the patch yourself, I review and approve it as soon as I get it. What do you prefer?
My original patch only checked for stack adjustments, not any stack usage. I've tweaked it a bit to be clearer what it's trying to test for:
Index: sched-deps.c =================================================================== RCS file: /cvs/gcc/gcc/gcc/sched-deps.c,v retrieving revision 1.68 diff -p -C2 -r1.68 sched-deps.c *** sched-deps.c 3 Feb 2004 05:39:53 -0000 1.68 --- sched-deps.c 26 Feb 2004 06:20:32 -0000 *************** sched_analyze_insn (struct deps *deps, r *** 1128,1132 **** if (GET_CODE (tmp) == SUBREG) tmp = SUBREG_REG (tmp); ! if (GET_CODE (tmp) == REG) src_regno = REGNO (tmp); else --- 1128,1137 ---- if (GET_CODE (tmp) == SUBREG) tmp = SUBREG_REG (tmp); ! if (GET_CODE (tmp) == PLUS ! && GET_CODE (XEXP (tmp, 0)) == REG ! && REGNO (XEXP (tmp, 0)) == STACK_POINTER_REGNUM ! && dest_regno == STACK_POINTER_REGNUM) ! src_regno = STACK_POINTER_REGNUM; ! else if (GET_CODE (tmp) == REG) src_regno = REGNO (tmp); else
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |