]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - gcc/ChangeLog
* asan.c (handle_builtin_alloca): Deal with all alloca variants.
[thirdparty/gcc.git] / gcc / ChangeLog
index d8619c106cae9ca0bc38343727f1e0ea4729441e..c63d73424a73343e228a795748e87664ed33aed1 100644 (file)
@@ -1,3 +1,53 @@
+2017-10-19  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * asan.c (handle_builtin_alloca): Deal with all alloca variants.
+       (get_mem_refs_of_builtin_call): Likewise.
+       * builtins.c (expand_builtin_apply): Adjust call to
+       allocate_dynamic_stack_space.
+       (expand_builtin_alloca): For __builtin_alloca_with_align_and_max, pass
+       the third argument to allocate_dynamic_stack_space, otherwise -1.
+       (expand_builtin): Deal with all alloca variants.
+       (is_inexpensive_builtin): Likewise.
+       * builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX): New.
+       * calls.c (special_function_p): Deal with all alloca variants.
+       (initialize_argument_information): Adjust call to
+       allocate_dynamic_stack_space.
+       (expand_call): Likewise.
+       * cfgexpand.c (expand_call_stmt): Deal with all alloca variants.
+       * doc/extend.texi (Built-ins): Add __builtin_alloca_with_align_and_max
+       * explow.c (allocate_dynamic_stack_space): Add MAX_SIZE parameter and
+       use it for the stack usage computation.
+       * explow.h (allocate_dynamic_stack_space): Adjust prototype.
+       * function.c (gimplify_parameters): Turn BUILT_IN_ALLOCA_WITH_ALIGN
+       into BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX and pass maximum size.
+       * gimple-ssa-warn-alloca.c (alloca_call_type): Simplify control flow.
+       Take into account 3rd argument of __builtin_alloca_with_align_and_max.
+       (in_loop_p): Remove first argument and useless check.
+       (pass_walloca::execute): Remove useless test and adjust call to above.
+       * gimple.c (gimple_build_call_from_tree): Deal with all alloc variants
+       * gimplify.c (gimplify_vla_decl): Turn BUILT_IN_ALLOCA_WITH_ALIGN into
+       BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX and pass maximum size.
+       (gimplify_call_expr): Deal with all alloca variants.
+       * hsa-gen.c (gen_hsa_alloca): Likewise.
+       (gen_hsa_insns_for_call): Likewise.
+       * ipa-pure-const.c (special_builtin_state): Likewise.
+       * tree-chkp.c (chkp_build_returned_bound): Likewise.
+       * tree-object-size.c (alloc_object_size): Likewise.
+       * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
+       (call_may_clobber_ref_p_1): Likewise.
+       * tree-ssa-ccp.c (evaluate_stmt): Likewise.
+       (ccp_fold_stmt): Likewise.
+       (optimize_stack_restore): Likewise.
+       * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
+       (mark_all_reaching_defs_necessary_1): Likewise.
+       (propagate_necessity): Likewise.
+       (eliminate_unnecessary_stmts): Likewise.
+       * tree.c (build_common_builtin_nodes): Build
+       BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX.
+       * tree.h (ALLOCA_FUNCTION_CODE_P): New macro.
+       (CASE_BUILT_IN_ALLOCA): Likewise.
+       * varasm.c (incorporeal_function_p): Deal with all alloca variants.
+
 2017-10-19  Eric Botcazou  <ebotcazou@adacore.com>
 
        PR debug/82509