Commit Graph

134509 Commits

Author SHA1 Message Date
Tobias Burnus 4b76ea71d1 invoke.texi (-Wtabs): Swap -Wtabs/-Wno-tabs now that -Wtabs enables the warning.
2014-11-23  Tobias Burnus  <burnus@net-b.de>

        * invoke.texi (-Wtabs): Swap -Wtabs/-Wno-tabs now that
        -Wtabs enables the warning.

From-SVN: r217990
2014-11-23 23:02:38 +01:00
Oleg Endo abf64717ad Fix ChangeLog formatting.
From-SVN: r217988
2014-11-23 21:20:13 +00:00
Oleg Endo 8be6500b53 re PR target/53976 ([SH] Unnecessary clrt/sett after bt/bf)
gcc/
	PR target/53976
	* config/sh/sh_optimize_sett_clrt.cc
	(sh_optimize_sett_clrt::find_last_ccreg_values): Return bool instead
	of void.  Abort at complex edges.
	(sh_optimize_sett_clrt::execute): Do nothing if find_last_ccreg_values
	returned false.

From-SVN: r217987
2014-11-23 21:16:26 +00:00
Tobias Burnus bc1b9ef151 error.c (gfc_diagnostic_build_prefix): Correct coloring of the colon of the prefix.
2014-11-23  Tobias Burnus  <burnus@net-b.de>

        * error.c (gfc_diagnostic_build_prefix): Correct coloring
        of the colon of the prefix.

From-SVN: r217986
2014-11-23 21:35:14 +01:00
Tobias Burnus 16db2a6aa7 gfortran.h (gfc_option_t): Remove warn_tabs.
2014-11-23  Tobias Burnus  <burnus@net-b.de>
        Manuel López-Ibáñez  <manu@gcc.gnu.org>

gcc/fortran/
        * gfortran.h (gfc_option_t): Remove warn_tabs.
        * lang.opt (Wpedantic): Add.
        (Wtabs): Use Var and LangEnabledBy.
        * options.c (gfc_init_options, gfc_post_options,
        set_Wall): Remove -Wtabs handling.
        (gfc_handle_option): Update -std=, remove OPT_Wtabs.
        * scanner.c (gfc_gobble_whitespace): Update for
        flag-variable renaming.
        (load_line): Ditto. Pass warn flag to diagnostic.

gcc/testsuite/
        * gfortran.dg/tab_continuation.f: Update dg-*.


Co-Authored-By: Manuel López-Ibáñez <manu@gcc.gnu.org>

From-SVN: r217985
2014-11-23 18:14:10 +01:00
Andrew Pinski 5e383359ea 20120927-1.c: New testcase.
2014-11-23  Andrew Pinski  <apinski@cavium.com>

        * gcc.c-torture/compile/20120927-1.c: New testcase.
        * gcc.c-torture/compile/20120830-1.c: New testcase.

From-SVN: r217982
2014-11-23 04:30:24 -08:00
Andrew Pinski 6a93d42ad8 initlist-lifetime1.C: Fix testcase where argc is always greater than 1 (octeon simulator).
2014-11-22  Andrew Pinski  <apinski@cavium.com>

        * g++.dg/cpp0x/initlist-lifetime1.C: Fix testcase where
        argc is always greater than 1 (octeon simulator).
        * g++.dg/cpp0x/initlist-lifetime2.C: Likewise.

From-SVN: r217979
2014-11-22 21:30:26 -08:00
GCC Administrator 0046bb1ed8 Daily bump.
From-SVN: r217978
2014-11-23 00:16:29 +00:00
Andrew Pinski af5d6309eb 2014-11-22 Andrew Pinski <apinski@cavium.com>
PR target/63971
        * gcc.target/aarch64/test_frame_1.c: Expect only two loads of
        x30 (in the epilogue).
        * gcc.target/aarch64/test_frame_6.c: Likewise.
        * gcc.target/aarch64/test_frame_2.c: Expect only one pair load of
        x30 and x19 (in the epilogue).
        * gcc.target/aarch64/test_frame_4.c: Likewise.
        * gcc.target/aarch64/test_frame_7.c: Likewise.

From-SVN: r217975
2014-11-22 15:41:26 -08:00
John David Anglin 7b5216ddac Commit missing change log entries.
From-SVN: r217974
2014-11-22 21:12:47 +00:00
Jan Hubicka 4ad08ee838 ipa.c (symbol_table::remove_unreachable_nodes): Mark all inline clones as having abstract origin used.
* ipa.c (symbol_table::remove_unreachable_nodes): Mark all inline clones
	as having abstract origin used.
	* ipa-inline-transform.c (can_remove_node_now_p_1): Drop abstract origin check.
	(clone_inlined_nodes): Copy abstract originflag.
	* lto-cgraph.c (compute_ltrans_boundary): Use get_create to get abstract origin node.

