final.c (shorten_branches): Don't add an alignment for loops that have no label inside.

* final.c (shorten_branches): Don't add an alignment for loops
	that have no label inside.

From-SVN: r28517
This commit is contained in:
J"orn Rennecke 1999-08-04 22:13:14 +00:00 committed by Joern Rennecke
parent 45fa5f9f14
commit edd6ede777
2 changed files with 28 additions and 9 deletions

View File

@ -1,3 +1,8 @@
Wed Aug 4 20:45:04 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
* final.c (shorten_branches): Don't add an alignment for loops
that have no label inside.
Wed Aug 4 16:39:24 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* builtins.c (expand_builtin_memcmp, expand_builtin_strcmp): Wrap

View File

@ -1113,9 +1113,22 @@ shorten_branches (first)
&& NOTE_LINE_NUMBER (insn) == NOTE_INSN_LOOP_BEG)
{
rtx label;
int nest = 0;
/* Search for the label that starts the loop.
Don't skip past the end of the loop, since that could
lead to putting an alignment where it does not belong.
However, a label after a nested (non-)loop would be OK. */
for (label = insn; label; label = NEXT_INSN (label))
if (GET_CODE (label) == CODE_LABEL)
{
if (GET_CODE (label) == NOTE
&& NOTE_LINE_NUMBER (label) == NOTE_INSN_LOOP_BEG)
nest++;
else if (GET_CODE (label) == NOTE
&& NOTE_LINE_NUMBER (label) == NOTE_INSN_LOOP_END
&& --nest == 0)
break;
else if (GET_CODE (label) == CODE_LABEL)
{
log = LOOP_ALIGN (insn);
if (max_log < log)
@ -1126,6 +1139,7 @@ shorten_branches (first)
break;
}
}
}
else
continue;
}