summaryrefslogtreecommitdiff
path: root/gcc/loop.h
diff options
context:
space:
mode:
authorm.hayes <m.hayes@138bc75d-0d04-0410-961f-82ee72b054a4>2001-01-01 00:03:17 +0000
committerm.hayes <m.hayes@138bc75d-0d04-0410-961f-82ee72b054a4>2001-01-01 00:03:17 +0000
commitdf3b4a51c4b969cadc5999249f1285ab4df163ef (patch)
treea50a0e17ce6f5e07b22d95be7aca07995b403fa4 /gcc/loop.h
parent1fe6de19eca02e39a5febb5b99592a242d2a4110 (diff)
downloadgcc-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.h21
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. */