Commit Graph

147955 Commits

Author SHA1 Message Date
Alan Modra 763a282e01 missed from last commit
From-SVN: r239343
2016-08-11 08:42:56 +09:30
Alan Modra 2e186411b3 [LRA] Reload of slow mems
pr71680.c -m64 -O1 -mlra, ira output showing two problem insns.
(insn 7 5 26 3 (set (reg:SI 159 [ a ])
        (mem/c:SI (reg/f:DI 158) [1 a+0 S4 A8])) pr71680.c:13 464 {*movsi_internal1}
     (expr_list:REG_EQUIV (mem/c:SI (reg/f:DI 158) [1 a+0 S4 A8])
        (nil)))
(insn 26 7 27 3 (set (reg:DI 162)
        (unspec:DI [
                (fix:SI (subreg:SF (reg:SI 159 [ a ]) 0))
            ] UNSPEC_FCTIWZ)) pr71680.c:13 372 {fctiwz_sf}
     (expr_list:REG_DEAD (reg:SI 159 [ a ])
        (nil)))
Insn 26 requires that reg 159 be of class FLOAT_REGS.

first lra action:
deleting insn with uid = 7.
Changing pseudo 159 in operand 1 of insn 26 on equiv [r158:DI]
      Creating newreg=164, assigning class ALL_REGS to subreg reg r164
   26: r162:DI=unspec[fix(r164:SI#0)] 7
      REG_DEAD r159:SI
    Inserting subreg reload before:
   30: r164:SI=[r158:DI]
[snip]
      Change to class FLOAT_REGS for r164

Well, that didn't do much.  lra tried the equiv mem, found that didn't
work, and had to reload.  Effectively getting back to the two original
insns but r159 replaced with r164.  simplify_operand_subreg did not do
anything in this case because SLOW_UNALIGNED_ACCESS was true (wrongly
for power8, but that's beside the point).  So now we have, using
abbreviated rtl notation:
r164:SI=[r158:DI]
r162:DI=unspec[fix(r164:SI)]
The problem here is that the first insn isn't valid, due to the rs6000
backend not supporting SImode in fprs, and r164 must be an fpr to make
the second insn valid.

next lra action:
      Creating newreg=165 from oldreg=164, assigning class GENERAL_REGS to r165
   30: r165:SI=[r158:DI]
    Inserting insn reload after:
   31: r164:SI=r165:SI
so now we have
r165:SI=[r158:DI]
r164:SI=r165:SI
r162:DI=unspec[fix(r164:SI)]

This ought to be good on power8, except for one little thing.
r165 is GENERAL_REGS so the first insn is good, a gpr load from mem.
r164 is FLOAT_REGS, making the last insn good, a fctiwz.
The second insn ought to be a sldi, mtvsrd, xscvspdpn combination, but
that is only supported for SFmode.  So lra continue on reloading the
second insn, but in vain because it never tries anything other than
SImode and as noted above, SImode is not valid in fprs.

What this patch does is arrange to emit the two reloads needed for the
SLOW_UNALIGNED_ACCESS case at once, moving the subreg to the second
insn in order to switch modes, producing:

r164:SI=[r158:DI]
r165:SF=r164:SI#0
r162:DI=unspec[fix(r165:SF)]

I've also tidied a couple of other things:
1) "old" is unnecessary as it duplicated "operand".
2) Rejecting mem subregs due to SLOW_UNALIGNED_ACCESS only makes sense
if the original mode was not slow.

	PR target/71680
	* lra-constraints.c (simplify_operand_subreg): Allow subreg
	mode for mem when SLOW_UNALIGNED_ACCESS if inner mode is also
	slow.  Emit two reloads for slow mem case, first loading in
	fast innermode, then converting to required mode.
testsuite/
	* gcc.target/powerpc/pr71680.c: New.

From-SVN: r239342
2016-08-11 08:42:11 +09:30
Jason Merrill 452df4a4e6 * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_if_constexpr.
From-SVN: r239340
2016-08-10 18:38:34 -04:00
Jason Merrill 99f9d4b1b6 Implement C++17 constexpr if.
* cp-tree.h (IF_STMT_CONSTEXPR_P): New.
	* name-lookup.c (push_to_top_level, pop_from_top_level_1): Handle it.
	* parser.h (struct cp_parser): Add in_discarded_stmt field.
	* parser.c (cp_parser_selection_statement): Handle 'if constexpr'.
	(cp_parser_jump_statement): Avoid deducing from a discarded return.
	* pt.c (tsubst_expr): Only instantiate taken branch of constexpr if.
	* semantics.c (begin_if_stmt): Set the binding level this_entity.
	(finish_if_stmt_cond): Require the condition of a
	constexpr if to be constant.
	* decl.c (level_for_constexpr_if): New.
	(named_label_entry): Add in_constexpr_if field.
	(poplevel_named_label_1): Set it.
	(check_goto): Check it.
	(check_previous_goto_1): Check level_for_constexpr_if.

From-SVN: r239338
2016-08-10 17:58:23 -04:00
Kelvin Nilsen e9e6d4f6cc altivec.h (vec_extract_exp): New macro.
gcc/ChangeLog:

2016-08-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>

	* config/rs6000/altivec.h (vec_extract_exp): New macro.
	(vec_extract_sig): New macro.
	(vec_insert_exp): New macro.
	(vec_test_data_class): New macro.
	(scalar_extract_exp): New macro.
	(scalar_extract_sig): New macro.
	(scalar_insert_exp): New macro.
	(scalar_test_data_class): New macro.
	(scalar_test_neg): New macro.
	(scalar_cmp_exp_gt): New macro.
	(scalar_cmp_exp_lt): New macro.
	(scalar_cmp_exp_eq): New macro.
	(scalar_cmp_exp_unordered): New macro.
	* config/rs6000/predicates.md (u7bit_cint_operand): New predicate
	to enforce constraint that operand is a 7-bit unsigned literal.
	* config/rs6000/rs6000-builtin.def (BU_P9V_64BIT_VSX_1): New macro
	for power9 built-ins.
	(BU_P9V_VSX_2): Likewise.
	(BU_P9V_64BIT_VSX_2): Likewise.
	(VSEEDP): Add scalar extract exponent support.
	(VSEESP): Add scalar extract signature support.
	(VSTDCNDP): Add scalar test negative support.
	(VSTDCNSP): Likewise.
	(VSIEDP): Add scalar insert exponent support.
	(VSCEDPGT): Add scalar compare exponent greater than support.
	(VSCEDPLT): Add scalar compare exponent less than support.
	(VSCEDPEQ): Add scalar compare exponent test-for-equality support.
	(VSCEDPUO): Add scalar compare exponent test-for-unordered support.
	(VSTDCDP): Add scalar test data class support.
	(VSTDCSP): Likewise.
	(VSEEDP): Add overload support for scalar extract exponent
	operation.
	(VSESDP): Add overload support for scalar extract signature
	operation.
	(VSTDCN): Add overload support for scalar test negative
	operation.
	(VSTDCNDP): Add overload support for scalar test negative
	operation.
	(VSTDCNSP): Add overload support for scalar test negative
	operation.
	(VSIEDP): Add overload support for scalar insert exponent
	operation.
	(VSTDC): Add overload support for scalar test data class
	operation.
	(VSTDCDP): Add overload support for scalar test data class
	operation.
	(VSTDCSP): Add overload support for scalar test data class
	opreation.
	(VSCEDPGT): Add overload support for scalar compare exponent
	greater than operation.
	(VSCEDPLT): Add overload support for scalar compare exponent
	less than operation.
	(VSCEDPEQ): Add overload support for scalar compare exponent
	test-for-equality operation.
	(VSCEDPUO): Add overload support for scalar compare exponent
	test-for-unordered operation.
	(VEEDP): Add vector extract exponent support.
	(VEESP): Likewise.
	(VESDP): Add vector extract significand support.
	(VESSP): Likewise.
	(VIEDP): Add vector insert exponent support.
	(VIESP): Likewise.
	(VTDCDP): Add vector test data class support.
	(VTDCSP): Likewise.
	(VES): Add overload support for vector extract significand operation.
	(VESDP): Likewise.
	(VESSP): Likewise
	(VEE): Add overload support for vector extract exponent operation.
	(VEEDP): Likewise.
	(VEESP): Likewise.
	(VTDC): Add overload support for vector test data class operation.
	(VTDCDP): Likewise.
	(VTDCSP): Likewise.
	(VIE): Add overload support for vector insert exponent operation.
	(VIEDP): Likewise.
	(VIESP): Likewise.
	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
	overloaded binary floating point functions.
	(altivec_resolve_overloaded_builtin): Improve error messages to
	distinguish between functions not supported in the current
	compiler configuration and functions that were invoked with an
	invalid parameter combination, and include the built-in function
	name in both error messages.
	* config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_name):
	New prototype.
	* config/rs6000/rs6000.c (rs6000_overloaded_builtin_name): New
	function.
	(rs6000_expand_binop_builtin): Add check to enforce that argument
	2 of the test data class operations is a 7-bit unsigned literal.
	(rs6000_invalid_builtin): Add code to issue an error message if a
	built-in function that requires the power9_vector and -m32
	command-line options is compiled without these options.
	* config/rs6000/vsx.md (UNSPEC_VSX_SXEXPDP): New value.
	(UNSPEC_VSX_SXSIGDP): New value.
	(UNSPEC_VSX_SXSIGPDP): New value.
	(UNSPEC_VSX_SIEXPDP): New value.
	(UNSPEC_VSX_SCMPEXPDP): New value.
	(UNSPEC_VSX_STSTDC): New value.
	(UNSPEC_VSX_VXEXP): New value.
	(UNSPEC_VSX_VXSIG): New value.
	(UNSPEC_VSX_VIEXP): New value.
	(UNSPEC_VSX_VTSTDC): New value.
	(xsxexpdp): New insn for scalar extract exponent.
	(xsxsigdp): New insn for scalar extract significand.
	(xsiexpdp): New insn for scalar insert exponent.
	(xscmpexpdp_<code>): New expansion for scalar compare exponents.
	(*xscmpexpdp): New insn for scalar compare exponents.
	(xststdc<Fvsx): New expansion for both single- and
	double-precision scalar test data class operations.
	(xststdcneg<Fvsx>): New expansion for both single- and
	double-precision scalar test for negative value operations.
	(*xststdc<Fvsx>): New insn for scalar test data class
	operation.
	(xvxexp<VSs>): New insn for single- and double-precision
	vector extract exponent operation.
	(xvxsig<VSs>): New insn for single- and double-precision
	vector extract significand operation.
	(xviexp<VSs>): New insn for single- and double-precision
	vector insert exponent operation.
	(xvtstdc<VSs>): New insn for single- and double-precision
	vector test data class operation.
	* doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
	built-in functions to represent the Power9 binary floating-point
	support instructions.

