diff options
Diffstat (limited to 'gcc/loop-invariant.c')
-rw-r--r-- | gcc/loop-invariant.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/gcc/loop-invariant.c b/gcc/loop-invariant.c index 384649d..6677307 100644 --- a/gcc/loop-invariant.c +++ b/gcc/loop-invariant.c @@ -18,9 +18,9 @@ along with GCC; see the file COPYING3. If not see <http://www.gnu.org/licenses/>. */ /* This implements the loop invariant motion pass. It is very simple - (no calls, libcalls, etc.). This should be sufficient to cleanup things - like address arithmetics -- other more complicated invariants should be - eliminated on tree level either in tree-ssa-loop-im.c or in tree-ssa-pre.c. + (no calls, no loads/stores, etc.). This should be sufficient to cleanup + things like address arithmetics -- other more complicated invariants should + be eliminated on GIMPLE either in tree-ssa-loop-im.c or in tree-ssa-pre.c. We proceed loop by loop -- it is simpler than trying to handle things globally and should not lose much. First we inspect all sets inside loop @@ -795,11 +795,6 @@ find_invariant_insn (rtx insn, bool always_reached, bool always_executed) bool simple = true; struct invariant *inv; - /* Until we get rid of LIBCALLS. */ - if (find_reg_note (insn, REG_RETVAL, NULL_RTX) - || find_reg_note (insn, REG_LIBCALL, NULL_RTX)) - return; - #ifdef HAVE_cc0 /* We can't move a CC0 setter without the user. */ if (sets_cc0_p (insn)) |