From-SVN: r217973
2014-11-22 21:08:07 +00:00
John David Anglin 2d3a20632b re PR other/63694 (Build error compiling asan.c: strtoull undeclared)
PR other/63694
	* libiberty/configure.ac: Check for strtol, strtoul, strtoll and strtoull
	declarations.
	* libiberty/configure: Regenerated.
	* gcc/configure.ac: Check for strtol, strtoul, strtoll and strtoull
	declarations.
	* gcc/configure: Regenerated.
	* gcc/config.in: Regenerated.

From-SVN: r217972
2014-11-22 20:53:36 +00:00
Uros Bizjak c1b4f9c6ec params.def (PARAM_MAX_COMPLETELY_PEELED_INSNS): Increase to 200.
* params.def (PARAM_MAX_COMPLETELY_PEELED_INSNS): Increase to 200.
	* config/i386/i386.c (ix86_option_override_internal): Do not increase
	PARAM_MAX_COMPLETELY_PEELED_INSNS.

From-SVN: r217971
2014-11-22 20:02:12 +01:00
Oleg Endo 10f916167c re PR target/63783 ([SH] Miscompilation of boolean negation on SH4 using -O2)
gcc/
	PR target/63783
	PR target/51244
	* config/sh/sh_treg_combine.cc (sh_treg_combine::make_not_reg_insn):
	Do not emit bitwise not insn.  Emit logical not insn sequence instead.
	Adjust related comments throughout the file.

gcc/testsuite/
	PR target/63783
	PR target/51244
	* gcc.target/sh/torture/pr63783-1.c: New.
	* gcc.target/sh/torture/pr63783-2.c: New.
	* gcc.target/sh/pr51244-20.c: Adjust.
	* gcc.target/sh/pr51244-20-sh2a.c: Adjust.

From-SVN: r217969
2014-11-22 15:50:10 +00:00
Oleg Endo 355e99758b re PR target/63986 ([SH] gcc.target/sh/pr51244-15.c failures)
gcc/
	PR target/63986
	PR target/51244
	* config/sh/sh.c (sh_is_logical_t_store_expr,
	sh_try_omit_signzero_extend): Use rtx_insn* for insn argument.
	(sh_split_movrt_negc_to_movt_xor): New function.
	(sh_find_set_of_reg): Move to ...
	* config/sh/sh-protos.h (sh_find_set_of_reg): ... here and convert
	to template function.
	(set_of_reg): Use rtx_insn* for insn member.
	(sh_is_logical_t_store_expr, sh_try_omit_signzero_extend): Use
	rtx_insn* for insn argument.
	* config/sh/sh.md (movrt_negc, *movrt_negc): Split into movt-xor
	sequence using new sh_split_movrt_negc_to_movt_xor function.
	(movrt_xor): Allow also for SH2A.
	(*movt_movrt): Delete insns and splits.

From-SVN: r217968
2014-11-22 15:06:34 +00:00
Marc Glisse 9ce85efc60 re PR tree-optimization/60770 (disappearing clobbers)
2014-11-22  Marc Glisse  <marc.glisse@inria.fr>

	PR tree-optimization/60770
	* tree-sra.c (clobber_subtree): New function.
	(sra_modify_constructor_assign): Call it.

From-SVN: r217967
2014-11-22 14:28:19 +00:00
Tobias Burnus 5d26fda334 trans-expr.c (gfc_caf_get_image_index): Fix image calculation.
gcc/fortran/
2014-11-22  Tobias Burnus  <burnus@net-b.de>

        * trans-expr.c (gfc_caf_get_image_index): Fix image calculation.

gcc/testsuite/
2014-11-22  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/coarray/cosubscript_1.f90: New.

From-SVN: r217966
2014-11-22 15:14:35 +01:00
Eric Botcazou 19f51f28fc trans.c (Call_to_gnu): Strip unchecked conversions on actuals of In parameters if...
* gcc-interface/trans.c (Call_to_gnu): Strip unchecked conversions on
	actuals of In parameters if the destination type is an unconstrained
	composite type.

From-SVN: r217965
2014-11-22 12:23:47 +00:00
Eric Botcazou 5e0f1fca62 trans.c (gnat_gimplify_expr): Add 'type' variable.
* gcc-interface/trans.c (gnat_gimplify_expr): Add 'type' variable.
	<case NULL_EXPR>: Deal with unconstrained array types and use 'type'.
	<case ADDR_EXPR>: Use 'type'.
	<case DECL_EXPR>: Likewise.

From-SVN: r217964
2014-11-22 12:15:53 +00:00
Uros Bizjak 0211f6178a store-motion-fgcse-sm.c (dg-final): Cleanup store_modtion rtl dump.
* gcc.dg/store-motion-fgcse-sm.c (dg-final): Cleanup
	store_modtion rtl dump.
	* gcc.dg/var-expand1.c (dg-final): Cleanup loop2_unroll rtl dump.
	* gcc.dg/var-expand3.c (dg-final): Ditto.

