diff options
author | Jeff Law <law@redhat.com> | 2013-11-05 12:47:44 -0700 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2013-11-05 12:47:44 -0700 |
commit | 8fdc414d439bc7148e079d27220e597b3b602a47 (patch) | |
tree | faf2cabbd865647a82ca5248eea0cae3bb79f870 /gcc/common.opt | |
parent | 50fae5a679990a4bba7dc30de21e6d4132d778fb (diff) | |
download | gcc-8fdc414d439bc7148e079d27220e597b3b602a47.zip gcc-8fdc414d439bc7148e079d27220e597b3b602a47.tar.gz gcc-8fdc414d439bc7148e079d27220e597b3b602a47.tar.bz2 |
Makefile.in (OBJS): Add gimple-ssa-isolate-paths.o
* Makefile.in (OBJS): Add gimple-ssa-isolate-paths.o
* common.opt (-fisolate-erroneous-paths): Add option and
documentation.
* gimple-ssa-isolate-paths.c: New file.
* gimple.c (check_loadstore): New function.
(infer_nonnull_range): Moved into gimple.c from tree-vrp.c
Verify OP is in the argument list and the argument corresponding
to OP is a pointer type. Use operand_equal_p rather than
pointer equality when testing if OP is on the nonnull list.
Use check_loadstore rather than count_ptr_derefs. Handle
GIMPLE_RETURN statements.
* tree-vrp.c (infer_nonnull_range): Remove.
* gimple.h (infer_nonnull_range): Declare.
* opts.c (default_options_table): Add
* OPT_fisolate_erroneous_paths.
* passes.def: Add pass_isolate_erroneous_paths.
* timevar.def (TV_ISOLATE_ERRONEOUS_PATHS): New timevar.
* tree-pass.h (make_pass_isolate_erroneous_paths): Declare.
* tree-ssa.c (struct count_ptr_d): Remove.
(count_ptr_derefs, count_uses_and_derefs): Remove.
* tree-ssa.h (count_uses_and_derefs): Remove.
* gcc.dg/pr38984.c: Add -fno-isolate-erroneous-paths.
* gcc.dg/tree-ssa/isolate-1.c: New test.
* gcc.dg/tree-ssa/isolate-2.c: New test.
* gcc.dg/tree-ssa/isolate-3.c: New test.
* gcc.dg/tree-ssa/isolate-4.c: New test.
From-SVN: r204414
Diffstat (limited to 'gcc/common.opt')
-rw-r--r-- | gcc/common.opt | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/common.opt b/gcc/common.opt index 3a40db2..bda4790 100644 --- a/gcc/common.opt +++ b/gcc/common.opt @@ -2109,6 +2109,12 @@ foptimize-strlen Common Report Var(flag_optimize_strlen) Optimization Enable string length optimizations on trees +fisolate-erroneous-paths +Common Report Var(flag_isolate_erroneous_paths) Optimization +Detect paths which trigger erroneous or undefined behaviour. Isolate those +paths from the main control flow and turn the statement with erroneous or +undefined behaviour into a trap. + ftree-loop-distribution Common Report Var(flag_tree_loop_distribution) Optimization Enable loop distribution on trees |