gcc/testsuite/ChangeLog:

2016-08-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>

	* gcc.target/powerpc/bfp/bfp.exp: New file.
	* gcc.target/powerpc/bfp/scalar-cmp-exp-eq-0.c: New test.
	* gcc.target/powerpc/bfp/scalar-cmp-exp-eq-1.c: New test.
	* gcc.target/powerpc/bfp/scalar-cmp-exp-eq-2.c: New test.
	* gcc.target/powerpc/bfp/scalar-cmp-exp-gt-0.c: New test.
	* gcc.target/powerpc/bfp/scalar-cmp-exp-gt-1.c: New test.
	* gcc.target/powerpc/bfp/scalar-cmp-exp-gt-2.c: New test.
	* gcc.target/powerpc/bfp/scalar-cmp-exp-lt-0.c: New test.
	* gcc.target/powerpc/bfp/scalar-cmp-exp-lt-1.c: New test.
	* gcc.target/powerpc/bfp/scalar-cmp-exp-lt-2.c: New test.
	* gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-0.c: New test.
	* gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-1.c: New test.
	* gcc.target/powerpc/bfp/scalar-cmp-exp-unordered-2.c: New test.
	* gcc.target/powerpc/bfp/scalar-extract-exp-0.c: New test.
	* gcc.target/powerpc/bfp/scalar-extract-exp-1.c: New test.
	* gcc.target/powerpc/bfp/scalar-extract-exp-2.c: New test.
	* gcc.target/powerpc/bfp/scalar-extract-sig-0.c: New test.
	* gcc.target/powerpc/bfp/scalar-extract-sig-1.c: New test.
	* gcc.target/powerpc/bfp/scalar-extract-sig-2.c: New test.
	* gcc.target/powerpc/bfp/scalar-insert-exp-0.c: New test.
	* gcc.target/powerpc/bfp/scalar-insert-exp-1.c: New test.
	* gcc.target/powerpc/bfp/scalar-insert-exp-2.c: New test.
	* gcc.target/powerpc/bfp/scalar-test-data-class-0.c: New test.
	* gcc.target/powerpc/bfp/scalar-test-data-class-1.c: New test.
	* gcc.target/powerpc/bfp/scalar-test-data-class-2.c: New test.
	* gcc.target/powerpc/bfp/scalar-test-data-class-3.c: New test.
	* gcc.target/powerpc/bfp/scalar-test-data-class-4.c: New test.
	* gcc.target/powerpc/bfp/scalar-test-data-class-5.c: New test.
	* gcc.target/powerpc/bfp/scalar-test-data-class-6.c: New test.
	* gcc.target/powerpc/bfp/scalar-test-data-class-7.c: New test.
	* gcc.target/powerpc/bfp/scalar-test-neg-0.c: New test.
	* gcc.target/powerpc/bfp/scalar-test-neg-1.c: New test.
	* gcc.target/powerpc/bfp/scalar-test-neg-2.c: New test.
	* gcc.target/powerpc/bfp/scalar-test-neg-3.c: New test.
	* gcc.target/powerpc/bfp/vec-extract-exp-0.c: New test.
	* gcc.target/powerpc/bfp/vec-extract-exp-1.c: New test.
	* gcc.target/powerpc/bfp/vec-extract-exp-2.c: New test.
	* gcc.target/powerpc/bfp/vec-extract-exp-3.c: New test.
	* gcc.target/powerpc/bfp/vec-extract-sig-0.c: New test.
	* gcc.target/powerpc/bfp/vec-extract-sig-1.c: New test.
	* gcc.target/powerpc/bfp/vec-extract-sig-2.c: New test.
	* gcc.target/powerpc/bfp/vec-extract-sig-3.c: New test.
	* gcc.target/powerpc/bfp/vec-insert-exp-0.c: New test.
	* gcc.target/powerpc/bfp/vec-insert-exp-1.c: New test.
	* gcc.target/powerpc/bfp/vec-insert-exp-2.c: New test.
	* gcc.target/powerpc/bfp/vec-insert-exp-3.c: New test.
	* gcc.target/powerpc/bfp/vec-test-data-class-0.c: New test.
	* gcc.target/powerpc/bfp/vec-test-data-class-1.c: New test.
	* gcc.target/powerpc/bfp/vec-test-data-class-2.c: New test.
	* gcc.target/powerpc/bfp/vec-test-data-class-3.c: New test.
	* gcc.target/powerpc/bfp/vec-test-data-class-4.c: New test.
	* gcc.target/powerpc/bfp/vec-test-data-class-5.c: New test.
	* gcc.target/powerpc/bfp/vec-test-data-class-6.c: New test.
	* gcc.target/powerpc/bfp/vec-test-data-class-7.c: New test.

