- 14 Dec, 2015 16 commits
-
-
PR c/68833 * common.opt (Wmissing-noreturn): Add Warning option. * opts-common.c (control_warning_option): If opt is alias_target with alias_arg, set arg to it. * c.opt (Wmissing-format-attribute, Wnormalized): Add Warning option. * c-c++-common/pr68833-1.c: New test. * c-c++-common/pr68833-2.c: New test. From-SVN: r231624
Jakub Jelinek committed -
libgomp/ * libgomp.h (gomp_device_state): New enum. (struct gomp_device_descr): Replace is_initialized with state. (gomp_fini_device): Remove declaration. * oacc-host.c (host_dispatch): Use state instead of is_initialized. * oacc-init.c (acc_init_1): Use state instead of is_initialized. (acc_shutdown_1): Likewise. Inline gomp_fini_device. (acc_set_device_type): Use state instead of is_initialized. (acc_set_device_num): Likewise. * target.c (resolve_device): Use state instead of is_initialized. Do not initialize finalized device. (gomp_map_vars): Do nothing if device is finalized. (gomp_unmap_vars): Likewise. (gomp_update): Likewise. (GOMP_offload_register_ver): Use state instead of is_initialized. (GOMP_offload_unregister_ver): Likewise. (gomp_init_device): Likewise. (gomp_unload_device): Likewise. (gomp_fini_device): Remove. (gomp_get_target_fn_addr): Do nothing if device is finalized. (GOMP_target): Go to host fallback if device is finalized. (GOMP_target_ext): Likewise. (gomp_exit_data): Do nothing if device is finalized. (gomp_target_task_fn): Go to host fallback if device is finalized. (gomp_target_fini): New static function. (gomp_target_init): Use state instead of is_initialized. Call gomp_target_fini at exit. liboffloadmic/ * plugin/libgomp-plugin-intelmic.cpp (unregister_main_image): Remove. (register_main_image): Do not call unregister_main_image at exit. (GOMP_OFFLOAD_fini_device): Allow for OpenMP. Unregister main image. From-SVN: r231623
Ilya Verbin committed -
convert_move does not know how to zero-extend a constant integer to the target mode -- simply because it does not know the source mode. As a result, 32-bit SImode with the high bit set would be effectively sign- extended instead of zero-extended. This patch fixes it. PR target/68865 PR target/68879 * config/rs6000/rs6000.md (cstore_si_as_di): Force all operands into registers. From-SVN: r231621
Segher Boessenkool committed -
re PR tree-optimization/68707 (testcase gcc.dg/vect/O3-pr36098.c vectorized using VEC_PERM_EXPR rather than VEC_LOAD_LANES) 2015-12-10 Richard Biener <rguenther@suse.de> PR tree-optimization/68707 PR tree-optimization/67323 * tree-vect-slp.c (vect_analyze_slp_instance): Drop SLP instances if they can be vectorized using load/store-lane instructions. From-SVN: r231620
Richard Biener committed -
2015-12-14 Richard Biener <rguenther@suse.de> PR tree-optimization/68852 * tree-vectorizer.h (struct _slp_tree): Add def_type member. (SLP_TREE_DEF_TYPE): New accessor. * tree-vect-stmts.c (vect_is_simple_use): Remove BB vectorization hack. * tree-vect-slp.c (vect_create_new_slp_node): Initialize SLP_TREE_DEF_TYPE. (vect_build_slp_tree): When a node is to be built up from scalars do not push a NULL as child but instead set its def_type to vect_external_def. (vect_analyze_slp_cost_1): Check for child def-type instead of NULL. (vect_detect_hybrid_slp_stmts): Likewise. (vect_bb_slp_scalar_cost): Likewise. (vect_get_slp_defs): Likewise. (vect_slp_analyze_node_operations): Likewise. Before processing node push the children def-types to the underlying stmts vinfo and restore it afterwards. (vect_schedule_slp_instance): Likewise. (vect_slp_analyze_bb_1): Do not mark stmts not in SLP instances as not vectorizable. * g++.dg/torture/pr68852.C: New testcase. From-SVN: r231619
Richard Biener committed -
re PR tree-optimization/68775 (spec2006 test case 465.tonto fails with the gcc 6.0 fortran compiler) 2015-12-14 Richard Biener <rguenther@suse.de> PR tree-optimization/68775 * tree-vect-slp.c (vect_build_slp_tree): Make sure to apply a operand swapping even if replacing the op with scalars. From-SVN: r231617
Richard Biener committed -
* combine.c (change_zero_ext): Do not create a shift of zero length. From-SVN: r231613
Kyrylo Tkachov committed -
From-SVN: r231612
Ville Voutilainen committed -
* doc/html/index.html: Regenerate. * doc/html/manual/status.html: Likewise. * doc/xml/manual/status_cxx2017.xml: Add P0013R1 to C++ 201z and to Library Fundamentals 2 TS. From-SVN: r231611
Ville Voutilainen committed -
* gcc.dg/builtin-return-1.c: Correct effective-target test. * gcc.dg/stack-usage-2.c: Use effective-target test. From-SVN: r231610
Alexander Monakov committed -
gcc/ 2015-12-14 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.c (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P): Provide target hook. (arc_no_speculation_in_delay_slots_p): New function. From-SVN: r231609
Claudiu Zissulescu committed -
gcc/ 2015-12-14 Claudiu Zissulescu <claziss@synopsys.com> Andrew Burgess <andrew.burgess@embecosm.com> * config/arc/arc.c (frame_move): Set frame related flag. (arc_save_restore): Emit epilogue related DWARF2 information. (arc_expand_epilogue): Likewise. * config/arc/arc.opt (mno-epilogue-cfi): Remove. (mepilogue-cfi): Likewise. * doc/invoke.texi: Remove -m[no]-epilogue-cfi documentation. Co-Authored-By: Andrew Burgess <andrew.burgess@embecosm.com> From-SVN: r231608
Claudiu Zissulescu committed -
2015-12-14 Martin Jambor <mjambor@suse.cz> PR ipa/66616 * ipa-cp.c (propagate_constants_accross_call): Move thuk check... (call_passes_through_thunk_p): ...here. (find_more_scalar_values_for_callers_subset): Perform thunk checks like propagate_constants_accross_call does. testsuite/ * g++.dg/ipa/pr66616.C: New test. From-SVN: r231607
Martin Jambor committed -
PR rtl-optimization/68730 * cfgrtl.c (cfg_layout_finalize): Free dominators. * gcc.dg/pr68730.c: New test. From-SVN: r231606
Jakub Jelinek committed -
2015-12-14 Thomas Preud'homme <thomas.preudhomme@arm.com> PR testsuite/68629 * lib/target-supports.exp (check_effective_target_cilkplus): Also check that compiling with -fcilkplus does not give an error. * c-c++-common/attr-simd-3.c: Require cilkplus effective target. From-SVN: r231605
Thomas Preud'homme committed -
From-SVN: r231604
GCC Administrator committed
-
- 13 Dec, 2015 9 commits
-
-
VTA's cselib expression hashing compares expressions with the same hash before adding them to the hash table. When there is a collision involving a self-referencing expression, we could get infinite recursion, in spite of the cycle breakers already in place. The problem is currently latent in the trunk, because by chance we don't get a collision. Such value cycles are often introduced by reverse_op; most often, they're indirect, and then value canonicalization takes care of the cycle, but if the reverse operation simplifies to the original value, we used to issue a (plus V (const_int 0)), because at some point adding a plain value V to a location list as a reverse_op equivalence caused other problems. This dummy zero, in turn, caused the value canonicalizer to not fully realize the equivalence, leading to more complex graphs and, occasionally, to infinite recursion when comparing such value-plus-zero expressions recursively. Simply using V solves the infinite recursion from the PR testcase, since the extra equivalence and the preexisting value canonicalization together prevent recursion while the unrecognized equivalence wouldn't, but it exposed another infinite recursion in memrefs_conflict_p: get_addr had a cycle breaker in place, to skip RTL referencing values introduced after the one we're examining, but it wouldn't break the cycle if the value itself appeared in the expression being examined. After removing the dummy zero above, this kind of cycle in the equivalence graph is no longer introduced by VTA itself, but dummy zeros are also present in generated code, such as in the 32-bit x86's pro_epilogue_adjust_stack_si_add epilogue insn generated as part of the builtin longjmp in _Unwind_RaiseException building libgcc's unwind-dw2.o. So, break the recursion cycle for them too. for gcc/ChangeLog PR debug/67355 * var-tracking.c (reverse_op): Don't add dummy zero to reverse ops that simplify back to the original value. * alias.c (refs_newer_value_p): Cut off recursion for expressions containing the original value. From-SVN: r231599
Alexandre Oliva committed -
From-SVN: r231598
David Edelsohn committed -
[PATCH][PR target/19201] Peephole to improve clearing items in structure for m68k * config/m68k/m68k.md (load feeding clear byte): New peephole2. * gcc.target/m68k/pr19201.c: New test. From-SVN: r231597
Kazu Kirata committed -
* gcc.target/m68k/pr63347.c: Remove #include <stdlib> add -w to command line options. * gcc.target/m68k/20090709-1.c: Adjust expected output. From-SVN: r231596
Jeff Law committed -
2015-12-13 Tom de Vries <tom@codesourcery.com> * tree-ssa-structalias.c (find_func_clobbers): Handle sizes and kinds parameters of GOACC_paralllel. From-SVN: r231595
Tom de Vries committed -
* cgraph.c (cgraph_node::get_untransformed_body): Pass compressed flag to lto_get_section_data. * varpool.c (varpool_node::get_constructor): Likewise. * lto-section-in.c (lto_get_section_data): Add new flag decompress. (lto_free_section_data): Likewise. (lto_get_raw_section_data): New function. (lto_free_raw_section_data): New function. (copy_function_or_variable): Copy sections w/o decompressing. (lto_output_decl_state_refs): Picke compressed bit. * lto-streamer.h (lto_in_decl_state): New flag compressed. (lto_out_decl_state): Likewise. (lto_get_section_data, lto_free_section_data): Update prototypes (lto_get_raw_section_data, lto_free_raw_section_data): Declare. (lto_write_raw_data): Declare. (lto_begin_section): Remove FIXME. (lto_write_raw_data): New function. (lto_write_stream): Remove FIXME. (lto_new_out_decl_state): Set compressed flag. From-SVN: r231594
Jan Hubicka committed -
* cgraph.c (cgraph_node::get_untransformed_body): Pass compressed flag to lto_get_section_data. * varpool.c (varpool_node::get_constructor): Likewise. * lto-section-in.c (lto_get_section_data): Add new flag decompress. (lto_free_section_data): Likewise. (lto_get_raw_section_data): New function. (lto_free_raw_section_data): New function. (copy_function_or_variable): Copy sections w/o decompressing. (lto_output_decl_state_refs): Picke compressed bit. * lto-streamer.h (lto_in_decl_state): New flag compressed. (lto_out_decl_state): Likewise. (lto_get_section_data, lto_free_section_data): Update prototypes (lto_get_raw_section_data, lto_free_raw_section_data): Declare. (lto_write_raw_data): Declare. (lto_begin_section): Remove FIXME. (lto_write_raw_data): New function. (lto_write_stream): Remove FIXME. (lto_new_out_decl_state): Set compressed flag. * lto.c (lto_read_in_decl_state): Unpickle compressed bit. From-SVN: r231593
Jan Hubicka committed -
* g++.dg/opt/pr48549.C: XFAIL AIX. * g++.dg/abi/anon1.C: XFAIL AIX. * gcc.dg/graphite/pr42917.c: XFAIL AIX. From-SVN: r231592
David Edelsohn committed -
From-SVN: r231591
GCC Administrator committed
-
- 12 Dec, 2015 8 commits
-
-
* tree.c (free_lang_data_in_type, find_decls_types_r): Also free unnecesary type decls. * tree.h (is_redundant_typedef): Declare. * dwarf2out.c (is_redundant_typedef): Export; booleanize From-SVN: r231588
Jan Hubicka committed -
From-SVN: r231587
Eric Botcazou committed -
* config/sparc/sparc.h (TARGET_SUPPORTS_WIDE_INT): Define to 1. * config/sparc/sparc.c (sparc_emit_set_const64): Remove code conditionalized on HOST_BITS_PER_WIDE_INT == 32. (sparc_cannot_force_const_mem) <CONST_WIDE_INT>: New case. <CONST_DOUBLE>: Remove VOIDmode test. (epilogue_renumber) <CONST_WIDE_INT>: New case. (sparc_print_operand): Remove support for CONST_DOUBLE with VOIDmode. (sparc_assemble_integer): Likewise. (set_extends): Likewise. (sparc_rtx_costs) <CONST_INT>: Use SMALL_INT. <CONST_WIDE_INT>: New case. <CONST_DOUBLE>: Remove support for VOIDmode. <MULT>: Remove support for CONST_DOUBLE with VOIDmode. * config/sparc/predicates.md (const_zero_operand): Add const_wide_int. (const_all_ones_operand): Likewise. (uns_small_int_operand): Remove const_double and code conditionalized on HOST_BITS_PER_WIDE_INT == 32. (arith_double_operand): Likewise. (arith_double_add_operand): Likewise. (input_operand): Remove support for CONST_DOUBLE with DImode. * config/sparc/sparc.md (DImode CONST_INT splitter): Remove code conditionalized on HOST_BITS_PER_WIDE_INT == 32. (DFmode CONST_DOUBLE splitter): Likewise. (*adddi3_insn_sp32): Likewise. (*subdi3_insn_sp32): Likewise. (DImode logical splitter): Likewise. (DImode CONST_DOUBLE splitter): Delete. From-SVN: r231586
Eric Botcazou committed -
2014-12-12 Tobias Burnus <burnus@net-b.de> gcc/fortran PR fortran/45859 * expr.c (gfc_is_simply_contiguous): Optionally permit array * elements. (gfc_check_pointer_assign): Update call. * interface.c (compare_parameter): Ditto. * trans-array.c (gfc_conv_array_parameter): Ditto. * trans-intrinsic.c (gfc_conv_intrinsic_transfer, conv_isocbinding_function): Ditto. * gfortran.h (gfc_is_simply_contiguous): Update prototype. gcc/testsuite/ PR fortran/45859 * gcc/testsuite/gfortran.dg/coarray_args_2.f90: Remove dg-error. From-SVN: r231585
Tobias Burnus committed -
re PR fortran/68815 (Error/warning diagnostic: '%s' should be converted to %qs-like or %<%s%>-like string strings) 2014-12-12 Tobias Burnus <burnus@net-b.de> gcc/c-family/ PR fortran/68815 * c-format.c (gcc_gfc_char_table): Add 'q' flag to remaining specifiers (%d, %i,%u and %c). gcc/fortran/ PR fortran/68815 * check.c (gfc_check_reshape): Replace %<%d%> by %qd. * matchexp.c (gfc_match_defined_op_name): Use %qc. * symbol.c (gfc_add_new_implicit_range, gfc_merge_new_implicit): Ditto. From-SVN: r231584
Tobias Burnus committed -
* gcc.target/powerpc/pr67808.c: Add -mlong-double-128 option. * g++.dg/cpp1y/pr58708.C: Test appropriate value for size of wchar_t. From-SVN: r231583
David Edelsohn committed -
gcc: PR sanitizer/68418 * c-family/c-ubsan.c (ubsan_instrument_shift): Disable sanitization of left shifts for wrapping signed types as well. gcc/testsuite: PR sanitizer/68418 * gcc.dg/ubsan/c99-wrapv-shift-1.c, gcc.dg/ubsan/c99-wrapv-shift-2.c: New testcases. From-SVN: r231582
Paolo Bonzini committed -
From-SVN: r231580
GCC Administrator committed
-
- 11 Dec, 2015 7 commits
-
-
PR tree-optimization/68844 * gcc.dg/tree-ssa/ssa-dom-thread-4.c: Update expected output. 2015-12-11 Jan Beulich <jbeulich@suse.com> From-SVN: r231577
Jeff Law committed -
PR middle-end/68215 * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter. Do not gimplify the result. (do_unop): Adjust call to tree_vec_extract. (do_binop): Likewise. (do_compare): Likewise. (do_plus_minus): Likewise. (do_negate): Likewise. (expand_vector_condition): Likewise. (do_cond): Likewise. From-SVN: r231575
Eric Botcazou committed -
PR libstdc++/59768 * include/std/functional (_Unwrap, __invfwd): Define. (__invoke_impl): Remove reference_wrapper overloads and use __invfwd. * include/std/type_traits (__result_of_memobj, __result_of_memfun): Add partial specializations for const reference_wrappers and simplify. * testsuite/20_util/bind/ref_neg.cc: Use dg-excess-errors. * testsuite/20_util/function_objects/invoke/59768.cc: New. From-SVN: r231574
Jonathan Wakely committed -
* config/nvptx/nvptx.h (RETURN_ADDR_REGNO): Delete. (OUTGOING_ARG_POINTER_REGNUM): Delete. (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete. (REGISTER_NAMES): Name static chain regs. * config/nvptx/nvptx.c (nvptx_function_arg): Add ARG_UNUSED, merge ifs. (nvptx_incoming_arg): Merge ifs. (nvptx_function_arg_boundary): Reimplement to avoid mixing units. (nvptx_function_value): Tail call nvptx_libcall_value. (nvptx_pass_by_reference): Add ARG_UNUSED. (nvptx_static_chain): Use conditional op. (nvptx_handle_kernel_attribute): Use VOID_TYPE_P. From-SVN: r231572
Nathan Sidwell committed -
2015-12-11 Jan-Benedict Glaw <jbglaw@lug-owl.de> Dominique d'Humieres <dominiq@lps.ens.fr> PR target/26427 PR target/33120 PR testsuite/35710 * config/darwin.c (darwin_use_anchors_for_symbol_p): Fix indention and trailing whitespace. Co-Authored-By: Dominique d'Humieres <dominiq@lps.ens.fr> From-SVN: r231571
Jan-Benedict Glaw committed -
From-SVN: r231570
Nathan Sidwell committed -
Function (or more narrow) scope static variables (as well as others not placed on the stack) should also not have any effect on the stack alignment. I noticed the issue first with Linux'es dynamic_pr_debug() construct using an 8-byte aligned sub-file-scope local variable. According to my checking bad behavior started with 4.6.x (4.5.3 was still okay), but generated code got quite a bit worse as of 4.9.0. gcc/ 2015-12-11 Jan Beulich <jbeulich@suse.com> * cfgexpand.c (expand_one_var): Exit early for static and external variables when adjusting stack alignment related. gcc/testsuite/ 2015-12-11 Jan Beulich <jbeulich@suse.com> * gcc.c-torture/execute/stkalign.c: New. From-SVN: r231569
Jan Beulich committed
-