X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=gcc%2Fhw-doloop.h;h=dfa6a24a32e23965d3f9c83ebed04ceff3fed477;hb=99dee82307f1e163e150c9c810452979994047ce;hp=d239cb6ef0a0399fa43d07cc5054b8c24171b87b;hpb=d1e082c2c2c7382be0107f7d0b5003f544572865;p=thirdparty%2Fgcc.git diff --git a/gcc/hw-doloop.h b/gcc/hw-doloop.h index d239cb6ef0a0..dfa6a24a32e2 100644 --- a/gcc/hw-doloop.h +++ b/gcc/hw-doloop.h @@ -1,6 +1,6 @@ /* Code to analyze doloop loops in order for targets to perform late optimizations converting doloops to other forms of hardware loops. - Copyright (C) 2011-2013 Free Software Foundation, Inc. + Copyright (C) 2011-2021 Free Software Foundation, Inc. This file is part of GCC. @@ -18,6 +18,9 @@ You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see . */ +#ifndef GCC_HW_DOLOOP_H +#define GCC_HW_DOLOOP_H + /* We need to keep a vector of loops */ typedef struct hwloop_info_d *hwloop_info; @@ -66,16 +69,16 @@ struct GTY (()) hwloop_info_d basic_block successor; /* The last instruction in the tail. */ - rtx last_insn; + rtx_insn *last_insn; /* The loop_end insn. */ - rtx loop_end; + rtx_insn *loop_end; /* The iteration register. */ rtx iter_reg; /* The new label placed at the beginning of the loop. */ - rtx start_label; + rtx_insn *start_label; /* The new label placed at the end of the loop. */ rtx end_label; @@ -140,7 +143,7 @@ struct hw_doloop_hooks /* Examine INSN. If it is a suitable doloop_end pattern, return the iteration register, which should be a single hard register. Otherwise, return NULL_RTX. */ - rtx (*end_pattern_reg) (rtx insn); + rtx (*end_pattern_reg) (rtx_insn *insn); /* Optimize LOOP. The target should perform any additional analysis (e.g. checking that the loop isn't too long), and then perform its transformations. Return true if successful, false if the @@ -153,3 +156,5 @@ struct hw_doloop_hooks }; extern void reorg_loops (bool, struct hw_doloop_hooks *); + +#endif /* GCC_HW_DOLOOP_H */