1. 06 Aug, 2015 16 commits
    • [AArch64] Improve TLS Descriptor pattern to release RTL loop IV opt · b2074542
      The instruction sequences for preparing argument for TLS descriptor
      runtime resolver and the later function call to resolver can actually be
      hoisted out of the loop.
      
      Currently we can't because we have exposed the hard register X0 as
      destination of "set".  While GCC's RTL data flow infrastructure will
      skip or do very conservative assumption when hard register involved in
      and thus some loop IV opportunities are missed.
      
      This patch add another "tlsdesc_small_pseudo_<mode>" pattern, and avoid
      expose x0 to gcc generic code.
      
      Generally, we define a new register class FIXED_R0 which only contains register
      0, so the instruction sequences generated from the new add pattern is the same
      as tlsdesc_small_<mode>, while the operand 0 is wrapped as pseudo register that
      RTL IV opt can handle it.
      
      Ideally, we should allow operand 0 to be any pseudo register, but then
      we can't model the override of x0 caused by the function call which is
      hidded by the UNSPEC.
      
      So here, we restricting operand 0 to be x0, the override of x0 can be
      reflected to the gcc.
      
      2015-08-06    Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
      	      Jiong Wang  <jiong.wang@arm.com>
      gcc/
        * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
        * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
        (REG_CLASS_NAMES): Likewise.
        (REG_CLASS_CONTENTS): Likewise.
        * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
        (aarch64_register_move_cost): Likewise.
        (aarch64_load_symref_appropriately): Invoke the new added pattern if
        possible.
        * config/aarch64/constraints.md (Uc0): New constraint.
      
      gcc/testsuite/
        * gcc.target/aarch64/tlsdesc_hoist.c: New testcase.
      
      From-SVN: r226683
      Jiong Wang committed
    • [AArch64] Tighten direct call pattern for sibcall to repair -fno-plt · 201fa0b3
      2015-08-06  Jiong Wang  <jiong.wang@arm.com>
      
      gcc/
        * config/aarch64/constraints.md (Usf): Add the test of
        aarch64_is_noplt_call_p.
      
      gcc/testsuite/
        * gcc.target/aarch64/noplt_3.c: New testcase.
      
      From-SVN: r226682
      Jiong Wang committed
    • [AArch64] Tighten direct call pattern to repair -fno-plt · b60d63cb
      2015-08-06  Jiong Wang  <jiong.wang@arm.com>
      
      gcc/
        * config/aarch64/aarch64-protos.h (aarch64_is_noplt_call_p): New declaration.
        * config/aarch64/aarch64.c (aarch64_is_noplt_call_p): New function.
        * config/aarch64/aarch64.md (call_value_symbol): Check noplt scenarios.
        (call_symbol): Likewise.
      
      gcc/testsuite/
        * gcc.target/aarch64/noplt_1.c: New testcase.
        * gcc.target/aarch64/noplt_2.c: Likewise.
      
      From-SVN: r226681
      Jiong Wang committed
    • re PR c++/67130 (ICE: tree check: expected identifier_node, have template_decl… · c1153c19
      re PR c++/67130 (ICE: tree check: expected identifier_node, have template_decl in write_unqualified_id, at cp/mangle.c:1218)
      
      	PR c++/67130
      	PR c++/67131
      	PR c++/66260
      	* mangle.c (write_expression) [TEMPLATE_ID_EXPR]: Handle variable
      	templates.
      	* pt.c (tsubst_copy_and_build): Check for argument substitution
      	failure.
      
      From-SVN: r226676
      Jason Merrill committed
    • Vectorize mult expressions with power 2 constants via shift, for targets has no… · 47486460
      Vectorize mult expressions with power 2 constants via shift, for targets has no vector multiplication support.
      
       
      2015-08-06  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
      
      	* tree-vect-patterns.c (vect_recog_mult_pattern): New function
      	for vectorizing multiplication patterns.
      	* tree-vectorizer.h: Adjust the number of patterns.
      
      2015-08-06  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
      
      	* gcc.dg/vect/vect-mult-pattern-1.c: New test.
      	* gcc.dg/vect/vect-mult-pattern-2.c: New test.
      
      From-SVN: r226675
      Venkataramanan Kumar committed
    • sse.md (*vec_concatv2df): Declare added alternatives as sselog type. · b0b0e68c
      	* config/i386/sse.md (*vec_concatv2df): Declare added
      	alternatives as sselog type.
      
      From-SVN: r226674
      Uros Bizjak committed
    • S/390: Fix dwarf reg size table for -m31 -mzarch. · 7e5c3746
      gcc/ChangeLog:
      	    * config/s390/s390.c (s390_dwarf_frame_reg_mode): Return Pmode for
      	    all GPRs.
      
      gcc/testsuite/ChangeLog:
      	    * gcc.target/s390/dwarfregtable-1.c: New test.
      	    * gcc.target/s390/dwarfregtable-2.c: New test.
      	    * gcc.target/s390/dwarfregtable-3.c: New test.
      
      From-SVN: r226673
      Andreas Krebbel committed
    • S/390: Clobber VRs in __builtin_tbegin. · c914ac45
      gcc/ChangeLog:
      	    * config/s390/s390.c (s390_expand_tbegin): Expand either
      	    tbegin_1_z13 or tbegin_1 depending on VX flag.
      	    * config/s390/s390.md ("tbegin_1_z13"): New expander.
      
      gcc/testsuite/ChangeLog:
      	    * gcc.target/s390/htm-builtins-z13-1.c: New test.
      
      From-SVN: r226672
      Andreas Krebbel committed
    • S/390: Doc: Add documentation for -mhtm, -mvx, and -mzvector. · 17f262c5
      gcc/ChangeLog:
      	    * config/s390/s390.opt: Clarify description for -mzvector
      	    * doc/invoke.texi: Add documentation for -mhtm, -mvx, and
      	    -mzvector.
      
      From-SVN: r226671
      Andreas Krebbel committed
    • re PR fortran/64022 ([F2003][IEEE] ieee_support_flag does not handle kind=10 and… · cfe25557
      re PR fortran/64022 ([F2003][IEEE] ieee_support_flag does not handle kind=10 and kind=16 REAL variables)
      
      	PR fortran/64022
      	* gfortran.dg/ieee/large_2.f90: New test.
      	* gfortran.dg/ieee/large_3.F90: New test.
      
      From-SVN: r226670
      Francois-Xavier Coudert committed
    • gimple.h (gimple_call_set_fn): Access op member directly. · a3fe41f5
      2015-08-06  Richard Biener  <rguenther@suse.de>
      
      	* gimple.h (gimple_call_set_fn): Access op member directly.
      	(gimple_call_chain_ptr): Likewise.
      	(gimple_call_set_chain): Likewise.
      	(gimple_cond_lhs_ptr): Likewise.
      	(gimple_cond_set_lhs): Likewise.
      	(gimple_cond_rhs_ptr): Likewise.
      	(gimple_cond_set_rhs): Likewise.
      	(gimple_cond_true_label): Likewise.
      	(gimple_cond_set_true_label): Likewise.
      	(gimple_cond_set_false_label): Likewise.
      	(gimple_cond_false_label): Likewise.
      	(gimple_label_label): Likewise.
      	(gimple_label_set_label): Likewise.
      	(gimple_goto_set_dest): Likewise.
      	(gimple_asm_input_op): Likewise.
      	(gimple_asm_input_op_ptr): Likewise.
      	(gimple_asm_set_input_op): Likewise.
      	(gimple_asm_output_op): Likewise.
      	(gimple_asm_output_op_ptr): Likewise.
      	(gimple_asm_set_output_op): Likewise.
      	(gimple_asm_clobber_op): Likewise.
      	(gimple_asm_set_clobber_op): Likewise.
      	(gimple_asm_label_op): Likewise.
      	(gimple_asm_set_label_op): Likewise.
      	(gimple_switch_index): Likewise.
      	(gimple_switch_index_ptr): Likewise.
      	(gimple_return_retval_ptr): Likewise.
      	(gimple_return_retval): Likewise.
      	(gimple_return_set_retval): Likewise.
      	(gimple_switch_set_index): Likewise.  Remove superfluous GIMPLE_CHECK.
      	(gimple_switch_label): Likewise.
      	(gimple_switch_set_label): Likewise.
      
      From-SVN: r226669
      Richard Biener committed
    • gimple-fold.c (gimple_fold_stmt_to_constant_1): Simplify bool comparison… · 8861704d
      gimple-fold.c (gimple_fold_stmt_to_constant_1): Simplify bool comparison canonicalization and restrict to integers.
      
      2015-08-06  Richard Biener  <rguenther@suse.de>
      
      	* gimple-fold.c (gimple_fold_stmt_to_constant_1): Simplify
      	bool comparison canonicalization and restrict to integers.
      
      From-SVN: r226668
      Richard Biener committed
    • re PR fortran/64022 ([F2003][IEEE] ieee_support_flag does not handle kind=10 and… · b168884a
      re PR fortran/64022 ([F2003][IEEE] ieee_support_flag does not handle kind=10 and kind=16 REAL variables)
      
      	PR fortran/64022
      	* gfortran.dg/ieee/large_1.f90: Adjust test.
      
      From-SVN: r226665
      Francois-Xavier Coudert committed
    • pt.c (determine_specialization): Print candidates after 'no match' error. · f31d0b12
      	* pt.c (determine_specialization): Print candidates after 'no
      	match' error.
      
      From-SVN: r226653
      Jason Merrill committed
    • decl.c (cp_finish_decl): Tidy. · a2b4cfaa
      	* decl.c (cp_finish_decl): Tidy.
      	* typeck.c (finish_class_member_access_expr): Use
      	type_dependent_expression_p.
      	* semantics.c (finish_id_expression): Use
      	type_dependent_expression_p.  Don't build_qualified_name for a
      	decl in non-dependent scope.
      	* pt.c (type_dependent_expression_p): A TEMPLATE_ID_EXPR of an
      	identifier is dependent.  Remove variable_template_p check.
      
      From-SVN: r226652
      Jason Merrill committed
    • Daily bump. · d8835b4d
      From-SVN: r226651
      GCC Administrator committed
  2. 05 Aug, 2015 23 commits
    • coretypes.h (enum symbol_visibility): Relocate here. · 2eff1470
      2015-08-05  Andrew MacLeod  <amacleod@redhat.com>
      
      	* coretypes.h (enum symbol_visibility): Relocate here.
      	* flag-types.h (enum symbol_visibility): Remove.
      	* tree-core.h (enum symbol_visibility): Remove.
      
      From-SVN: r226648
      Andrew MacLeod committed
    • constexpr.cc: Remove redundant -save-temps option. · e1ed1bca
      2015-08-05  Nikolai Bozhenov  <n.bozhenov@samsung.com>
      
      	* testsuite/20_util/enable_shared_from_this/cons/constexpr.cc: Remove
      	redundant -save-temps option.
      	* testsuite/20_util/shared_ptr/cons/constexpr.cc: Likewise.
      	* testsuite/20_util/unique_ptr/cons/constexpr.cc: Likewise.
      	* testsuite/20_util/weak_ptr/cons/constexpr.cc: Likewise.
      	* testsuite/30_threads/future/cons/constexpr.cc: Likewise.
      	* testsuite/30_threads/shared_future/cons/constexpr.cc: Likewise.
      
      From-SVN: r226647
      Nikolai Bozhenov committed
    • re PR go/66870 (split stack issues on ppc64le and ppc64) · f395ddf3
      2015-08-15 Lynn Boger <laboger@linux.vnet.ibm.com>
      
      	PR target/66870
      	* gcc/config/rs6000/rs6000.c (rs6000_emit_prologue): Check
      	for no_split_stack function attribute along with
      	flag_split_stack.
      	(rs6000_expand_split_stack_prologue): Likewise.
      
      From-SVN: r226643
      Lynn Boger committed
    • re PR c++/66260 ([C++14] Failure to compile variable template with recursively… · dc062b49
      re PR c++/66260 ([C++14] Failure to compile variable template with recursively defined partial specialization)
      
      	PR c++/66260
      	PR c++/66596
      	PR c++/66649
      	PR c++/66923
      	* pt.c (lookup_template_variable): Use NULL_TREE for type.
      	(instantiate_template_1): Also set DECL_TI_ARGS based on
      	the immediate parent.
      	(tsubst_copy_and_build) [TEMPLATE_ID_EXPR]: Handle variable templates.
      	(finish_template_variable): Add complain parm.
      	* cp-tree.h: Adjust.
      
      From-SVN: r226642
      Jason Merrill committed
    • re PR c++/65195 (Variable template cannot be used as a function) · 85171e78
      	PR c++/65195
      	PR c++/66619
      	* semantics.c (finish_id_expression): Call convert_from_reference
      	for variable template.
      
      From-SVN: r226641
      Jason Merrill committed
    • re PR c/16351 (NULL dereference warnings) · 76787f70
      gcc/ChangeLog:
      
      2015-08-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
      	    Jeff Law  <law@redhat.com>
      
      	PR c/16351
      	* doc/invoke.texi (Wnull-dereference): New.
      	* tree-vrp.c (infer_value_range): Update call to infer_nonnull_range.
      	* gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour):
      	Warn for potential NULL dereferences.
      	(find_explicit_erroneous_behaviour): Warn for NULL dereferences.
      	* ubsan.c (instrument_nonnull_arg): Call
      	infer_nonnull_range_by_attribute.
      	(instrument_nonnull_return): Likewise.
      	* common.opt (Wnull-dereference); New.
      	* gimple.c (infer_nonnull_range): Remove bool arguments.
      	(infer_nonnull_range_by_dereference): New.
      	(infer_nonnull_range_by_attribute): New.
      	* gimple.h: Update declarations.
      
      gcc/testsuite/ChangeLog:
      
      2015-08-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
      	    Jeff Law  <law@redhat.com>
      
      	PR c/16351
      	* gcc.dg/tree-ssa/isolate-2.c: Close comment.
      	* gcc.dg/tree-ssa/isolate-4.c: Likewise.
      	* gcc.dg/tree-ssa/wnull-dereference.c: New test.
      	* gcc.dg/tree-ssa/isolate-1.c: Test warnings with -Wnull-dereference.
      	* gcc.dg/tree-ssa/isolate-3.c: Likewise.
      	* gcc.dg/tree-ssa/isolate-5.c: Likewise.
      
      
      
      Co-Authored-By: Jeff Law <law@redhat.com>
      
      From-SVN: r226640
      Manuel López-Ibáñez committed
    • gensupport.c (sequence_num): Replace with... · 72a35f93
      gcc/
      	* gensupport.c (sequence_num): Replace with...
      	(insn_sequence_num, split_sequence_num, peephole2_sequence_num):
      	...these new variables.
      	(init_rtx_reader_args_cb): Update accordingly.
      	(get_num_code_insns): Likewise.
      	(read_md_rtx): Rework to use a while loop and get_c_test.
      	Use the new counters.  Remove redundant DEFINE_SUBST case.
      	* genoutput.c (gen_split): Delete.
      	(main): Don't call it.
      
      From-SVN: r226635
      Richard Sandiford committed
    • gensupport.h (get_c_test): Declare. · d1427a17
      gcc/
      	* gensupport.h (get_c_test): Declare.
      	* gensupport.c (get_c_test): New function.
      	* genconditions.c (main): Use it.
      	* genrecog.c (validate_pattern): Likewise.
      	(match_pattern_1): Likewise.  Remove c_test argument.
      	(match_pattern): Update accordingly and remove c_test argument.
      	(main): Update accordingly.
      
      From-SVN: r226634
      Richard Sandiford committed
    • gensupport.h (get_num_insn_codes): Declare. · ba0ee63d
      gcc/
      	* gensupport.h (get_num_insn_codes): Declare.
      	* gensupport.c (get_num_insn_codes): New function.
      	* genattrtab.c (optimize_attrs): Rename max_insn_code to
      	num_insn_codes.
      	(main): Likewise.  Use get_num_insn_codes.
      	* gencodes.c (main): Remove "last" and use get_num_insn_codes.
      
      From-SVN: r226633
      Richard Sandiford committed
    • re PR middle-end/66311 (Problems with some integer(16) values) · dcc74ead
      gcc/
      	PR middle-end/66311
      	* wide-int.cc (wi::from_mpz): Make sure that absolute mpz value
      	is zero- rather than sign-extended.
      
      gcc/testsuite/
      2015-08-05  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
      
      	PR middle-end/66311
      	* gfortran.dg/pr66311.f90: New file.
      
      From-SVN: r226632
      Richard Sandiford committed
    • target-insns.def (can_extend): Delete. · 96b4d193
      gcc/
      	* target-insns.def (can_extend): Delete.
      
      From-SVN: r226631
      Richard Sandiford committed
    • re PR tree-optimization/67121 (wrong code at -O3 on x86_64-linux-gnu) · d7f37499
      2015-08-05  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/67121
      	* tree-if-conv.c (combine_blocks): Clear range-info produced
      	by stmts no longer executed conditionally.
      
      	* gcc.dg/torture/pr67121.c: New testcase.
      
      From-SVN: r226630
      Richard Biener committed
    • gcc * config/rl78/rl78.c (rl78_force_nonfar_3): Remove optimization · b4bd32c1
      	to allow identical far pointers to remain.
      
      
      tests	* gcc.target/rl78: New directory.
              * gcc.target/rl78/rl78.exp: New file: Test driver.
              * gcc.target/rl78/test_addm3.c: New file: Test adds.
      
      From-SVN: r226624
      Nick Clifton committed
    • re PR middle-end/67120 (wrong code for volatile pointers at -O1 and above on x86_64-linux-gnu) · aad88aed
      2015-08-05  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/67120
      	* match.pd: Compare address bases with == if they are decls
      	or SSA names, not operand_equal_p.  Otherwise fail.
      
      	* gcc.dg/torture/pr67120.c: New testcase.
      
      From-SVN: r226623
      Richard Biener committed
    • re PR fortran/52846 ([F2008] Support submodules) · a56ea54a
      2015-08-05  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/52846
      	* module.c (check_access): Return true if new static flag
      	'dump_smod' is true..
      	(gfc_dump_module): Rename original 'dump_module' and call from
      	new version. Use 'dump_smod' rather than the stack state to
      	determine if a submodule is being processed. The new version of
      	this procedure sets 'dump_smod' depending on the stack state and
      	then writes both the mod and smod files if a module is being
      	processed or just the smod for a submodule.
      	(gfc_use_module): Eliminate the check for module_name and
      	submodule_name being the same.
      	* trans-decl.c (gfc_finish_var_decl, gfc_build_qualified_array,
      	get_proc_pointer_decl): Set TREE_PUBLIC unconditionally and use
      	the conditions to set DECL_VISIBILITY as hidden and to set as
      	true DECL_VISIBILITY_SPECIFIED.
      
      2015-08-05  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/52846
      
      	* lib/fortran-modules.exp: Call cleanup-submodules from
      	cleanup-modules.
      	* gfortran.dg/public_private_module_2.f90: Add two XFAILS to
      	cover the cases where private entities are no longer optimized
      	away.
      	* gfortran.dg/public_private_module_6.f90: Add an XFAIL for the
      	same reason.
      	* gfortran.dg/submodule_1.f08: Change cleanup module names.
      	* gfortran.dg/submodule_5.f08: The same.
      	* gfortran.dg/submodule_9.f08: The same.
      	* gfortran.dg/submodule_10.f08: New test
      
      From-SVN: r226622
      Paul Thomas committed
    • re PR c++/66595 ([C++14] ICE in partial specialization template variables) · 8282c877
      2015-08-05  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/66595
      	* g++.dg/cpp1y/var-templ35.C: New.
      
      From-SVN: r226617
      Paolo Carlini committed
    • re PR tree-optimization/67055 (Segmentation fault in… · cd583fe1
      re PR tree-optimization/67055 (Segmentation fault in fold_builtin_alloca_with_align in tree-ssa-ccp.c)
      
      2015-08-05  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/67055
      	* tree-ssa-ccp.c (fold_builtin_alloca_with_align): Handle
      	NULL gimple_block.
      
      	* g++.dg/torture/pr67055.C: New testcase.
      
      From-SVN: r226616
      Richard Biener committed
    • Disable AVX-512VL insns for scalar mode operands on -march=knl. · f4904740
      gcc/
      	* config/i386/i386.md (define_attr "isa"): Addd avx512vl and
      	noavx512vl.
      	(define_attr "enabled"): Handle avx521vl and noavx512vl.
      	* config/i386/sse.md (define_insn "vec_dupv2df<mask_name>"): Split
      	AVX-512 alternative out of SSE.
      	(define_insn "*vec_concatv2df"): Ditto.
      
      From-SVN: r226612
      Kirill Yukhin committed
    • Merge SSE and AVX ptest patterns. · 0ea42426
      gcc/
      	* config/i386/i386.c (bdesc_args): Rename CODE_FOR_sse4_1_ptest into
      	CODE_FOR_sse4_1_ptestv2di and CODE_FOR_avx_vtestps256 into
      	CODE_FOR_avx_ptestv4di.
      	* config/i386/sse.md (define_mode_iterator V_AVX): New.
      	(define_mode_attr sse4_1): Extend to other 128/256-bit modes.
      	(define_insn "avx_ptest256"): Merge this ...
      	(define_insn "sse4_1_ptest"): And this ...
      	(define_insn "<sse4_1>_ptest<mode>"): Into this. Use V_AVX iterator.
      
      From-SVN: r226611
      Kirill Yukhin committed
    • re PR tree-optimization/67109 (ICE at -O3 on x86_64-linux-gnu in… · 97af59b2
      re PR tree-optimization/67109 (ICE at -O3 on x86_64-linux-gnu in vect_analyze_slp_instance, at tree-vect-slp.c:1793)
      
      2015-08-05  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/67109
      	* tree-vect-data-refs.c (vect_analyze_group_access_1): Check
      	against too big groups.  Print whether this is a load or store
      	group.  Rename from ...
      	(vect_analyze_group_access): ... this which is now a wrapper
      	dissolving an invalid group.
      	(vect_analyze_data_ref_accesses): Print whether this is a load
      	or store group.
      
      	* gcc.dg/torture/pr67109.c: New testcase.
      	* gcc.dg/vect/vect-119.c: Adjust.
      
      From-SVN: r226610
      Richard Biener committed
    • re PR c/67107 (ICE: SIGSEGV in tree_class_check with -frounding-math -funsafe-math-optimizations) · f980c9a2
      2015-08-05  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/67107
      	* match.pd: Guard const_binop result checking against NULL_TREE
      	result.
      
      	* gcc.dg/pr67107.c: New testcase.
      
      From-SVN: r226609
      Richard Biener committed
    • cse.c (cse_insn): Restoring old behaviour for src_eqv when dest and value in the REG_EQUAL are... · 1e928e07
      gcc/ChangeLog:
      
      2015-08-05  Kugan Vivekanandarajah  <kuganv@linaro.org>
      
      	* cse.c (cse_insn): Restoring old behaviour for src_eqv
      	 when dest and value in the REG_EQUAL are same and dest
      	 is STRICT_LOW_PART.
      
      From-SVN: r226606
      Kugan Vivekanandarajah committed
    • Daily bump. · 4856562a
      From-SVN: r226601
      GCC Administrator committed
  3. 04 Aug, 2015 1 commit