From-SVN: r217961
2014-11-22 09:26:06 +01:00
Uros Bizjak 4994a30f2a avx512vl-vpermb-2.c: Require avx512vbmi.
* gcc.target/i386/avx512vl-vpermb-2.c: Require avx512vbmi.
	* gcc.target/i386/avx512vl-vpermi2b-2.c: Ditto.
	* gcc.target/i386/avx512vl-vpermt2b-2.c: Ditto.
	* gcc.target/i386/avx512vl-vpmaddhuq-2.c: Require avx512ifma.
	* gcc.target/i386/avx512vl-vpmaddluq-2.c: Ditto.
	* gcc.target/i386/avx512vl-vpmultishiftqb-2.c: Ditto.

From-SVN: r217960
2014-11-22 09:19:33 +01:00
Jason Merrill 9127c38e11 re PR c++/63657 (-Wunused-variable: warning supressed by virtual dtor)
PR c++/63657
	PR c++/38958
	* call.c (set_up_extended_ref_temp): Set TREE_USED on the reference
	if the temporary has a non-trivial destructor.
	* decl.c (poplevel): Don't look through references.

From-SVN: r217957
2014-11-21 21:21:35 -05:00
Guy Martin 0cd7c67283 linux-atomic.c (__kernel_cmpxchg2): New.
* config/pa/linux-atomic.c (__kernel_cmpxchg2): New.
	(FETCH_AND_OP_2): New.  Use for subword and double word operations.
	(OP_AND_FETCH_2): Likewise.
	(COMPARE_AND_SWAP_2): Likewise.
	(SYNC_LOCK_TEST_AND_SET_2): Likewise.
	(SYNC_LOCK_RELEASE_2): Likewise.
	(SUBWORD_SYNC_OP): Remove.
	(SUBWORD_VAL_CAS): Likewise.
	(SUBWORD_BOOL_CAS): Likewise.
	(FETCH_AND_OP_WORD): Update.
	Consistently use signed types.
	

Co-Authored-By: John David Anglin <danglin@gcc.gnu.org>

From-SVN: r217956
2014-11-22 00:18:49 +00:00
GCC Administrator 16c31bcf02 Daily bump.
From-SVN: r217955
2014-11-22 00:16:31 +00:00
Steve Ellcey c8451a46ea futex.h (SYS_futex): Define if not already done.
2014-11-21  Steve Ellcey  <sellcey@imgtec.com>

	* config/linux/mips/futex.h (SYS_futex): Define if not already done.

From-SVN: r217952
2014-11-21 23:25:51 +00:00
Jason Merrill 64bec774ed re PR c++/63942 (constexpr conflicts with previous declaration)
PR c++/63942
	* name-lookup.c (supplement_binding_1): Override a mangling alias.
	* mangle.c (implicit_alias_p, remove_implicit_alias): New.
	(mangle_decl): Avoid creating conflicting alias with
	-fabi-compat-version=0, too.
	* cp-tree.h: Adjust.

From-SVN: r217950
2014-11-21 16:35:09 -05:00
Jason Merrill 6602e1095d re PR c++/63849 ([c++11] ICE on variadic alias template with wrappers)
PR c++/63849
	* mangle.c (decl_mangling_context): Use template_type_parameter_p.

From-SVN: r217949
2014-11-21 16:35:00 -05:00
Jason Merrill 169fe7fa43 re PR c++/63588 (ICE (segfault) on arm-linux-gnueabihf)
PR c++/63588
	* pt.c (uses_template_parms): Handle null argument.

From-SVN: r217948
2014-11-21 16:34:54 -05:00
Vladimir Makarov 18ea3d6112 re PR target/63897 (gcc.dg/torture/vector-2.c fails at on x86_64-apple-darwin14)
2014-11-21  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/63897
	* lra-lives.c (mark_regno_live, mark_regno_dead): Remove last
	argument.
	(process_bb_lives): Rename dead_insn_p on remove_p
	and global_live_info_p on dead_insn_p.  Calculate local live info
	unconditionally.  Remove last argument in calls mark_regno_live and
	mark_regno_dead.  Reorganize body of EXECUTE_IF_SET_IN_BITMAP.
	(lra_create_live_ranges): Rename to lra_create_live_ranges_1.
	Return bool.  Rename global_live_info_p on dead_insn_p.  Return
	flag of live info change.
	(lra_create_live_ranges): New.

From-SVN: r217947
2014-11-21 21:29:54 +00:00
Jakub Jelinek 92344ed0ca re PR target/63848 (FAIL: c-c++-common/torture/builtin-arith-overflow-17.c -O0 execution test)
PR target/63848
	PR target/63975
	* internal-fn.c (expand_arith_overflow_result_store,
	expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow): Use
	do_compare_rtx_and_jump instead of emit_cmp_and_jump_insns everywhere,
	adjust arguments to those functions.  Use unsignedp = true for
	EQ, NE, GEU, LEU, LTU and GTU comparisons.

