Maximum number of nested calls to search for control dependencies
during uninitialized variable analysis.
+@item uninit-max-chain-len
+Maximum number of predicates anded for each predicate ored in the normalized
+predicate chain.
+
+@item uninit-max-num-chains
+Maximum number of predicates ored in the normalized predicate chain.
+
@item sched-autopref-queue-depth
Hardware autoprefetcher scheduler model control flag.
Number of lookahead cycles the model looks into; at '
/* In our predicate normal form we have MAX_NUM_CHAINS or predicates
and in those MAX_CHAIN_LEN (inverted) and predicates. */
-#define MAX_NUM_CHAINS 8
-#define MAX_CHAIN_LEN 5
+#define MAX_NUM_CHAINS (unsigned)param_uninit_max_num_chains
+#define MAX_CHAIN_LEN (unsigned)param_uninit_max_chain_len
/* Return true if X1 is the negation of X2. */
vec<edge> cd_chains[], unsigned *num_chains,
unsigned in_region = 0)
{
- auto_vec<edge, MAX_CHAIN_LEN + 1> cur_cd_chain;
+ auto_vec<edge, 10> cur_cd_chain;
unsigned num_calls = 0;
unsigned depth = 0;
bool complete_p = true;
/* Walk the post-dominator chain. */
+ cur_cd_chain.reserve (MAX_CHAIN_LEN + 1);
compute_control_dep_chain_pdom (dom_bb, dep_bb, NULL, cd_chains,
num_chains, cur_cd_chain, &num_calls,
in_region, depth, &complete_p);
are logical conjunctions. Together, the DEP_CHAINS vector is
used below to initialize an OR expression of the conjunctions. */
unsigned num_chains = 0;
- auto_vec<edge> dep_chains[MAX_NUM_CHAINS];
+ auto_vec<edge> *dep_chains = new auto_vec<edge>[MAX_NUM_CHAINS];
if (!dfs_mark_dominating_region (use_bb, cd_root, in_region, region)
|| !compute_control_dep_chain (cd_root, use_bb, dep_chains, &num_chains,
Each OR subexpression is represented by one element of DEP_CHAINS,
where each element consists of a series of AND subexpressions. */
use_preds.init_from_control_deps (dep_chains, num_chains, true);
+ delete[] dep_chains;
return !use_preds.is_empty ();
}
break;
unsigned num_chains = 0;
- auto_vec<edge> dep_chains[MAX_NUM_CHAINS];
+ auto_vec<edge> *dep_chains = new auto_vec<edge>[MAX_NUM_CHAINS];
for (unsigned i = 0; i < nedges; i++)
{
edge e = def_edges[i];
which the PHI operands are defined to values for which M_EVAL is
false. */
m_phi_def_preds.init_from_control_deps (dep_chains, num_chains, false);
+ delete[] dep_chains;
return !m_phi_def_preds.is_empty ();
}
Common Joined UInteger Var(param_uninit_control_dep_attempts) Init(1000) IntegerRange(1, 65536) Param Optimization
Maximum number of nested calls to search for control dependencies during uninitialized variable analysis.
+-param=uninit-max-chain-len=
+Common Joined UInteger Var(param_uninit_max_chain_len) Init(5) IntegerRange(1, 128) Param Optimization
+Maximum number of predicates anded for each predicate ored in the normalized
+predicate chain.
+
+-param=uninit-max-num-chains=
+Common Joined UInteger Var(param_uninit_max_num_chains) Init(8) IntegerRange(1, 128) Param Optimization
+Maximum number of predicates ored in the normalized predicate chain.
+
-param=uninlined-function-insns=
Common Joined UInteger Var(param_uninlined_function_insns) Init(2) Optimization IntegerRange(0, 1000000) Param
Instruction accounted for function prologue, epilogue and other overhead.