From-SVN: r239334
2016-08-10 19:04:13 +00:00
Ian Lance Taylor 4cc1fc4f9e compiler: annotate or fix fall through cases in switch statements
A new GCC warning, -Wimplicit-fallthrough, detected these three cases
    where a switch case falls through to another.  One of them looks like
    a bug, so I fixed it; the two other look like intended fall throughs
    so I just added a "fall through" comment to suppress the GCC warning.
    
    Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu.
    
    Reviewed-on: https://go-review.googlesource.com/26695

From-SVN: r239332
2016-08-10 18:56:35 +00:00
Bin Cheng 5a02adf63e * doc/sourcebuild.texi (@item vect_cond_mixed): New item.
From-SVN: r239330
2016-08-10 15:47:58 +00:00
Bin Cheng 9c8eabea69 target-supports.exp (check_effective_target_vect_cond_mixed): Add aarch64*-*-*.
gcc/testsuite
	* lib/target-supports.exp (check_effective_target_vect_cond_mixed):
	Add aarch64*-*-*.

From-SVN: r239329
2016-08-10 15:45:25 +00:00
Bin Cheng 6c553b7606 iterators.md (V_cmp_mixed, [...]): New.
* config/aarch64/iterators.md (V_cmp_mixed, v_cmp_mixed): New.
	* config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): Call
	gen_vcondv2div2di instead of gen_aarch64_vcond_internalv2div2di.
	(aarch64_vcond_internal<mode><mode>): Delete pattern.
	(aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): Ditto.
	(vcond<v_cmp_result><mode>): Ditto.
	(vcond<mode><mode>): Re-implement using vec_cmp and vcond_mask.
	(vcondu<mode><mode>): Ditto.
	(vcond<v_cmp_mixed><mode>): New pattern.
	(vcondu<mode><v_cmp_mixed>): New pattern.
	(aarch64_cmtst<mode>): Revise comment using aarch64_vcond instead
	of aarch64_vcond_internal.

	gcc/testsuite
	* gcc.target/aarch64/simd/vcond-ne.c: New test.

