]> gcc.gnu.org Git - gcc.git/blame - gcc/params.h
Daily bump.
[gcc.git] / gcc / params.h
CommitLineData
c6d9a88c
MM
1/* params.h - Run-time parameters.
2 Copyright (C) 2001 Free Software Foundation, Inc.
3 Written by Mark Mitchell <mark@codesourcery.com>.
4
1322177d 5This file is part of GCC.
c6d9a88c 6
1322177d
LB
7GCC is free software; you can redistribute it and/or modify it under
8the terms of the GNU General Public License as published by the Free
9Software Foundation; either version 2, or (at your option) any later
10version.
c6d9a88c 11
1322177d
LB
12GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13WARRANTY; without even the implied warranty of MERCHANTABILITY or
14FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15for more details.
c6d9a88c
MM
16
17You should have received a copy of the GNU General Public License
1322177d
LB
18along with GCC; see the file COPYING. If not, write to the Free
19Software Foundation, 59 Temple Place - Suite 330, Boston, MA
2002111-1307, USA.
c6d9a88c
MM
21
22*/
23
24/* This module provides a means for setting integral parameters
25 dynamically. Instead of encoding magic numbers in various places,
26 use this module to organize all the magic numbers in a single
27 place. The values of the parameters can be set on the
28 command-line, thereby providing a way to control the amount of
29 effort spent on particular optimization passes, or otherwise tune
0443f602
JO
30 the behavior of the compiler.
31
32 Since their values can be set on the command-line, these parameters
33 should not be used for non-dynamic memory allocation. */
c6d9a88c 34
88657302
RH
35#ifndef GCC_PARAMS_H
36#define GCC_PARAMS_H
c6d9a88c
MM
37
38/* No parameter shall have this value. */
39
40#define INVALID_PARAM_VAL (-1)
41
42/* The information associated with each parameter. */
43
44typedef struct param_info
45{
46 /* The name used with the `--param <name>=<value>' switch to set this
47 value. */
8b60264b 48 const char *const option;
c6d9a88c
MM
49 /* The associated value. */
50 int value;
1c4c47db 51 /* A short description of the option. */
8b60264b 52 const char *const help;
c6d9a88c
MM
53} param_info;
54
55/* An array containing the compiler parameters and their current
56 values. */
57
58extern param_info *compiler_params;
59
60/* Add the N PARAMS to the current list of compiler parameters. */
61
6a4d6760 62extern void add_params
c6d9a88c
MM
63 PARAMS ((const param_info params[], size_t n));
64
65/* Set the VALUE associated with the parameter given by NAME. */
66
67extern void set_param_value
68 PARAMS ((const char *name, int value));
69
70\f
71/* The parameters in use by language-independent code. */
72
73typedef enum compiler_param
74{
bd571ffc
ZW
75#define DEFPARAM(enumerator, option, msgid, default) \
76 enumerator,
c6d9a88c 77#include "params.def"
6a4d6760 78#undef DEFPARAM
c6d9a88c
MM
79 LAST_PARAM
80} compiler_param;
81
82/* The value of the parameter given by ENUM. */
83#define PARAM_VALUE(ENUM) \
84 (compiler_params[(int) ENUM].value)
6a4d6760 85
c6d9a88c 86/* Macros for the various parameters. */
a6227154
KG
87#define MAX_INLINE_INSNS_SINGLE \
88 PARAM_VALUE (PARAM_MAX_INLINE_INSNS_SINGLE)
c6d9a88c
MM
89#define MAX_INLINE_INSNS \
90 PARAM_VALUE (PARAM_MAX_INLINE_INSNS)
a6227154
KG
91#define MAX_INLINE_SLOPE \
92 PARAM_VALUE (PARAM_MAX_INLINE_SLOPE)
93#define MIN_INLINE_INSNS \
94 PARAM_VALUE (PARAM_MIN_INLINE_INSNS)
0443f602
JO
95#define MAX_DELAY_SLOT_INSN_SEARCH \
96 PARAM_VALUE (PARAM_MAX_DELAY_SLOT_INSN_SEARCH)
d5d063d7
JO
97#define MAX_DELAY_SLOT_LIVE_SEARCH \
98 PARAM_VALUE (PARAM_MAX_DELAY_SLOT_LIVE_SEARCH)
4a121cc3
AM
99#define MAX_PENDING_LIST_LENGTH \
100 PARAM_VALUE (PARAM_MAX_PENDING_LIST_LENGTH)
f1fa37ff
MM
101#define MAX_GCSE_MEMORY \
102 ((size_t) PARAM_VALUE (PARAM_MAX_GCSE_MEMORY))
740f35a0
DB
103#define MAX_GCSE_PASSES \
104 PARAM_VALUE (PARAM_MAX_GCSE_PASSES)
03e9dbc9
MM
105#define MAX_UNROLLED_INSNS \
106 PARAM_VALUE (PARAM_MAX_UNROLLED_INSNS)
88657302 107#endif /* ! GCC_PARAMS_H */
This page took 0.424579 seconds and 5 git commands to generate.