diff options
author | wilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4> | 1998-05-11 18:11:22 +0000 |
---|---|---|
committer | wilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4> | 1998-05-11 18:11:22 +0000 |
commit | 41b0d1e735534e07db6b1498208af6776788e186 (patch) | |
tree | dd3fdadca628c1bf3fe5e14f12741cfc87ad4b06 /gcc/regmove.c | |
parent | c856a3d8d8aa40105b000e345f96662007d67ff0 (diff) | |
download | gcc-41b0d1e735534e07db6b1498208af6776788e186.tar.gz |
Add missing comments pointed out by Andreas Schwab.
* regmove.c (fixup_match_2, find_matches, regmove_profitable):
Add explanatory comments.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19677 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/regmove.c')
-rw-r--r-- | gcc/regmove.c | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/gcc/regmove.c b/gcc/regmove.c index 81a987035f1..75798b043e9 100644 --- a/gcc/regmove.c +++ b/gcc/regmove.c @@ -570,8 +570,24 @@ reg_is_remote_constant_p (reg, insn, first) return 0; } +/* INSN is adding a CONST_INT to a REG. We search backwards looking for + another add immediate instruction with the same source and dest registers, + and if we find one, we change INSN to an increment, and return 1. If + no changes are made, we return 0. + + This changes + (set (reg100) (plus reg1 offset1)) + ... + (set (reg100) (plus reg1 offset2)) + to + (set (reg100) (plus reg1 offset1)) + ... + (set (reg100) (plus reg100 offset2-offset1)) */ + +/* ??? What does this comment mean? */ /* cse disrupts preincrement / postdecrement squences when it finds a hard register as ultimate source, like the frame pointer. */ + int fixup_match_2 (insn, dst, src, offset, regmove_dump_file) rtx insn, dst, src, offset; @@ -1143,6 +1159,11 @@ regmove_optimize (f, nregs, regmove_dump_file) #endif /* REGISTER_CONSTRAINTS */ } +/* Returns the INSN_CODE for INSN if its pattern has matching constraints for + any operand. Returns -1 if INSN can't be recognized, or if the alternative + can't be determined. + + Initialize the info in MATCHP based on the constraints. */ static int find_matches (insn, matchp) @@ -1711,7 +1732,10 @@ stable_but_for_p (x, src, dst) } } -/* Test if regmove seems profitable for this target. */ +/* Test if regmove seems profitable for this target. Regmove is useful only + if some common patterns are two address, i.e. require matching constraints, + so we check that condition here. */ + int regmove_profitable_p () { |