From-SVN: r217946
2014-11-21 21:42:20 +01:00
Jakub Jelinek 09877e133f re PR tree-optimization/64006 (__builtin_mul_overflow fails to signal overflow)
PR tree-optimization/64006
	* tree-vrp.c (stmt_interesting_for_vrp): Return true
	for {ADD,SUB,MUL}_OVERFLOW internal calls.
	(vrp_visit_assignment_or_call): For {ADD,SUB,MUL}_OVERFLOW
	internal calls, check if any REALPART_EXPR/IMAGPART_EXPR
	immediate uses would change their value ranges and return
	SSA_PROP_INTERESTING if so, or SSA_PROP_NOT_INTERESTING
	if there are some REALPART_EXPR/IMAGPART_EXPR immediate uses
	interesting for vrp.

	* gcc.c-torture/execute/pr64006.c: New test.

From-SVN: r217945
2014-11-21 21:41:37 +01:00
Ilya Verbin eb23df5964 * Makefile.in: Regenerate.
From-SVN: r217944
2014-11-21 19:37:10 +00:00
Lynn Boger 6d8325a701 go-test.exp (go-set-goarch): Add case for ppc64le goarch value for go testing.
* go.test/go-test.exp (go-set-goarch): Add case for ppc64le goarch
	value for go testing.

From-SVN: r217942
2014-11-21 18:25:14 +00:00
Ian Lance Taylor 6f7ccafa91 runtime: GOARCH values for ppc64 BE & LE
ppc64 for BE
ppc64le for LE
issue 8654

From-SVN: r217941
2014-11-21 18:22:05 +00:00
Michael Meissner 12829505f2 re PR target/63965 (ICE: in extract_constrain_insn, at recog.c:2230 on ppc64)
2014-11-21  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/63965
	* config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Do not set
	Altivec & -16 mask if the type is not valid for Altivec registers.
	(rs6000_secondary_reload_memory): Add support for ((reg + const) +
	reg) that occurs during push_reload processing.

	* config/rs6000/altivec.md (altivec_mov<mode>): Add instruction
	alternative for moving constant vectors which are easy altivec
	constants to GPRs.  Set the length attribute each of the
	alternatives.

From-SVN: r217940
2014-11-21 18:03:09 +00:00
Matthew Fortune a871c139f0 Refine configure guard for MIPS .module availability
gcc/

	* configure.ac: When checking for MIPS .module support ensure that
	o32 FPXX is supported to avoid a second configure check.
	* configure: Regenerate.

From-SVN: r217939
2014-11-21 16:57:55 +00:00
Jiong Wang 5e32e83b6e [AArch64] Add vector pattern for __builtin_ctz
gcc/
    * config/aarch64/iterators.md (VS): New mode iterator.
    (vsi2qi): New mode attribute.
    (VSI2QI): Likewise.
    * config/aarch64/aarch64-simd-builtins.def: New entry for ctz.
    * config/aarch64/aarch64-simd.md (ctz<mode>2): New pattern for ctz.
    * config/aarch64/aarch64-builtins.c
    (aarch64_builtin_vectorized_function): Support BUILT_IN_CTZ.

  gcc/testsuite/
    * gcc.target/aarch64/vect_ctz_1.c: New testcase.

From-SVN: r217938
2014-11-21 16:56:21 +00:00
H.J. Lu a699d67255 Always use PIC option with -shared in libtool
Libtool needs to pass PIC option -shared when creating shared object to
link regular object files with slim-lto archive.

	PR bootstrap/63784
	* libtool.m4: Add $pic_flag with -shared.

boehm-gc/

	PR bootstrap/63784
	* configure: Regenerated.

gcc/

	PR bootstrap/63784
	* configure: Regenerated.

libatomic/

	PR bootstrap/63784
	* configure: Regenerated.

libbacktrace/

	PR bootstrap/63784
	* configure: Regenerated.

libcc1/

	PR bootstrap/63784
	* configure: Regenerated.

libcilkrts/

	PR bootstrap/63784
	* configure: Regenerated.

libffi/

	PR bootstrap/63784
	* configure: Regenerated.

libgfortran/

	PR bootstrap/63784
	* configure: Regenerated.

libgomp/

	PR bootstrap/63784
	* configure: Regenerated.

libitm/

	PR bootstrap/63784
	* configure: Regenerated.

libjava/

	PR bootstrap/63784
	* configure: Regenerated.

libjava/classpath/

	PR bootstrap/63784
	* configure: Regenerated.

libobjc/

	PR bootstrap/63784
	* configure: Regenerated.

libquadmath/

	PR bootstrap/63784
	* configure: Regenerated.

libsanitizer/

	PR bootstrap/63784
	* configure: Regenerated.

libssp/

	PR bootstrap/63784
	* configure: Regenerated.

libstdc++-v3/

	PR bootstrap/63784
	* configure: Regenerated.