From-SVN: r239328
2016-08-10 15:34:23 +00:00
Alan Lawrence 45d569f37f aarch64-simd.md (vec_cmp<mode><mode>): New pattern.
* config/aarch64/aarch64-simd.md (vec_cmp<mode><mode>): New pattern.
	(vec_cmp<mode><v_cmp_result>): New pattern.
	(vec_cmpu<mode><mode>): New pattern.
	(vcond_mask_<mode><v_cmp_result>): New pattern.

Co-Authored-By: Bin Cheng <bin.cheng@arm.com>
Co-Authored-By: Renlin Li <renlin.li@arm.com>

From-SVN: r239327
2016-08-10 15:26:14 +00:00
Yuri Rumyantsev ff4fa9934e re PR middle-end/71734 (FAIL: libgomp.fortran/simd4.f90 -O3 -g execution test)
Fix PR tree-optimization/71734

2016-08-10  Yuri Rumyantsev  <ysrumyan@gmail.com>

	PR tree-optimization/71734
	* tree-ssa-loop-im.c (ref_indep_loop_p): Add new argument
	REF_LOOP, invoke ref_indep_loop_p_1.
	(outermost_indep_loop): Pass LOOP argumnet where REF was defined
	to ref_indep_loop_p.
	(ref_indep_loop_p_1): Fix commentary, add argument REF_LOOP,
	combine it with ref_indep_lopp_p_2, update SAFELEN if only REF
	is inside LOOP, do not cache dpendence value for loops with
	non-zero SAFELEN.
	(ref_indep_loop_p_2): Delete function.
	(can_sm_ref_p): Pass LOOP as additional argument to
	ref_indep_loop_p.

