aboutsummaryrefslogtreecommitdiff
path: root/gcc/opts.c
diff options
context:
space:
mode:
authorTom de Vries <tom@codesourcery.com>2015-12-16 13:49:07 +0000
committerTom de Vries <vries@gcc.gnu.org>2015-12-16 13:49:07 +0000
commit597a8ab9c6f57c416c2b0a734c2098fa0335e628 (patch)
tree2932f5cc1548ca0542477812be3dbb8f67821ac7 /gcc/opts.c
parentf47cda24579db16228140f8849e9c456093c92ab (diff)
downloadgcc-597a8ab9c6f57c416c2b0a734c2098fa0335e628.zip
gcc-597a8ab9c6f57c416c2b0a734c2098fa0335e628.tar.gz
gcc-597a8ab9c6f57c416c2b0a734c2098fa0335e628.tar.bz2
Add pass_oacc_ipa
2015-12-16 Tom de Vries <tom@codesourcery.com> * opts.c (default_options_optimization): Set fipa-pta on by default for fopenacc. * passes.def: Move kernels pass group to pass_ipa_oacc. * tree-pass.h (make_pass_oacc_kernels2): Remove. (make_pass_ipa_oacc, make_pass_ipa_oacc_kernels): Declare. * tree-ssa-loop.c (pass_oacc_kernels2, make_pass_oacc_kernels2): Remove. (pass_ipa_oacc, pass_ipa_oacc_kernels): New pass. (make_pass_ipa_oacc, make_pass_ipa_oacc_kernels): New function. * tree-ssa-structalias.c (pass_ipa_pta::clone): New function. * g++.dg/ipa/devirt-37.C: Update for new fre2 pass. * g++.dg/ipa/devirt-40.C: Same. * g++.dg/tree-ssa/pr61034.C: Same. * gcc.dg/ipa/ipa-pta-1.c: Update for new pta1 pass. * gcc.dg/ipa/ipa-pta-10.c: Same. * gcc.dg/ipa/ipa-pta-11.c: Same. * gcc.dg/ipa/ipa-pta-14.c: Same. * gcc.dg/ipa/ipa-pta-16.c: Same. * gcc.dg/ipa/ipa-pta-2.c: Same. * gcc.dg/ipa/ipa-pta-5.c: Same. * gcc.dg/ipa/ipa-pta-6.c: Same. * gcc.dg/torture/ipa-pta-1.c: Same. * gcc.dg/ipa/ipa-pta-13.c: Update for new fre2 and pta1 pass. * gcc.dg/ipa/ipa-pta-3.c: Same. * gcc.dg/ipa/ipa-pta-4.c: Same. From-SVN: r231690
Diffstat (limited to 'gcc/opts.c')
-rw-r--r--gcc/opts.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/opts.c b/gcc/opts.c
index 3d25f98..d46f304 100644
--- a/gcc/opts.c
+++ b/gcc/opts.c
@@ -560,6 +560,7 @@ default_options_optimization (struct gcc_options *opts,
{
unsigned int i;
int opt2;
+ bool openacc_mode = false;
/* Scan to see what optimization level has been specified. That will
determine the default value of many flags. */
@@ -619,6 +620,11 @@ default_options_optimization (struct gcc_options *opts,
opts->x_optimize_debug = 1;
break;
+ case OPT_fopenacc:
+ if (opt->value)
+ openacc_mode = true;
+ break;
+
default:
/* Ignore other options in this prescan. */
break;
@@ -633,6 +639,10 @@ default_options_optimization (struct gcc_options *opts,
/* -O2 param settings. */
opt2 = (opts->x_optimize >= 2);
+ if (openacc_mode
+ && !opts_set->x_flag_ipa_pta)
+ opts->x_flag_ipa_pta = true;
+
/* Track fields in field-sensitive alias analysis. */
maybe_set_param_value
(PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE,