2016-01-21 Richard Biener <rguenther@suse.de>
PR tree-optimization/69378
* tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
(set_ssa_val_to): Use it for dominance checks taking into
account not executable edges.
From-SVN: r232666
PR c++/69355
* tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
for bitsize instead of GET_MODE_PRECISION (mode).
* g++.dg/torture/pr69355.C: New test.
From-SVN: r232663
we used to fail using an iv from a different loop.
* graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
(class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
(is_valid_rename): Same.
(translate_isl_ast_to_gimple::get_rename): Same.
(translate_isl_ast_to_gimple::rename_all_uses): Same.
(translate_isl_ast_to_gimple::rename_uses): Same.
(get_new_name): Check for close_phi nodes.
(copy_loop_phi_args): Use phi_node_kind.
(translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
(translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
gcc/testsuite
* gfortran.dg/graphite/interchange-3.f90: Adjust pattern.
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r232660
Adding a testcase and reverting this patch:
[PATCH] remove parameter_rename_map
This map was used in the transition to the new scop detection: with the new scop
detection, we do not need this map anymore.
* graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
Remove use of parameter_rename_map.
(copy_def): Remove.
(copy_internal_parameters): Remove.
(graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
* sese.c (new_sese_info): Do not initialize parameter_rename_map.
(free_sese_info): Do not free parameter_rename_map.
(set_rename): Do not use parameter_rename_map.
(rename_uses): Update call to set_rename.
(graphite_copy_stmts_from_block): Do not use parameter_rename_map.
* sese.h (parameter_rename_map_t): Remove.
(struct sese_info_t): Remove field parameter_rename_map.
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r232659
* graphite-isl-ast-to-gimple.c: Fix comment.
* graphite-scop-detection.c (defined_in_loop_p): New.
(canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
names defined in loop.
gcc/testsuite
* gcc.dg/graphite/pr68976.c: New test.
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r232658
* graphite-scop-detection.c
(scop_detection::harmful_loop_in_region): Free dom and loops.
(scop_detection::loop_body_is_valid_scop): Free bbs.
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r232655
the bug was exposed by rewriting an if condition into an assert in the computation
of the loop iteration domains.
* graphite-scop-detection.c (loop_is_valid_scop): Renamed loop_is_valid_in_scop.
(scop_detection::harmful_stmt_in_region): Renamed harmful_loop_in_region.
Call loop_is_valid_in_scop.
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r232653
* graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
* graphite.h (struct poly_bb): Remove field is_reduction.
(PBB_IS_REDUCTION): Remove.
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r232651
PR middle-end/67653
* gimplify.c (gimplify_asm_expr): Warn if it is too late to
attempt to mark memory input operand addressable and
call prepare_gimple_addressable in that case. Don't adjust
input_location for diagnostics, use error_at instead.
* c-c++-common/pr67653.c: New test.
* gcc.dg/torture/pr29119.c: Add dg-warning.
From-SVN: r232640
2016-01-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
PR c/24293
* c-tree.h (incomplete_record_decls): Declare.
* c-parser.c (incomplete_record_decls): Define.
(c_parser_translation_unit): Iterate through incomplete_record_decls and
report error if any decl has zero size.
* c-decl.c (finish_decl): Append static decl with incomplete struct/union
or enum type to incomplete_record_decls.
testsuite/
* gcc.dg/pr24293.c: New test.
* gcc.dg/Wcxx-compat-8.c: Adjust to accept error due to
incomplete struct type.
* gcc.dg/declspec-1.c: Likewise.
* gcc.dg/pr63549.c: Likewise.
From-SVN: r232622
gcc/
PR tree-optimization/69328
* tree-vect-stmts.c (vect_is_simple_cond): Check compared
vectors have same number of elements.
(vectorizable_condition): Fix masked version recognition.
gcc/testsuite/
PR tree-optimization/69328
* gcc.dg/pr69328.c: New test.
Co-Authored-By: Richard Biener <rguenther@suse.de>
From-SVN: r232608
* exp_ch2.adb (Expand_Current_Value): Make an appropriate character
literal if the entity is of a character type.
* gcc-interface/lang.opt (fsigned-char): New option.
* gcc-interface/misc.c (gnat_handle_option): Accept it.
(gnat_init): Adjust comment.
* gcc-interface/gigi.h (finish_character_type): New prototype.
(maybe_character_type): New inline function.
(maybe_character_value): Likewise.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Type>: For
a character of CHAR_TYPE_SIZE, make a signed type if flag_signed_char.
Set TYPE_ARTIFICIAL early and call finish_character_type on the type.
<E_Enumeration_Subtype>: For a subtype of character with RM_Size and
Esize equal to CHAR_TYPE_SIZE, make a signed type if flag_signed_char.
Copy TYPE_STRING_FLAG from type to subtype.
<E_Array_Type>: Deal with character index types.
<E_Array_Subtype>: Likewise.
* gcc-interface/trans.c (gigi): Replace unsigned_char_type_node with
char_type_node throughout.
(build_raise_check): Likewise.
(get_type_length): Deal with character types.
(Attribute_to_gnu) <Attr_Pos>: Likewise. Remove obsolete range check
code. Minor tweak.
<Attr_Pred>: Likewise.
(Loop_Statement_to_gnu): Likewise.
(Raise_Error_to_gnu): Likewise.
<N_Indexed_Component>: Deal with character index types. Remove
obsolete code.
<N_Slice>: Likewise.
<N_Type_Conversion>: Deal with character types. Minor tweak.
<N_Unchecked_Type_Conversion>: Likewise.
<N_In>: Likewise.
<N_Op_Eq>: Likewise.
(emit_index_check): Delete.
* gcc-interface/utils.c (finish_character_type): New function.
(gnat_signed_or_unsigned_type_for): Deal with built-in character types.
* gcc-interface/utils2.c (expand_sloc): Replace unsigned_char_type_node
with char_type_node.
(build_call_raise): Likewise.
(build_call_raise_column): Likewise.
(build_call_raise_range): Likewise.
From-SVN: r232604
2016-01-20 Richard Biener <rguenther@suse.de>
PR tree-optimization/69345
* tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
(VN_INFO_PTR_INFO): Likewise.
* tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
info when it is equal between non-dominating SSA names.
* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
Make sure to look at original SSA infos.
From-SVN: r232603
* config/m68k/predicates.md (pow2_m1_operand): New predicate
extracted from ...
(reg_or_pow2_m1_operand): Call pow2_m1_operand.
(pc_or_label_operand): New predicate.
* config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
tests for small integers that are 2^n - 1.
* gcc.target/m68k/pr25114.c: New test.
From-SVN: r232601
PR middle-end/69347
* tree-ssa-threadbackwards.c
(fsm_find_control_statement_thread_paths): Do not try to lookup
FSM paths for SSA_NAMEs appearing in abnormal PHIs.
From-SVN: r232593
gcc/ChangeLog:
2016-01-20 Kugan Vivekanandarajah <kuganv@linaro.org>
* doc/lto.texi: Remove text that says only Gold has linker plugin
support.
From-SVN: r232587
PR libstdc++/14608
PR libstdc++/60401
* include/Makefile.am: Use c_compatibility math.h and stdlib.h for
--enable-cheaders=c_global configs.
* include/Makefile.in: Regenerate.
* include/c_compatibility/math.h: Remove obsolete _GLIBCXX_NAMESPACE_C
test and allow inclusion from C files.
* include/c_compatibility/stdlib.h: Likewise. Support freestanding.
(at_quick_exit, quick_exit): Add using directives.
* include/c_global/cmath: Use #include_next for math.h.
* include/c_global/cstdlib: Use #include_next for stdlib.h.
* testsuite/26_numerics/headers/cmath/14608.cc: New.
* testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
Remove xfail for most targets.
* testsuite/26_numerics/headers/cstdlib/60401.cc: New.
From-SVN: r232586