From-SVN: r239326
2016-08-10 08:03:02 -07:00
Michael Meissner a0883b0800 re PR target/72853 (gcc/testsuite/gcc.c-torture/execute/20021120-1.c generates incorrect stxssp op with -mcpu=power9)
[gcc]
2016-08-10  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/72853
	* config/rs6000/rs6000.c (mem_operand_ds_form): Add check for op
	being an offsettable address.

[gcc/testsuite]
2016-08-10  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/72853
	* gcc.target/powerpc/pr72853.c: New test.

From-SVN: r239325
2016-08-10 13:49:12 +00:00
Martin Liska a266236e85 Add new *_atomic counter update function
PR gcov-profile/58306
	* Makefile.in: New functions (modules) are added.
	* libgcov-profiler.c (__gcov_interval_profiler_atomic): New
	function.
	(__gcov_pow2_profiler_atomic): New function.
	(__gcov_one_value_profiler_body): New argument is instroduced.
	(__gcov_one_value_profiler): Call with the new argument.
	(__gcov_one_value_profiler_atomic): Likewise.
	(__gcov_indirect_call_profiler_v2): Likewise.
	(__gcov_time_profiler_atomic): New function.
	(__gcov_average_profiler_atomic): Likewise.
	(__gcov_ior_profiler_atomic): Likewise.
	* libgcov.h: Declare the aforementioned functions.
	PR gcov-profile/58306
	* gcc.dg/tree-prof/val-profiler-threads-1.c: New test.
	PR gcov-profile/58306
	* tree-profile.c (gimple_init_edge_profiler): Create conditionally
	atomic variants of profile update functions.

From-SVN: r239324
2016-08-10 13:14:56 +00:00
Martin Liska 22063dbc90 Cherry-pick fprofile-generate-atomic from google/gcc-4_9
Cherry picked (and modified) from google-4_7 branch
	2012-12-26  Rong Xu  <xur@google.com>
	* common.opt (fprofile-update): Add new flag.
	* coretypes.h: Define enum profile_update.
	* doc/invoke.texi: Document -fprofile-update.
	* gcov-io.h: Declare GCOV_TYPE_ATOMIC_FETCH_ADD and
	GCOV_TYPE_ATOMIC_FETCH_ADD_FN.
	* tree-profile.c (gimple_init_edge_profiler): Generate
	also atomic profiler update.
	(gimple_gen_edge_profiler): Likewise.
	* g++.dg/gcov/gcov-threads-1.C: New test.

From-SVN: r239323
2016-08-10 13:11:42 +00:00
David Malcolm 5a39e998c8 toplev.c: set FILE * globals to NULL after fclose
gcc/ChangeLog:
	* toplev.c (finalize): Set aux_info_file, asm_out_file, and
	stack_usage_file to NULL after fclose calls.

From-SVN: r239322
2016-08-10 13:08:13 +00:00
Senthil Kumar Selvaraj 5250a5bbb0 Fix PR 71873 - ICE in push_reload
Extend computation of subreg_in_class to constants and plus expressions 
inside SUBREGs, before recursively calling push_reload. SYMBOL_REFs are
also CONSTANT_P, so remove explicit handling of SYMBOL_REFs.

gcc/ChangeLog

	PR target/71873
	* reload.c (push_reload): Compute subreg_in_class for
	subregs of constants and plus expressions. Remove special
	handling of SYMBOL_REFs.

gcc/testsuite/ChangeLog

	PR target/71873
	* gcc.target/avr/pr71873.c: New test.

