mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-21 21:22:38 +08:00
Add --param max-unrolled-insns=<n> support
From-SVN: r50787
This commit is contained in:
parent
1224938570
commit
03e9dbc91c
@ -1,3 +1,18 @@
|
||||
2002-03-14 Michael Meissner <meissner@redhat.com>
|
||||
|
||||
* params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
|
||||
100, allowing MAX_UNROLLED_INSNS to be overridden.
|
||||
|
||||
* params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
|
||||
--param.
|
||||
|
||||
* unroll.c (params.h): Include.
|
||||
(MAX_UNROLLED_INSNS): Delete, now in params.h.
|
||||
|
||||
* doc/invoke.texi (--param max-unroll-insns): Document.
|
||||
|
||||
* Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
|
||||
|
||||
2002-03-14 Richard Earnshaw <rearnsha@arm.com>
|
||||
|
||||
* arm.md: Fix warnings about constraints in peepholes and splits.
|
||||
|
@ -1483,7 +1483,7 @@ doloop.o : doloop.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) flags.h $(LOOP_H) \
|
||||
$(EXPR_H) hard-reg-set.h $(BASIC_BLOCK_H) $(TM_P_H) toplev.h
|
||||
unroll.o : unroll.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) insn-config.h function.h \
|
||||
$(INTEGRATE_H) $(REGS_H) $(RECOG_H) flags.h $(EXPR_H) $(LOOP_H) toplev.h \
|
||||
hard-reg-set.h varray.h $(BASIC_BLOCK_H) $(TM_P_H) $(PREDICT_H)
|
||||
hard-reg-set.h varray.h $(BASIC_BLOCK_H) $(TM_P_H) $(PREDICT_H) $(PARAMS_H)
|
||||
flow.o : flow.c $(CONFIG_H) $(SYSTEM_H) $(RTL_H) $(TREE_H) flags.h insn-config.h \
|
||||
$(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h output.h toplev.h $(RECOG_H) \
|
||||
function.h except.h $(EXPR_H) ssa.h $(GGC_H) $(TM_P_H)
|
||||
|
@ -3851,6 +3851,11 @@ If an function contains more than this many instructions, it
|
||||
will not be inlined. This option is precisely equivalent to
|
||||
@option{-finline-limit}.
|
||||
|
||||
@item max-unrolled-insns
|
||||
The maximum number of instructions that a loop should have if that loop
|
||||
is unrolled, and if the loop is unrolled, it determines how many times
|
||||
the loop code is unrolled.
|
||||
|
||||
@end table
|
||||
@end table
|
||||
|
||||
|
@ -89,6 +89,13 @@ DEFPARAM(PARAM_MAX_GCSE_PASSES,
|
||||
"max-gcse-passes",
|
||||
"The maximum number of passes to make when doing GCSE",
|
||||
1)
|
||||
|
||||
/* This parameter limits the number of insns in a loop that will be unrolled,
|
||||
and by how much the loop is unrolled. */
|
||||
DEFPARAM(PARAM_MAX_UNROLLED_INSNS,
|
||||
"max-unrolled-insns",
|
||||
"The maximum number of instructions to consider to unroll in a loop",
|
||||
100)
|
||||
/*
|
||||
Local variables:
|
||||
mode:c
|
||||
|
@ -96,4 +96,6 @@ typedef enum compiler_param
|
||||
((size_t) PARAM_VALUE (PARAM_MAX_GCSE_MEMORY))
|
||||
#define MAX_GCSE_PASSES \
|
||||
PARAM_VALUE (PARAM_MAX_GCSE_PASSES)
|
||||
#define MAX_UNROLLED_INSNS \
|
||||
PARAM_VALUE (PARAM_MAX_UNROLLED_INSNS)
|
||||
#endif /* ! GCC_PARAMS_H */
|
||||
|
@ -147,6 +147,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
|
||||
#include "hard-reg-set.h"
|
||||
#include "basic-block.h"
|
||||
#include "predict.h"
|
||||
#include "params.h"
|
||||
|
||||
/* The prime factors looked for when trying to unroll a loop by some
|
||||
number which is modulo the total number of iterations. Just checking
|
||||
@ -169,13 +170,6 @@ enum unroll_types
|
||||
UNROLL_NAIVE
|
||||
};
|
||||
|
||||
/* This controls which loops are unrolled, and by how much we unroll
|
||||
them. */
|
||||
|
||||
#ifndef MAX_UNROLLED_INSNS
|
||||
#define MAX_UNROLLED_INSNS 100
|
||||
#endif
|
||||
|
||||
/* Indexed by register number, if non-zero, then it contains a pointer
|
||||
to a struct induction for a DEST_REG giv which has been combined with
|
||||
one of more address givs. This is needed because whenever such a DEST_REG
|
||||
|
Loading…
Reference in New Issue
Block a user