]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
invoke.texi (-fisolate-erroneous-paths): Document.
authorJeff Law <law@redhat.com>
Thu, 7 Nov 2013 17:05:18 +0000 (10:05 -0700)
committerJeff Law <law@gcc.gnu.org>
Thu, 7 Nov 2013 17:05:18 +0000 (10:05 -0700)
* doc/invoke.texi (-fisolate-erroneous-paths): Document.

* gimple-ssa-isolate-paths.c (gate_isolate_erroneous_paths):
No longer check if we have __builtin_trap, assume it's
available.

java/

* builtins.c (initialize_builtins): Provide __builtin_trap.

From-SVN: r204533

gcc/ChangeLog
gcc/doc/invoke.texi
gcc/gimple-ssa-isolate-paths.c
gcc/java/ChangeLog
gcc/java/builtins.c

index 34601b6bb4783d2b17e091d790a09f87b5770502..43ae4ea3b220247ac553fc7a90d274c88829fb3c 100644 (file)
@@ -1,3 +1,11 @@
+2013-11-07  Jeff Law  <law@redhat.com>
+
+       * doc/invoke.texi (-fisolate-erroneous-paths): Document.
+
+       * gimple-ssa-isolate-paths.c (gate_isolate_erroneous_paths):
+       No longer check if we have __builtin_trap, assume it's
+       available.
+
 2013-11-07  Thomas Schwinge  <thomas@codesourcery.com>
 
        * doc/sourcebuild.texi (Top Level) <lto-plugin>: GNU ld can use
index f3c3b89e490802cf08577031034dcb92fc35b325..25e3eb59e6fc93bb111ddfdeba57a477d1af6271 100644 (file)
@@ -377,6 +377,7 @@ Objective-C and Objective-C++ Dialects}.
 -fira-region=@var{region} -fira-hoist-pressure @gol
 -fira-loop-pressure -fno-ira-share-save-slots @gol
 -fno-ira-share-spill-slots -fira-verbose=@var{n} @gol
+-fisolate-erroneous-paths
 -fivopts -fkeep-inline-functions -fkeep-static-consts -flive-range-shrinkage @gol
 -floop-block -floop-interchange -floop-strip-mine -floop-nest-optimize @gol
 -floop-parallelize-all -flto -flto-compression-level @gol
@@ -6742,6 +6743,7 @@ also turns on the following optimization flags:
 -finline-small-functions @gol
 -findirect-inlining @gol
 -fipa-sra @gol
+-fisolate-erroneous-paths @gol
 -foptimize-sibling-calls @gol
 -fpartial-inlining @gol
 -fpeephole2 @gol
@@ -7635,6 +7637,11 @@ it may significantly increase code size
 (see @option{--param ipcp-unit-growth=@var{value}}).
 This flag is enabled by default at @option{-O3}.
 
+@item -fisolate-erroneous-paths
+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.
+
 @item -ftree-sink
 @opindex ftree-sink
 Perform forward store motion  on trees.  This flag is
index 4868867308fccfa85730420912d0b527d746a2a7..983ed4d7602bd84a42d351e3709724e3b493cb5b 100644 (file)
@@ -283,8 +283,7 @@ gate_isolate_erroneous_paths (void)
 {
   /* If we do not have a suitable builtin function for the trap statement,
      then do not perform the optimization.  */
-  return (flag_isolate_erroneous_paths != 0
-         && builtin_decl_explicit (BUILT_IN_TRAP) != NULL);
+  return (flag_isolate_erroneous_paths != 0);
 }
 
 namespace {
index d6a75fe1981f752bc7a5417f1dbbae2eab5c1f19..4cb9e461a40032f3776706003f252439c79a9b8e 100644 (file)
@@ -1,3 +1,7 @@
+2013-11-07  Jeff Law  <law@redhat.com>
+
+       * builtins.c (initialize_builtins): Provide __builtin_trap.
+
 2013-10-29  David Malcolm  <dmalcolm@redhat.com>
 
        Patch autogenerated by refactor_symtab.py from
index f971a6fb25e4a7fc1ac1b083981bdb2ed2fba326..c05543782ae99a64a1d6e6e78fb83fecdb516712 100644 (file)
@@ -579,7 +579,9 @@ initialize_builtins (void)
   define_builtin (BUILT_IN_RETURN_ADDRESS, "__builtin_return_address",
                  build_function_type_list (ptr_type_node, int_type_node, NULL_TREE),
                  "__builtin_return_address", ECF_NOTHROW | ECF_LEAF);
-
+  define_builtin (BUILT_IN_TRAP, "__builtin_trap",
+                 build_function_type_list (void_type_node, NULL_TREE),
+                 "__builtin_trap", ECF_NOTHROW | ECF_LEAF | ECF_NORETURN);
   build_common_builtin_nodes ();
 }