From-SVN: r239321
2016-08-10 12:35:57 +00:00
Alan Modra c4e9cff61c [RS6000] e500 part of pr71680
The fallback part of HARD_REGNO_CALLER_SAVE_MODE, choose_hard_reg_mode,
returns DFmode for SImode when TARGET_E500_DOUBLE.  This confuses
lra when attempting to save ctr around a call.

	PR target/71680
	* config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Return
	SImode for TARGET_E500_DOUBLE when given SImode.

From-SVN: r239317
2016-08-10 15:13:36 +09:30
Ian Lance Taylor 6bbd98101c gccgo.texi (Invoking gccgo): Document -fgo-optimize-allocs and -fgo-debug-escae.
* gccgo.texi (Invoking gccgo): Document -fgo-optimize-allocs and
	-fgo-debug-escae.
	(Compiler Directives): New chapter.
	(Function Names): Describe using //go:linkname.  Suggest using
	-fgo-pkgpath rather than -fgo-prefix.

From-SVN: r239316
2016-08-10 05:19:23 +00:00
Ian Lance Taylor a36cb5b1d4 compiler: implement go:noinline and go:nosplit directives
Reviewed-on: https://go-review.googlesource.com/26652

From-SVN: r239315
2016-08-10 00:46:35 +00:00
GCC Administrator 143d49f313 Daily bump.
From-SVN: r239314
2016-08-10 00:16:13 +00:00
Ian Lance Taylor 315873869d compiler: implement go:linkname compiler directive
Implement the go:linkname compiler directive for functions (both
    function definitions and function declarations).  At least for now, give
    an error for code that tries to use go:linkname with a non-function.
    
    Reviewed-on: https://go-review.googlesource.com/26651

From-SVN: r239311
2016-08-09 23:08:32 +00:00
David Wohlferd dc29c7de78 avx512fintrin.h (_mm512_cvtsepi64_epi32): Remove unused variable __O.
* config/i3836/avx512fintrin.h (_mm512_cvtsepi64_epi32): Remove
	unused variable __O.

From-SVN: r239310
2016-08-10 00:24:40 +02:00
Jason Merrill f3365c1201 PR c++/68703 - bogus error with dependent vector length
gcc/c-family/
	* c-common.c (c_common_attribute_table): vector_size affects type
	identity.
gcc/cp/
	* decl2.c (any_dependent_type_attributes_p): New.
	* pt.c (dependent_type_p_r, type_dependent_expression_p): Check it.
	* semantics.c (finish_id_expression): Check it.
	* typeck.c (finish_class_member_access_expr): Check it.

From-SVN: r239309
2016-08-09 18:03:07 -04:00
Martin Liska b7597ae579 Add tests for __gcov_dump and __gcov_reset
* g++.dg/gcov/gcov-dump-1.C: New test.
	* g++.dg/gcov/gcov-dump-2.C: New test.

From-SVN: r239308
2016-08-09 21:03:39 +00:00
Martin Liska e0c8eebff7 Fix typo in gcov.texi
* doc/gcov.texi: Change _gcov_dump to __gcov_dump and
	_gcov_reset to __gcov_reset.
	* doc/gcov-tool.texi: Fix typo.
	* libgcov-util.c: Fix typo and GNU coding style.

From-SVN: r239307
2016-08-09 21:02:24 +00:00
Martin Liska 6dce6418c5 Remove __gcov_indirect_call_profiler
* Makefile.in: Remove __gcov_indirect_call_profiler.
	* libgcov-profiler.c (__gcov_indirect_call_profiler): Remove
	function.
	* libgcov.h: And the declaration of the function.

From-SVN: r239306
2016-08-09 21:01:19 +00:00
Martin Liska ab50a2153e Fix usage of POW2 histogram
* value-prof.c (gimple_divmod_values_to_profile): Do not
	instrument MOD histogram if a value is not a SSA name.
	* gcc.dg/tree-prof/val-prof-9.c: New test.

From-SVN: r239305
2016-08-09 20:57:39 +00:00
Martin Liska dcb1e1379e Fix POW2 histogram
* gcc.dg/tree-prof/val-prof-8.c: New test.
	* value-prof.c (dump_histogram_value): Swap pow2 and non-pow2
	values.
	* libgcov-profiler.c (__gcov_pow2_profiler): Consider 0 as not
	power of two.