libvtv/

	PR bootstrap/63784
	* configure: Regenerated.

lto-plugin/

	PR bootstrap/63784
	* configure: Regenerated.

From-SVN: r217937
2014-11-21 08:49:17 -08:00
Kyrylo Tkachov 522b094f15 [AArch64] Implement vsqrt_f64 intrinsic
* config/aarch64/arm_neon.h (vsqrt_f64): New intrinsic.

	* gcc.target/aarch64/simd/vsqrt_f64_1.c

From-SVN: r217936
2014-11-21 16:28:29 +00:00
Ilya Tocar 36e9b73ea9 Add x86 pcommit instruction.
gcc/

	* common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET,
	OPTION_MASK_ISA_PCOMMIT_SET): New.
	(ix86_handle_option): Handle OPT_mpcommit.
	* config.gcc: Add pcommitintrin.h
	* config/i386/pcommitintrin.h: New file.
	* config/i386/cpuid.h (bit_PCOMMIT): Define.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect pcommit.
	* config/i386/i386-c.c (ix86_target_macros_internal): Define
	__PCOMMIT__.
	* config/i386/i386.c (ix86_target_string): Add -mpcommit.
	(PTA_PCOMMIT): Define.
	(ix86_option_override_internal): Handle new option.
	(ix86_valid_target_attribute_inner_p): Add pcommit.
	(ix86_builtins): Add IX86_BUILTIN_PCOMMIT.
	(bdesc_special_args): Add __builtin_ia32_pcommit.
	* config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Define.
	* config/i386/i386.md (unspecv): Add UNSPECV_PCOMMIT.
	(pcommit): New instruction.
	* config/i386/i386.opt: Add mpcommit.
	* config/i386/x86intrin.h: Include pcommitintrin.h.

gcc/testsuite/

	* g++.dg/other/i386-2.C: Add -mpcommit.
	* g++.dg/other/i386-3.C: Ditto.
	* gcc.target/i386/pcommit-1.c: New test.
	* gcc.target/i386/sse-12.c: Add new options.
	* gcc.target/i386/sse-13.c: Ditto.
	* gcc.target/i386/sse-14.c: Ditto.
	* gcc.target/i386/sse-22.c: Ditto.
	* gcc.target/i386/sse-23.c: Ditto.

From-SVN: r217935
2014-11-21 19:04:20 +03:00
Mark Wielaard dcc9706615 PR debug/38757 gcc does not emit DW_LANG_C99.
For C and C++ add the language standard version in use to lang_hooks.name.
Change users of lang_hook.name to check with new functions lang_GNU_C or
lang_GNU_CXX. In dwarf2out.c output the DW_LANG_C version from the
lang_hooks.name and merge any LTO TRANSLATION_UNIT_LANGUAGE found. Adds
two testcases to dwarf2.exp to check the right DWARF DW_AT_language is set
on the compile_unit depending on the -std=c89 or -std=c99 setting.

gcc/c-family/ChangeLog

	PR debug/38757
	* c-opts.c (set_std_c89): Set lang_hooks.name.
	(set_std_c99): Likewise.
	(set_std_c11): Likewise.
	(set_std_cxx98): Likewise.
	(set_std_cxx11): Likewise.
	(set_std_cxx14): Likewise.
	(set_std_cxx1z): Likewise.

gcc/ChangeLog

	PR debug/38757
	* config/avr/avr-c.c (avr_cpu_cpp_builtins): Use lang_GNU_C.
	* config/darwin.c (darwin_file_end): Use lang_GNU_CXX.
	(darwin_override_options): Likewise.
	* config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
	Likewise.
	* config/rs6000/rs6000.c (rs6000_output_function_epilogue):
	Likewise.
	* dbxout.c (get_lang_number): Likewise.
	(dbxout_type): Likewise.
	(dbxout_symbol_location): Likewise.
	* dwarf2out.c (add_prototyped_attribute): Add DW_AT_prototype
	also for DW_LANG_{C,C99,ObjC}.
	(highest_c_language): New function.
	(gen_compile_unit_die): Call highest_c_language to merge LTO
	TRANSLATION_UNIT_LANGUAGE. Use strncmp language_string to
	determine if DW_LANG_C99 or DW_LANG_C89 should be returned.
	* fold-const.c (fold_cond_expr_with_comparison): Use lang_GNU_CXX.
	* langhooks.h (struct lang_hooks): Add version comment to name.
	(lang_GNU_C): New function declaration.
	(lang_GNU_CXX): Likewise.
	* langhooks.c (lang_GNU_C): New function.
	(lang_GNU_CXX): Likewise.
	* vmsdbgout.c (vmsdbgout_init): Use lang_GNU_C and lang_GNU_CXX.

gcc/testsuite/ChangeLog

	PR debug/38757
	* gcc.dg/debug/dwarf2/lang-c89.c: New test.
	* gcc.dg/debug/dwarf2/lang-c99.c: Likewise.

