diff options
author | Jan Hubicka <jh@suse.cz> | 2020-11-14 13:52:36 +0100 |
---|---|---|
committer | Jan Hubicka <jh@suse.cz> | 2020-11-14 13:52:36 +0100 |
commit | 520d5ad337eaa15860a5a964daf7ca46cf31c029 (patch) | |
tree | 9d875db97de3265cd0cffe2a2c000dc3eb7ffa53 /gcc/params.opt | |
parent | 2873c8af66e1248734bb638a49e6bc53f5e45382 (diff) | |
download | gcc-520d5ad337eaa15860a5a964daf7ca46cf31c029.zip gcc-520d5ad337eaa15860a5a964daf7ca46cf31c029.tar.gz gcc-520d5ad337eaa15860a5a964daf7ca46cf31c029.tar.bz2 |
Detect EAF flags in ipa-modref
A minimal patch for the EAF flags discovery. It works only in local ipa-modref
and gives up on cyclic SSA graphs. It improves pt_solution_includes
disambiguations twice.
gcc/Changelog:
* gimple.c: Include ipa-modref-tree.h and ipa-modref.h.
(gimple_call_arg_flags): Use modref to determine flags.
* ipa-modref.c: Include gimple-ssa.h, tree-phinodes.h,
tree-ssa-operands.h, stringpool.h and tree-ssanames.h.
(analyze_ssa_name_flags): Declare.
(modref_summary::useful_p): Summary is also useful if arg flags are
known.
(dump_eaf_flags): New function.
(modref_summary::dump): Use it.
(get_modref_function_summary): Be read for current_function_decl
being NULL.
(memory_access_to): New function.
(deref_flags): New function.
(call_lhs_flags): New function.
(analyze_parms): New function.
(analyze_function): Use it.
* ipa-modref.h (struct modref_summary): Add arg_flags.
* doc/invoke.texi (ipa-modref-max-depth): Document.
* params.opt (ipa-modref-max-depth): New param.
Diffstat (limited to 'gcc/params.opt')
-rw-r--r-- | gcc/params.opt | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/params.opt b/gcc/params.opt index 7bac39a..5b00284 100644 --- a/gcc/params.opt +++ b/gcc/params.opt @@ -927,6 +927,10 @@ Maximum number of accesse stored in each modref reference. Common Joined UInteger Var(param_modref_max_tests) Init(64) Maximum number of tests performed by modref query. +-param=modref-max-depth= +Common Joined UInteger Var(param_modref_max_depth) Init(256) +Maximum depth of DFS walk used by modref escape analysis + -param=tm-max-aggregate-size= Common Joined UInteger Var(param_tm_max_aggregate_size) Init(9) Param Optimization Size in bytes after which thread-local aggregates should be instrumented with the logging functions instead of save/restore pairs. |