From-SVN: r239304
2016-08-09 20:57:14 +00:00
Martin Liska 54b367dbd2 Set +x for two python scripts.
From-SVN: r239303
2016-08-09 20:42:58 +00:00
Bernd Edlinger ef19a444b3 re PR bootstrap/72833 (error in fortran/parse.c (unexpected_eof) on Mac OS X 10.7)
2016-08-09  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR bootstrap/72833
        * fixincl.tpl (version-compare): Fix generation with autogen 5.18.
        * inclhack.def (darwin_longjmp_noreturn): New fix.
        * fixincl.x: Regenerated.
        * tests/base/i386/setjmp.h [DARWIN_LONGJMP_NORETURN_CHECK]: new test.

From-SVN: r239301
2016-08-09 17:58:00 +00:00
Renlin Li 408702b445 [PATCH][PR64971]Convert function pointer to Pmode when emit call.
gcc/

2016-08-04  Renlin Li  <renlin.li@arm.com>

	PR middle-end/64971
	* calls.c (prepare_call_address): Convert funexp to Pmode when
	necessary.
	* config/aarch64/aarch64.md (sibcall): Remove fix for PR 64971.
	(sibcall_value): Likewise.

From-SVN: r239300
2016-08-09 17:20:14 +00:00
Jason Merrill d676d623eb PR c++/71712 - ABI tags on conversion ops.
* class.c (check_abi_tags): Don't duplicate tags for conversion ops.

From-SVN: r239299
2016-08-09 12:55:08 -04:00
Jason Merrill 7ab8c6470c Adjust mangling of ABI tags on class template member functions.
* class.c (missing_abi_tags): New.
	(check_abi_tags): Don't check template. Add just_checking mode.
	* mangle.c (abi_flag_at_least, any_abi_below, equal_abi_tags): New.
	(sorted_abi_tags): Split out from write_abi_tags.
	(struct releasing_vec): New.
	(write_unqualified_name): Only look for the primary
	template for types.  Implement backward compatibility.

From-SVN: r239298
2016-08-09 12:55:01 -04:00
Marek Polacek f0bc3323eb re PR c/7652 (-Wswitch-break : Warn if a switch case falls through)
PR c/7652
gcc/c-family/
	* c-ada-spec.c (dump_generic_ada_node): Add return.
gcc/
	* cselib.c (cselib_expand_value_rtx_1): Add return.
	* gengtype.c (dbgprint_count_type_at): Likewise.
	* hsa-gen.c (gen_hsa_insn_for_internal_fn_call): Likewise.
	* reg-stack.c (get_true_reg): Restructure to avoid fallthrough warning.

From-SVN: r239297
2016-08-09 16:39:28 +00:00
Ian Lance Taylor bbc824cd56 mksysinfo.sh: always define CLONE_NEWNET
CLONE_NEWNET is needed to compile the syscall tests on GNU/Linux.
    The symbol is not defined in the CentOS 5.11 header files.
    
    Patch from Uros Bizjak.
    
    Reviewed-on: https://go-review.googlesource.com/26630

From-SVN: r239296
2016-08-09 16:38:23 +00:00
Martin Jambor 04d6d3b6d7 [PR ipa/71981] Make get_dynamic_type grok MEM_REF
2016-08-09  Martin Jambor  <mjambor@suse.cz>

        PR ipa/71981
        * ipa-polymorphic-call.c (get_dynamic_type): Bail out gracefully
        if instance is a MEM_REF.

testsuite/
        PR ipa/71981
        * gcc.dg/ipa/pr71981.c: New test.

From-SVN: r239294
2016-08-09 18:05:30 +02:00
Uros Bizjak 045f240b97 re PR rtl-optimization/72843 (internal compiler error: in lra_set_insn_recog_data, at lra.c:964)
PR target/72843
	* config/i386/i386.md (*movtf_internal): Use
	lra_in_progress || reload_completed instead of !can_create_pseudo_p
	in the insn constraint.
	(*movxf_internal): Ditto.
	(*movdf_internal): Ditto.
	(*movsf_internal): Ditto.

From-SVN: r239293
2016-08-09 17:35:34 +02:00
Bin Cheng c57e78c4be re PR tree-optimization/33707 (scev not handling unsigned conversion)
gcc/testsuite
	PR tree-optimization/33707
	* gcc.dg/vect/pr33707.c: New test.

From-SVN: r239292
2016-08-09 15:10:55 +00:00
Bin Cheng 42970a179d re PR tree-optimization/72772 (Missed SCEV after pass reordering@236440)
PR tree-optimization/72772
	* tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
	for expanded base.

	gcc/testsuite
	PR tree-optimization/pr72772
	* gcc.dg/tree-ssa/pr72772.c: New test.