From-SVN: r217934
2014-11-21 16:00:06 +00:00
Ilya Tocar 9c3bca1143 Support clwb x86 instruction.
gcc/
	* common/config/i386/i386-common.c (OPTION_MASK_ISA_CLWB_UNSET,
	OPTION_MASK_ISA_CLWB_SET): New.
	(ix86_handle_option): Handle OPT_mclwb.
	* config.gcc: Add clwbintrin.h.
	* config/i386/clwbintrin.h: New file.
	* config/i386/cpuid.h (bit_CLWB): Define.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect clwb. 
	* config/i386/i386-c.c (ix86_target_macros_internal): Define
	__CLWB__.
	* config/i386/i386.c (ix86_target_string): Add -mclwb.
	(PTA_CLWB): Define.
	(ix86_option_override_internal): Handle new option.
	(ix86_valid_target_attribute_inner_p): Add clwb.
	(ix86_builtins): Add IX86_BUILTIN_CLWB.
	(ix86_init_mmx_sse_builtins): Add __builtin_ia32_clwb.
	(ix86_expand_builtin): Handle IX86_BUILTIN_CLWB.
	* config/i386/i386.h (TARGET_CLWB, TARGET_CLWB_P): Define.
	* config/i386/i386.md (unspecv): Add UNSPECV_CLWB.
	(clwb): New instruction.
	* config/i386/i386.opt: Add mclwb.
	* config/i386/x86intrin.h: Include clwbintrin.h.

gcc/testsuite/

	* g++.dg/other/i386-2.C: Add -mclwb.
	* g++.dg/other/i386-3.C: Ditto.
	* gcc.target/i386/clwb-1.c: New test.
	* gcc.target/i386/sse-12.c: Add new options.
	* gcc.target/i386/sse-13.c: Ditto.
	* gcc.target/i386/sse-14.c: Ditto.
	* gcc.target/i386/sse-22.c: Ditto.
	* gcc.target/i386/sse-23.c: Ditto.

From-SVN: r217933
2014-11-21 18:52:49 +03:00
Ilya Tocar 3dcc8af5cd Add avx512vbmi instructions.
gcc/

	* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET
	OPTION_MASK_ISA_AVX512VBMI_UNSET): New.
	(ix86_handle_option): Handle OPT_mavx512vbmi.
	* config.gcc: Add avx512vbmiintrin.h, avx512vbmivlintrin.h.
	* config/i386/avx512vbmiintrin.h: New file.
	* config/i386/avx512vbmivlintrin.h: Ditto.
	* config/i386/cpuid.h (bit_AVX512VBMI): New.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vbmi.
	* config/i386/i386-c.c (ix86_target_macros_internal): Define
	__AVX512VBMI__.
	* config/i386/i386.c (ix86_target_string): Add -mavx512vbmi.
	(PTA_AVX512VBMI): Define.
	(ix86_option_override_internal): Handle new options.
	(ix86_valid_target_attribute_inner_p): Add avx512vbmi,
	(ix86_builtins): Add IX86_BUILTIN_VPMULTISHIFTQB512,
	IX86_BUILTIN_VPMULTISHIFTQB256, IX86_BUILTIN_VPMULTISHIFTQB128,
	IX86_BUILTIN_VPERMVARQI512_MASK, IX86_BUILTIN_VPERMT2VARQI512,
	IX86_BUILTIN_VPERMT2VARQI512_MASKZ, IX86_BUILTIN_VPERMI2VARQI512,
	IX86_BUILTIN_VPERMVARQI256_MASK, IX86_BUILTIN_VPERMVARQI128_MASK,
	IX86_BUILTIN_VPERMT2VARQI256, IX86_BUILTIN_VPERMT2VARQI256_MASKZ,
	IX86_BUILTIN_VPERMT2VARQI128, IX86_BUILTIN_VPERMI2VARQI256,
	IX86_BUILTIN_VPERMI2VARQI128.
	(bdesc_special_args): Add __builtin_ia32_vpmultishiftqb512_mask,
	__builtin_ia32_vpmultishiftqb256_mask,
	__builtin_ia32_vpmultishiftqb128_mask,
	__builtin_ia32_permvarqi512_mask, __builtin_ia32_vpermt2varqi512_mask,
	__builtin_ia32_vpermt2varqi512_maskz,
	__builtin_ia32_vpermi2varqi512_mask, __builtin_ia32_permvarqi256_mask,
	__builtin_ia32_permvarqi128_mask, __builtin_ia32_vpermt2varqi256_mask,
	__builtin_ia32_vpermt2varqi256_maskz,
	__builtin_ia32_vpermt2varqi128_mask,
	__builtin_ia32_vpermt2varqi128_maskz,
	__builtin_ia32_vpermi2varqi256_mask,
	__builtin_ia32_vpermi2varqi128_mask.
	(ix86_hard_regno_mode_ok): Allow big masks for AVX512VBMI.
	* config/i386/i386.h (TARGET_AVX512VBMI, TARGET_AVX512VBMI_P): Define.
	* config/i386/i386.opt: Add mavx512vbmi.
	* config/i386/immintrin.h: Include avx512vbmiintrin.h,
	avx512vbmivlintrin.h.
	* config/i386/sse.md (unspec): Add UNSPEC_VPMULTISHIFT.
	(VI1_AVX512VL): New iterator.
	(<avx512>_permvar<mode><mask_name>): Use it.
	(<avx512>_vpermi2var<mode>3_maskz): Ditto.
	(<avx512>_vpermi2var<mode>3<sd_maskz_name>): Ditto.
	(<avx512>_vpermi2var<mode>3_mask): Ditto.
	(<avx512>_vpermt2var<mode>3_maskz): Ditto.
	(<avx512>_vpermt2var<mode>3<sd_maskz_name>): Ditto.
	(<avx512>_vpermt2var<mode>3_mask): Ditto.
	(vpmultishiftqb<mode><mask_name>): Ditto.

