diff options
author | m.hayes <m.hayes@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-01-01 00:03:17 +0000 |
---|---|---|
committer | m.hayes <m.hayes@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-01-01 00:03:17 +0000 |
commit | df3b4a51c4b969cadc5999249f1285ab4df163ef (patch) | |
tree | a50a0e17ce6f5e07b22d95be7aca07995b403fa4 /gcc/loop.h | |
parent | 1fe6de19eca02e39a5febb5b99592a242d2a4110 (diff) | |
download | gcc-df3b4a51c4b969cadc5999249f1285ab4df163ef.tar.gz |
* loop.h (struct loop_movables): New.
(LOOP_MOVABLES): New.
(struct loop_info): Add movables field.
* loop.c (struct movables): Delete. Replace all uses
with struct loop_movables.
(the_movables): Delete. Replace all uses with movables
field in loop_info.
(loop_movables_add, loop_movables_free): New functions.
(scan_loop): Use xmalloc instead of alloca for movables.
Call loop_movables_free.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38573 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/loop.h')
-rw-r--r-- | gcc/loop.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/gcc/loop.h b/gcc/loop.h index a1aaf82e099..441d3a5b58d 100644 --- a/gcc/loop.h +++ b/gcc/loop.h @@ -28,6 +28,9 @@ Boston, MA 02111-1307, USA. */ /* Get the loop info pointer of a loop. */ #define LOOP_INFO(LOOP) ((struct loop_info *) (LOOP)->aux) +/* Get a pointer to the loop movables structure. */ +#define LOOP_MOVABLES(LOOP) (&LOOP_INFO (loop)->movables) + /* Get a pointer to the loop registers structure. */ #define LOOP_REGS(LOOP) (&LOOP_INFO (loop)->regs) @@ -236,12 +239,28 @@ struct loop_regs int multiple_uses; }; + +struct loop_movables +{ + /* Head of movable chain. */ + struct movable *head; + /* Last movable in chain. */ + struct movable *last; + /* Number of movables in the loop. */ + int num; +}; + + /* Information pertaining to a loop. */ struct loop_info { /* Nonzero if there is a subroutine call in the current loop. */ int has_call; + /* Nonzero if there is a libcall in the current loop. */ + int has_libcall; + /* Nonzero if there is a non constant call in the current loop. */ + int has_nonconst_call; /* Nonzero if there is a volatile memory reference in the current loop. */ int has_volatile; @@ -304,6 +323,8 @@ struct loop_info int num_mem_sets; /* The insn where the first of these was found. */ rtx first_loop_store_insn; + /* The chain of movable insns in loop. */ + struct loop_movables movables; /* The registers used the in loop. */ struct loop_regs regs; /* The induction variable information in loop. */ |