- 27 Nov, 2013 6 commits
-
-
2013-11-27 Richard Biener <rguenther@suse.de> PR tree-optimization/59288 * tree-vect-loop.c (get_initial_def_for_induction): Do not re-analyze the PHI but use STMT_VINFO_LOOP_PHI_EVOLUTION_PART. * gcc.dg/torture/pr59288.c: New testcase. From-SVN: r205434
Richard Biener committed -
2013-11-27 Marek Polacek <polacek@redhat.com> * ubsan.c (ubsan_type_descriptor): If varpool_get_node returns NULL for a decl, recreate that decl. Save into the hash table VAR_DECLs rather than ADDR_EXPRs. testsuite/ * c-c++-common/ubsan/undefined-1.c: New test. From-SVN: r205433
Marek Polacek committed -
* config/ia64/hpux.h (TARGET_LIBC_HAS_FUNCTION): Fix typo. From-SVN: r205432
Alexander Ivchenko committed -
* gengtype.c (struct seen_tag): New. (already_seen_tag): New. (mark_tag_as_seen): New. (walk_subclasses): Support having multiple subclasses using the same tag by tracking which tags have already been seen, and using this to avoid adding duplicate cases to the "switch" statement. The call to already_seen_tag introduces an O(N^2) when running gengtype on N, the number of tags, due to the repeated linear search, but currently max(N) is relatively small (the number of GSS codes, which is 26). (walk_type): Pass in a seen_tag for use by the walk_subclasses recursion. * gimple.def (GIMPLE_OMP_ATOMIC_STORE, GIMPLE_OMP_RETURN): Rename underlying GSS values for these codes (from GSS_OMP_ATOMIC_STORE to GSS_OMP_ATOMIC_STORE_LAYOUT) to make clear that although GIMPLE_OMP_RETURN happens to share the data layout of GIMPLE_OMP_ATOMIC_STORE, they are not otherwise related. (GIMPLE_OMP_PARALLEL, GIMPLE_OMP_TARGET): Likewise, rename underlying GSS value from GSS_OMP_PARALLEL to GSS_OMP_PARALLEL_LAYOUT to make clear that these gimple codes are not directly related; they merely share in-memory layout. (GIMPLE_OMP_SINGLE, GIMPLE_OMP_TEAMS): Likewise, rename GSS values for these two codes from GSS_OMP_SINGLE to GSS_OMP_SINGLE_LAYOUT. * gsstruct.def (GSS_OMP_PARALLEL, gimple_statement_omp_parallel): Rename to... (GSS_OMP_PARALLEL_LAYOUT, gimple_statement_omp_parallel_layout): ...these. (GSS_OMP_SINGLE, gimple_statement_omp_single): Rename to... (GSS_OMP_SINGLE_LAYOUT, gimple_statement_omp_single_layout): ...these. (GSS_OMP_ATOMIC_STORE, gimple_statement_omp_atomic_store): Rename to... (GSS_OMP_ATOMIC_STORE_LAYOUT, gimple_statement_omp_atomic_store): ...these. * gimple.h (gimple_statement_resx): New subclass of gimple_statement_eh_ctrl, with the invariant that stmt->code == GIMPLE_RESX. (gimple_statement_eh_dispatch): New subclass of gimple_statement_eh_ctrl, with the invariant that stmt->code == GIMPLE_EH_DISPATH. (gimple_statement_omp_parallel): The existing class expressed a layout (GSS_OMP_PARALLEL), but the codes with that layout are not all related, so it makes more sense for this class to express a *code* (GIMPLE_OMP_PARALLEL). GSS_OMP_PARALLEL has been renamed to GSS_OMP_PARALLEL_LAYOUT to express this, so rename the existing gimple_statement_omp_parallel class to... (gimple_statement_omp_parallel_layout): ...this, expressing a statement of structure layout GSS_OMP_PARALLEL_LAYOUT. (gimple_statement_omp_taskreg): New subclass of gimple_statement_omp_parallel_layout, expressing the invariant that the code is one of GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK, as used by the various gimple_omp_taskreg_ accessors. (gimple_statement_omp_parallel): Reintroduce this class, this time as a subclass of gimple_statement_omp_taskreg to express the invariant stmt->code == GIMPLE_OMP_PARALLEL. (gimple_statement_omp_target) New class, subclassing gimple_statement_omp_parallel_layout, to express the invariant stmt->code == GIMPLE_OMP_TARGET. (gimple_statement_omp_task): Update to inherit from gimple_statement_omp_taskreg rather than gimple_statement_omp_parallel. (gimple_statement_omp_single): Rename to... (gimple_statement_omp_single_layout): ...this, expressing the invariant that the layout is GSS_OMP_SINGLE_LAYOUT. (gimple_statement_omp_single): ...and reintroduce this name as a subclass of gimple_statement_omp_single_layout, expressing the invariant that code == GIMPLE_OMP_SINGLE. (gimple_statement_omp_teams): New class, subclassing gimple_statement_omp_single_layout, for the code GIMPLE_OMP_TEAMS. (gimple_statement_omp_atomic_store): Rename to... (gimple_statement_omp_atomic_store_layout): ...this, expressing the invariant that the layout is GSS_OMP_ATOMIC_STORE_LAYOUT. (gimple_statement_omp_atomic_store): ...and reintroduce this name as a subclass of gimple_statement_omp_atomic_store_layout with code == GIMPLE_OMP_ATOMIC_STORE. (gimple_statement_omp_return): New class, subclassing gimple_statement_omp_atomic_store_layout for the code GIMPLE_OMP_RETURN. (is_a_helper <gimple_statement_eh_ctrl>::test): Delete. (is_a_helper <gimple_statement_resx>::test): New. (is_a_helper <gimple_statement_eh_dispatch>::test): New. (is_a_helper <gimple_statement_omp_atomic_store>::test): Only check for GIMPLE_OMP_ATOMIC_STORE, not for GIMPLE_OMP_RETURN. (is_a_helper <gimple_statement_omp_return>::test): New. (is_a_helper <gimple_statement_omp_taskreg>::test): New. (is_a_helper <gimple_statement_omp_parallel>::test): Only check for GIMPLE_OMP_PARALLEL, not for GIMPLE_OMP_TASK or GIMPLE_OMP_TARGET. (is_a_helper <gimple_statement_omp_target>::test): New. (is_a_helper <gimple_statement_omp_single>::test): Only check for GIMPLE_OMP_SINGLE, not for GIMPLE_OMP_TEAMS. (is_a_helper <gimple_statement_omp_teams>::test): New. (is_a_helper <const gimple_statement_eh_ctrl>::test): Delete. (is_a_helper <const gimple_statement_resx>::test): New. (is_a_helper <const gimple_statement_eh_dispatch>::test): New. (is_a_helper <const gimple_statement_omp_atomic_store>::test): Only check for GIMPLE_OMP_ATOMIC_STORE, not for GIMPLE_OMP_RETURN. (is_a_helper <const gimple_statement_omp_return>::test): New. (is_a_helper <const gimple_statement_omp_taskreg>::test): New. (is_a_helper <const gimple_statement_omp_parallel>::test): Only check for GIMPLE_OMP_PARALLEL, not for GIMPLE_OMP_TASK or GIMPLE_OMP_TARGET. (is_a_helper <const gimple_statement_omp_target>::test): New. (is_a_helper <const gimple_statement_omp_single>::test): Only check for GIMPLE_OMP_SINGLE, not for GIMPLE_OMP_TEAMS. (is_a_helper <const gimple_statement_omp_teams>::test): New. (gimple_omp_return_set_lhs, gimple_omp_return_lhs, gimple_omp_return_lhs_ptr): Replace bogus downcasts to gimple_statement_omp_atomic_store with downcasts to gimple_statement_omp_return, thus requiring that the code be GIMPLE_OMP_RETURN. (gimple_resx_region, gimple_resx_set_region): Replace bogus downcasts to gimple_statement_eh_ctrl with downcasts to gimple_statement_resx, thus requiring that the code be GIMPLE_RESX. (gimple_eh_dispatch_region, gimple_eh_dispatch_set_region): Replace bogus downcasts to const gimple_statement_eh_ctrl with downcasts to gimple_statement_eh_dispatch, thus requiring that the code be GIMPLE_EH_DISPATCH. (gimple_omp_taskreg_clauses, gimple_omp_taskreg_clauses_ptr) gimple_omp_taskreg_set_clauses, gimple_omp_taskreg_child_fn, gimple_omp_taskreg_child_fn_ptr, gimple_omp_taskreg_set_child_fn, gimple_omp_taskreg_data_arg, gimple_omp_taskreg_data_arg_ptr, gimple_omp_taskreg_set_data_arg): Replace bogus downcasts to gimple_statement_omp_parallel with downcasts to gimple_statement_omp_taskreg, thus requiring that the code be either GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK. (gimple_omp_target_clauses, gimple_omp_target_clauses_ptr gimple_omp_target_set_clauses, gimple_omp_target_child_fn gimple_omp_target_child_fn_ptr, gimple_omp_target_set_child_fn gimple_omp_target_data_arg, gimple_omp_target_data_arg_ptr gimple_omp_target_set_data_arg): Replace bogus downcasts to gimple_statement_omp_parallel with downcasts to gimple_statement_omp_target, thus requiring that the code be GIMPLE_OMP_TARGET. (gimple_omp_teams_clauses, gimple_omp_teams_clauses_ptr gimple_omp_teams_set_clauses): Replace bogus downcasts to gimple_statement_omp_single with downcasts to gimple_statement_omp_teams, thus requiring that the code be GIMPLE_OMP_TEAMS. * gimple.c (gimple_build_resx): Fix bogus as_a<> to use gimple_statement_resx. (gimple_build_eh_dispatch): Fix bogus as_a<> to use gimple_statement_eh_dispatch. From-SVN: r205428
David Malcolm committed -
From-SVN: r205426
Ian Lance Taylor committed -
From-SVN: r205425
GCC Administrator committed
-
- 26 Nov, 2013 29 commits
-
-
From-SVN: r205422
Ian Lance Taylor committed -
PR tree-optimization/59014 * tree-vrp.c (register_edge_assert_for_1): Don't look through conversions from non-integral types or through narrowing conversions. * gcc.c-torture/execute/pr59014.c: New test. From-SVN: r205417
Jakub Jelinek committed -
PR target/59229 * config/i386/i386.c (device_alg): Fix up formatting. (ix86_expand_set_or_movmem): Handle max_size < epilogue_size_needed similarly to count && count < epilogue_size_needed. Fix up comment typo. * builtins.c (determine_block_size): Fix comment typo. * gcc.c-torture/execute/pr59229.c: New test. From-SVN: r205416
Jakub Jelinek committed -
PR sanitizer/59258 * ubsan.c (ubsan_source_location): Don't add any location to ADDR_EXPR in the ctor. Revert 2013-11-22 change. (ubsan_create_data): Strip block info from LOC. From-SVN: r205415
Jakub Jelinek committed -
PR middle-end/59273 * tree-vect-generic.c (optimize_vector_constructor): Don't optimize if there isn't optab handler for the corresponding vector PLUS_EXPR. From-SVN: r205414
Jakub Jelinek committed -
re PR rtl-optimization/59166 (ICE in simplify_subreg, at simplify-rtx.c:5901 on valid code (at -O1 and above with -g enabled)) PR rtl-optimization/59166 * ira.c (find_moveable_pseudos): Use DF_REF_REAL_LOC instead of DF_REF_LOC in validate_change call. (split_live_ranges_for_shrink_wrap): Likewise. * gcc.dg/torture/pr59166.c: New test. From-SVN: r205413
Jakub Jelinek committed -
PR c++/58874 * parser.c (cp_parser_late_parsing_for_member): For OpenMP UDRs pass 2 instead of 0 to finish_function. * g++.dg/gomp/pr58874.C: New test. From-SVN: r205412
Jakub Jelinek committed -
PR middle-end/59150 * omp-low.c (lower_rec_input_clause): For reduction with placeholder of references to constant size types in simd loops, defer emitting initializer for the new_var, emit it later on only if not using SIMD arrays for it. * g++.dg/gomp/pr59150.C: New test. From-SVN: r205411
Jakub Jelinek committed -
re PR middle-end/59152 (ICE: loop 2's latch does not have an edge to its header with -fopenmp -fipa-pure-const) PR middle-end/59152 * omp-low.c (expand_omp_for_static_chunk): Don't set loop->latch for the inner loop if collapse_bb is non-NULL. (expand_omp_simd): Use cont_bb rather than e->dest as latch. * c-c++-common/gomp/pr59152.c: New test. From-SVN: r205410
Jakub Jelinek committed -
* gcc.dg/gomp/openmp-simd-1.c: Cleanup original tree dump. * gcc.dg/gomp/openmp-simd-2.c: Ditto. * g++.dg/gomp/openmp-simd-1.C: Ditto. * g++.dg/gomp/openmp-simd-2.C: Ditto. * gfortran.dg/c_loc_test_22.f90: Ditto. * gcc.dg/tree-ssa/attr-alias-2.c: Cleanup optimized tree dump. * gcc.dg/tree-ssa/isolate-5.c: Ditto. * gcc.dg/tree-ssa/pr57361.c: Cleanup dse1 tree dump. * gcc.dg/vect/vect-124.c: Cleanup vect tree dump. * gcc.dg/pr57518.c: Cleanup ira rtl dump. * gcc.dg/tree-prof/cold_partition_label.c: Cleanup saved temps. From-SVN: r205408
Uros Bizjak committed -
revised the ChangeLog from r205398: moved ada changes from gcc/ChangeLog to gcc/ada/Changelog From-SVN: r205407
Bernd Edlinger committed -
Fixes http://golang.org/issue/6789 . From-SVN: r205404
Ian Lance Taylor committed -
2013-11-26 Bernd Edlinger <bernd.edlinger@hotmail.de> Remove parameter keep_aligning from get_inner_reference. * tree.h (get_inner_reference): Adjust header. * expr.c (get_inner_reference): Remove parameter keep_aligning. (get_bit_range, expand_assignment, expand_expr_addr_expr_1, expand_expr_real_1): Adjust. * asan.c (instrument_derefs): Adjust. * builtins.c (get_object_alignment_2): Adjust. Remove handling of VIEW_CONVERT_EXPR. * cfgexpand.c (expand_debug_expr): Adjust. * dbxout.c (dbxout_expand_expr): Adjust. * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref, loc_list_from_tree, fortran_common): Adjust. * fold-const.c (optimize_bit_field_compare, decode_field_reference, fold_unary_loc, fold_comparison, split_address_to_core_and_offset): Adjust. * gimple-ssa-strength-reduction.c (slsr_process_ref): Adjust. * simplifx-rtx.c (delegitimize_mem_from_attrs): Adjust. * tree-affine.c (tree_to_aff_combination, get_inner_reference_aff): Adjust. * tree-data-ref.c (split_constant_offset_1, dr_analyze_innermost): Adjust. * tree-vect-data-refs.c (vect_check_gather, vect_analyze_data_refs): Adjust. * tree-scalar-evolution.c (interpret_rhs_expr): Adjust. * tree-ssa-loop-ivopts.c (may_be_unaligned_p, split_address_cost): Adjust. * tsan.c (instrument_expr): Adjust. * ada/gcc-interface/decl.c (elaborate_expression_1): Adjust. * ada/gcc-interface/trans.c (Attribute_to_gnu): Adjust. * ada/gcc-interface/utils2.c (build_unary_op): Adjust. * config/mips/mips.c (r10k_safe_mem_expr_p): Adjust. From-SVN: r205398
Bernd Edlinger committed -
gcc/ * config/arm/arm.c (arm_legitimize_address): Check xop1 is not a constant immediate before force_reg. gcc/testsuite/ * gcc.target/arm/20131120.c: New test. From-SVN: r205397
Yufeng Zhang committed -
re PR tree-optimization/59245 (ICE on valid code at -O3 on x86_64-linux-gnu in set_value_range, at tree-vrp.c:443) 2013-11-26 Richard Biener <rguenther@suse.de> PR tree-optimization/59245 * tree-vrp.c (set_value_range): Assert that we don't have overflowed constants (but our infinities). (set_value_range_to_value): Drop all overflow flags. (vrp_visit_phi_node): Likewise. (vrp_visit_assignment_or_call): Use set_value_range_to_value to set a constant range. * gcc.dg/torture/pr59245.c: New testcase. From-SVN: r205395
Richard Biener committed -
[gcc/] 2013-11-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com> PR target/59290 * config/arm/arm.md (*zextendsidi_negsi): New pattern. * config/arm/arm.c (arm_new_rtx_costs): Initialise cost correctly for zero_extend case. [gcc/testsuite/] 2013-11-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com> PR target/59290 * gcc.target/arm/negdi-2.c: Scan more general register names. From-SVN: r205394
Kyrylo Tkachov committed -
PR bootstrap/55552 * configure.ac (install_gold_as_default): New. Set to yes for --disable-ld or --enable-gold=default. (gcc_cv_ld_gold_srcdir): New. (gcc_cv_ld): Also check in-tree gold if install_gold_as_default is yes. (ORIGINAL_LD_BFD_FOR_TARGET): New AC_SUBST. (ORIGINAL_LD_GOLD_FOR_TARGET): Likewise. * configure: Regenerated. * exec-tool.in (ORIGINAL_LD_BFD_FOR_TARGET): New variable. (ORIGINAL_LD_GOLD_FOR_TARGET): Likewise. (original) [collect-ld && -fuse-ld=bfd]: Set to $ORIGINAL_LD_BFD_FOR_TARGET. (original) [collect-ld && -fuse-ld=gold]: Set to $ORIGINAL_LD_GOLD_FOR_TARGET. (dir) [collect-ld && ../gold/ld-new]: Set to gold. (fast_install) [collect-ld && ../gold/ld-new]: Set to yes. From-SVN: r205392
H.J. Lu committed -
gcc/ChangeLog 2013-11-26 Terry Guo <terry.guo@arm.com> * config/arm/arm.c (require_pic_register): Handle high pic base register for thumb-1. (arm_load_pic_register): Also initialize high pic base register. * doc/invoke.texi: Update documentation for option -mpic-register. gcc/testsuite/ChangeLog 2013-11-26 Terry Guo <terry.guo@arm.com> * gcc.target/arm/thumb1-pic-high-reg.c: New case. * gcc.target/arm/thumb1-pic-single-base.c: New case. From-SVN: r205391
Terry Guo committed -
PR target/58314 PR target/50751 * config/sh/sh.c (max_mov_insn_displacement, disp_addr_displacement): Prefix function names with 'sh_'. Make them non-static. * config/sh/sh-protos.h (sh_disp_addr_displacement, sh_max_mov_insn_displacement): Add declarations. * config/sh/constraints.md (Q): Reject QImode. (Sdd): Use match_code "mem". (Snd): Fix erroneous matching of non-memory operands. * config/sh/predicates.md (short_displacement_mem_operand): New predicate. (general_movsrc_operand): Disallow PC relative QImode loads. * config/sh/sh.md (*mov<mode>_reg_reg): Remove it. (*movqi, *movhi): Merge both insns into... (*mov<mode>): ... this new insn. Replace generic 'm' constraints with 'Snd' and 'Sdd' constraints. Calculate insn length dynamically based on the operand types. From-SVN: r205390
Oleg Endo committed -
/cp 2013-11-26 Paolo Carlini <paolo.carlini@oracle.com> PR c++/58700 * decl.c (grokdeclarator): Don't try to pass declarator->id_loc to build_lang_decl_loc when declarator is null. /testsuite 2013-11-26 Paolo Carlini <paolo.carlini@oracle.com> PR c++/58700 * g++.dg/parse/bitfield4.C: New. From-SVN: r205389
Paolo Carlini committed -
* config/epiphany/epiphany.c (epiphany_expand_prologue): Remove unused variable save_config. (epiphany_compute_frame_size): Avoid signed/unsigned comparison in assert. From-SVN: r205388
Joern Rennecke committed -
2013-11-26 Paolo Carlini <paolo.carlini@oracle.com> * cvt.c (cp_convert_and_check): Avoid calling cp_convert unnecessarily. From-SVN: r205387
Paolo Carlini committed -
other intrinsics gcc/ * config/aarch64/arm_neon.h (vtbx1_<psu>8): Emulate behaviour using other intrinsics. (vtbx3_<psu>8): Likewise. From-SVN: r205386
James Greenhalgh committed -
gcc/ * config/aarch64/aarch64-builtins.c (aarch64_types_bsl_p_qualifiers): New. (aarch64_types_bsl_s_qualifiers): Likewise. (aarch64_types_bsl_u_qualifiers): Likewise. (TYPES_BSL_P): Likewise. (TYPES_BSL_S): Likewise. (TYPES_BSL_U): Likewise. (BUILTIN_VALLDIF): Likewise. (BUILTIN_VDQQH): Likewise. * config/aarch64/aarch64-simd-builtins.def (simd_bsl): New. * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal): Handle more modes. (aarch64_simd_bsl<mode>): Likewise. * config/aarch64/arm_neon.h (vbsl<q>_<fpsu><8,16,32,64): Implement using builtins. * config/aarch64/iterators.md (VALLDIF): New. (Vbtype): Handle more modes. From-SVN: r205385
James Greenhalgh committed -
gcc/ * config/aarch64/aarch64-builtins.c (aarch64_type_qualifiers): Add qualifier_poly. (aarch64_build_scalar_type): Also build Poly types. (aarch64_build_vector_type): Likewise. (aarch64_build_type): Likewise. (aarch64_build_signed_type): New. (aarch64_build_unsigned_type): Likewise. (aarch64_build_poly_type): Likewise. (aarch64_init_simd_builtins): Also handle Poly types. From-SVN: r205384
James Greenhalgh committed -
to coexist. gcc/ * config/aarch64/aarch64-builtins.c (VAR1): Use new naming scheme for aarch64_builtins. (aarch64_builtin_vectorized_function): Use new aarch64_builtins names. From-SVN: r205383
James Greenhalgh committed -
2013-11-26 Richard Biener <rguenther@suse.de> PR tree-optimization/59287 * tree-ssa-structalias.c (get_constraint_for_component_ref): Remove no longer necessary special-casing of union accesses. * gcc.dg/tree-ssa/alias-29.c: New testcase. From-SVN: r205380
Richard Biener committed -
2013-11-26 Richard Biener <rguenther@suse.de> * pretty-print.c (output_buffer::~output_buffer): Really free the obstacks. From-SVN: r205379
Richard Biener committed -
From-SVN: r205372
GCC Administrator committed
-
- 25 Nov, 2013 5 commits
-
-
In particular this means that the names Getsockname returns are not truncated to 26 characters. Fixes issue 6829 https://codereview.appspot.com/31840043/ From-SVN: r205368
Ian Lance Taylor committed -
re PR c++/54485 (g++ should diagnose default arguments in out-of-line definitions for template class member functions) /cp 2013-11-25 Paolo Carlini <paolo.carlini@oracle.com> PR c++/54485 * decl.c (duplicate_decls): Enforce 8.3.6/6 about default arguments for member functions of class templates. /testsuite 2013-11-25 Paolo Carlini <paolo.carlini@oracle.com> PR c++/54485 * g++.dg/other/default8.C: New. * g++.dg/tc1/dr217.C: Remove xfail. * g++.dg/other/default5.C: Adjust. * g++.old-deja/g++.mike/p1989.C: Likewise. From-SVN: r205367
Paolo Carlini committed -
/cp 2013-11-25 Paolo Carlini <paolo.carlini@oracle.com> PR c++/58607 * semantics.c (check_constexpr_ctor_body): Check for BIND_EXPR_VARS. /testsuite 2013-11-25 Paolo Carlini <paolo.carlini@oracle.com> PR c++/58607 * g++.dg/cpp0x/constexpr-ice9.C: New. From-SVN: r205364
Paolo Carlini committed -
* tree-ssa-threadupdate.c (thread_through_all_blocks): Selectively invalidate loop information. From-SVN: r205361
Jeff Law committed -
* config/sh/crt1.S (start): Don't do VBR_SETUP for SH2E. From-SVN: r205360
Oleg Endo committed
-