gcc/testsuite/

	* g++.dg/other/i386-2.C: Add -mavx512vbmi.
	* g++.dg/other/i386-3.C: Ditto.
	* gcc.target/i386/avx512f-helper.h: Add avx512vbmi-check.h.
	* gcc.target/i386/avx512vbmi-check.h: Ditto.
	* gcc.target/i386/avx512vbmi-vpermb-1.c: Ditto.
	* gcc.target/i386/avx512vbmi-vpermb-2.c: Ditto.
	* gcc.target/i386/avx512vbmi-vpermi2b-1.c: Ditto.
	* gcc.target/i386/avx512vbmi-vpermi2b-2.c: Ditto.
	* gcc.target/i386/avx512vbmi-vpermt2b-1.c: Ditto.
	* gcc.target/i386/avx512vbmi-vpermt2b-2.c: Ditto.
	* gcc.target/i386/avx512vbmi-vpmultishiftqb-1.c: Ditto.
	* gcc.target/i386/avx512vbmi-vpmultishiftqb-2.c: Ditto.
	* gcc.target/i386/avx512vl-vpermb-2.c: Ditto.
	* gcc.target/i386/avx512vl-vpermi2b-2.c: Ditto.
	* gcc.target/i386/avx512vl-vpermt2b-2.c: Ditto.
	* gcc.target/i386/avx512vl-vpmaddhuq-2.c: Ditto.
	* gcc.target/i386/avx512vl-vpmaddluq-2.c: Ditto.
	* gcc.target/i386/avx512vl-vpmultishiftqb-2.c: Ditto.
	* gcc.target/i386/i386.exp (check_effective_target_avx512vbmi): New.
	* gcc.target/i386/sse-12.c: Add new options.
	* gcc.target/i386/sse-13.c: Ditto.
	* gcc.target/i386/sse-14.c: Ditto.
	* gcc.target/i386/sse-22.c: Ditto.
	* gcc.target/i386/sse-23.c: Ditto.

From-SVN: r217932
2014-11-21 18:44:37 +03:00
Ulrich Weigand de6fba39f3 re PR rtl-optimization/63952 (bootstrap failure (ICE in prepare_cmp_insn) on s390x in libjava)
PR rtl-optimization/63952
	* optabs.c (prepare_cmp_insn): Do not call can_compare_p for CCmode.
	* config/s390/s390.md ("cbranchcc4"): Accept any s390_comparison.
	Remove incorrect TARGET_HARD_FLOAT check and no-op expander code.

From-SVN: r217929
2014-11-21 15:33:27 +00:00
Ilya Tocar 4190ea3804 Add avx512ifma instructions.
gcc/
	* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512IFMA_SET,
	OPTION_MASK_ISA_AVX512IFMA_UNSET): New.
	(ix86_handle_option): Handle OPT_mavx512ifma.
	* config.gcc: Add avx512ifmaintrin.h, avx512ifmavlintrin.h.
	* config/i386/avx512ifmaintrin.h: New file.
	* config/i386/avx512ifmaivlntrin.h: Ditto.
	* config/i386/cpuid.h (bit_AVX512IFMA): New.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect
	avx512ifma.
	* config/i386/i386-c.c (ix86_target_macros_internal): Define
	__AVX512IFMA__.
	* config/i386/i386.c (ix86_target_string): Add -mavx512ifma.
	(PTA_AVX512IFMA): Define.
	(ix86_option_override_internal): Handle new options.
	(ix86_valid_target_attribute_inner_p): Add avx512ifma.
	(ix86_builtins): Add IX86_BUILTIN_VPMADD52LUQ512,
	IX86_BUILTIN_VPMADD52HUQ512, IX86_BUILTIN_VPMADD52LUQ256,
	IX86_BUILTIN_VPMADD52HUQ256, IX86_BUILTIN_VPMADD52LUQ128,
	IX86_BUILTIN_VPMADD52HUQ128, IX86_BUILTIN_VPMADD52LUQ512_MASKZ,
	IX86_BUILTIN_VPMADD52HUQ512_MASKZ, IX86_BUILTIN_VPMADD52LUQ256_MASKZ,
	IX86_BUILTIN_VPMADD52HUQ256_MASKZ, IX86_BUILTIN_VPMADD52LUQ128_MASKZ,
	IX86_BUILTIN_VPMADD52HUQ128_MASKZ.
	(bdesc_special_args): Add __builtin_ia32_vpmadd52luq512_mask,
	__builtin_ia32_vpmadd52luq512_maskz,
	__builtin_ia32_vpmadd52huq512_mask,
	__builtin_ia32_vpmadd52huq512_maskx,
	__builtin_ia32_vpmadd52luq256_mask,
	__builtin_ia32_vpmadd52luq256_maskz,
	__builtin_ia32_vpmadd52huq256_mask,
	__builtin_ia32_vpmadd52huq256_maskz,
	__builtin_ia32_vpmadd52luq128_mask,
	__builtin_ia32_vpmadd52luq128_maskz,
	__builtin_ia32_vpmadd52huq128_mask,
	__builtin_ia32_vpmadd52huq128_maskz,
	* config/i386/i386.h (TARGET_AVX512IFMA, TARGET_AVX512IFMA_P): Define.
	* config/i386/i386.opt: Add mavx512ifma.
	* config/i386/immintrin.h: Include avx512ifmaintrin.h,
	avx512ifmavlintrin.h.
	* config/i386/sse.md (unspec): Add UNSPEC_VPMADD52LUQ,
	UNSPEC_VPMADD52HUQ.
	(VPMADD52): New iterator.
	(vpmadd52type): New attribute.
	(vpamdd52huq<mode>_maskz): New.
	(vpamdd52luq<mode>_maskz): Ditto.
	(vpamdd52<vpmadd52type><mode><sd_maskz_name>): Ditto.
	(vpamdd52<vpmadd52type><mode>_mask): Ditto.

gcc/testsuite/

	* g++.dg/other/i386-2.C: Add -mavx512ifma.
	* g++.dg/other/i386-3.C: Ditto.
	* gcc.target/i386/avx512f-helper.h: Add avx512ifma-check.h.
	* gcc.target/i386/avx512ifma-check.h: New.
	* gcc.target/i386/avx512ifma-vpmaddhuq-1.c: Ditto.
	* gcc.target/i386/avx512ifma-vpmaddhuq-2.c: Ditto.
	* gcc.target/i386/avx512ifma-vpmaddluq-1.c: Ditto.
	* gcc.target/i386/avx512ifma-vpmaddluq-2.c: Ditto.
	* gcc.target/i386/avx512vl-vpmaddhuq-2.c: Ditto.
	* gcc.target/i386/avx512vl-vpmaddluq-2.c: Ditto.
	* gcc.target/i386/i386.exp (check_effective_target_avx512ifma): New.
	* gcc.target/i386/sse-12.c: Add new options.
	* gcc.target/i386/sse-13.c: Ditto.
	* gcc.target/i386/sse-14.c: Ditto.
	* gcc.target/i386/sse-22.c: Ditto.
	* gcc.target/i386/sse-23.c: Ditto.

2014-11-21  Georg-Johann Lay  <avr@gjlay.de>

From-SVN: r217928
2014-11-21 18:28:24 +03:00
Alan Lawrence 8f399c3e85 Revert: Workaround following [PATCH] Pul all constants last in tree_swap_operands_p
https://gcc.gnu.org/ml/gcc-patches/2014-09/msg01509.html
	2014-09-22  Alan Lawrence  <alan.lawrence@arm.com>
	gcc/:
        	* fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.

From-SVN: r217927
2014-11-21 14:44:31 +00:00
Andrew Bennett 3b6eaaa53d [MIPS] If using branch likelies in MIPS sync code fill the delay slot
with a nop.

gcc/
	* config/mips/mips.c (mips_process_sync_loop): Place a 
	nop in the delay slot of the branch likely instruction.
	(mips_output_sync_loop): Ensure mips_branch_likely is 
	set before calling mips_output_sync_loop.
	(mips_sync_loop_insns): Likewise.

From-SVN: r217926
2014-11-21 14:34:55 +00:00
William Schmidt 4bec983122 missing ChangeLog entry
From-SVN: r217925
2014-11-21 14:20:42 +00:00
William Schmidt 987588842c PR/target 63673
2014-11-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR/target 63673
	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Allow
	the base pointer of vec_vsx_ld and vec_vsx_st to take a pointer to
	double.

From-SVN: r217924
2014-11-21 14:10:27 +00:00
Georg-Johann Lay 81d9b5a392 Add ChangeLog entry
From-SVN: r217923
2014-11-21 14:05:32 +00:00