Mercurial > hg > CbC > CbC_gcc
comparison gcc/hw-doloop.c @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | 84e7813d76e9 |
children |
comparison
equal
deleted
inserted
replaced
131:84e7813d76e9 | 145:1830386684a0 |
---|---|
1 /* Code to analyze doloop loops in order for targets to perform late | 1 /* Code to analyze doloop loops in order for targets to perform late |
2 optimizations converting doloops to other forms of hardware loops. | 2 optimizations converting doloops to other forms of hardware loops. |
3 Copyright (C) 2011-2018 Free Software Foundation, Inc. | 3 Copyright (C) 2011-2020 Free Software Foundation, Inc. |
4 | 4 |
5 This file is part of GCC. | 5 This file is part of GCC. |
6 | 6 |
7 GCC is free software; you can redistribute it and/or modify it under | 7 GCC is free software; you can redistribute it and/or modify it under |
8 the terms of the GNU General Public License as published by the Free | 8 the terms of the GNU General Public License as published by the Free |
139 | 139 |
140 if (insn == loop->loop_end) | 140 if (insn == loop->loop_end) |
141 CLEAR_HARD_REG_BIT (set_this_insn, REGNO (loop->iter_reg)); | 141 CLEAR_HARD_REG_BIT (set_this_insn, REGNO (loop->iter_reg)); |
142 else if (reg_mentioned_p (loop->iter_reg, PATTERN (insn))) | 142 else if (reg_mentioned_p (loop->iter_reg, PATTERN (insn))) |
143 loop->iter_reg_used = true; | 143 loop->iter_reg_used = true; |
144 IOR_HARD_REG_SET (loop->regs_set_in_loop, set_this_insn); | 144 loop->regs_set_in_loop |= set_this_insn; |
145 } | 145 } |
146 } | 146 } |
147 } | 147 } |
148 | 148 |
149 /* Compute the incoming_dest and incoming_src members of LOOP by | 149 /* Compute the incoming_dest and incoming_src members of LOOP by |
579 | 579 |
580 if (!inner->bad && inner_depth < inner->depth) | 580 if (!inner->bad && inner_depth < inner->depth) |
581 inner_depth = inner->depth; | 581 inner_depth = inner->depth; |
582 /* The set of registers may be changed while optimizing the inner | 582 /* The set of registers may be changed while optimizing the inner |
583 loop. */ | 583 loop. */ |
584 IOR_HARD_REG_SET (loop->regs_set_in_loop, inner->regs_set_in_loop); | 584 loop->regs_set_in_loop |= inner->regs_set_in_loop; |
585 } | 585 } |
586 | 586 |
587 loop->depth = inner_depth + 1; | 587 loop->depth = inner_depth + 1; |
588 | 588 |
589 if (hooks->opt (loop)) | 589 if (hooks->opt (loop)) |