From-SVN: r239291
2016-08-09 15:08:02 +00:00
Bin Cheng 8aa46dd2d5 re PR tree-optimization/72772 (Missed SCEV after pass reordering@236440)
PR tree-optimization/72772
	* tree-ssa-loop-niter.h (simplify_using_initial_conditions): Delete
	parameter STOP.
	* tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Delete
	parameter STOP and update calls.  Move expand_simple_operations
	function call from here...
	(simplify_using_initial_conditions): ...to here.  Delete parameter
	STOP.
	(tree_simplify_using_condition): Delete parameter STOP.
	* tree-scalar-evolution.c (simple_iv_with_niters): Update call to
	simplify_using_initial_conditions.

From-SVN: r239290
2016-08-09 15:01:49 +00:00
Jason Merrill f4fce1837c PR c++/72849 - ICE with incomplete class.
* constexpr.c (cxx_eval_constant_expression): Check
	COMPLETE_TYPE_P before calling is_really_empty_class.
	* class.c (is_really_empty_class): Don't call complete_type.

From-SVN: r239289
2016-08-09 10:37:12 -04:00
Matthew Fortune 810a3aa6bb MIPS: Skip gcc.dg/loop-8.c due to additional invariants
gcc/
	PR rtl-optimization/66669
	* gcc.dg/loop-8.c: Skip for MIPS due to extra invariants.

From-SVN: r239288
2016-08-09 14:36:45 +00:00
Jason Merrill 23f4e590fb PR c++/56701 - wrong type of &*this
* typeck.c (cp_build_addr_expr_1): Remove special *this handling.

From-SVN: r239285
2016-08-09 10:08:33 -04:00
Ian Lance Taylor b87060ce92 compiler: rewrite compiler directive support
Rewrite the compiler directive support to recognize all the compiler
    directives implemented by the current gc compiler.  The directives other
    than go:linkname are now turned into GOPRAGMA flags attached to a
    function or function declaration.  The go:linkname directive is turned
    into a map attached to the Lex object.  No new directives are actually
    implemented yet, they are just recognized.
    
    Reviewed-on: https://go-review.googlesource.com/26610

From-SVN: r239282
2016-08-09 14:05:17 +00:00
Matthew Fortune a00f4c6b4f MIPS: Use create_tmp_var_raw in mips_atomic_assign_expand_fenv
gcc/
	PR c/65345
	* config/mips/mips.c (mips_atomic_assign_expand_fenv):
	Use create_tmp_var_raw instead of create_tmp_var.

From-SVN: r239278
2016-08-09 12:36:18 +00:00
Richard Biener fda5c810e1 tree-ssa-threadbackward.c (profitable_jump_thread_path): Treat same SSA names related.
2016-08-09  Richard Biener  <rguenther@suse.de>

	* tree-ssa-threadbackward.c (profitable_jump_thread_path):
        Treat same SSA names related.

From-SVN: r239276
2016-08-09 08:09:21 +00:00
Jakub Jelinek 9e207d6fec re PR tree-optimization/72824 (Signed floating point zero semantics broken at optimization level -O3 (tree-loop-distribute-patterns))
PR tree-optimization/72824
	* tree-loop-distribution.c (const_with_all_bytes_same): Verify
	real_zerop is not negative.

	* gcc.c-torture/execute/ieee/pr72824.c: New test.

From-SVN: r239275
2016-08-09 09:49:14 +02:00
Richard Biener 50bf47fdc0 re PR tree-optimization/71802 (gcc ICE at -O3 on valid code on x86_64-linux-gnu in expand_LOOP_VECTORIZED)
2016-08-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/71802
	* tree-cfgcleanup.c (cleanup_tree_cfg_bb): Make sure to catch
	all merge opportunities with the predecessor.

	* gcc.dg/torture/pr71802.c: New testcase.

From-SVN: r239274
2016-08-09 07:40:50 +00:00
Richard Biener fe7afdf5b5 re PR target/68273 (Wrong code on mips/mipsel due to (invalid?) peeking at alignments in function_arg.)
2016-08-09  Richard Biener  <rguenther@suse.de>

	PR ipa/68273
	* ipa-prop.c (ipa_modify_formal_parameters): Build
	parameter types with natural alignment also for the
	over-aligned case.

From-SVN: r239273
2016-08-09 07:38:13 +00:00
Jakub Jelinek cadec7ca6e re PR c++/72809 (ICE on x86_64-linux-gnu (Segmentation fault, tree_check))
PR c++/72809
	* rtti.c (get_pseudo_ti_index): Return TK_CLASS_TYPE for
	builtin aggregate types without TYPE_BINFO.

	* g++.dg/eh/stdarg1.C: New test.

From-SVN: r239272
2016-08-09 09:23:47 +02:00