1. 28 Apr, 2016 29 commits
    • nds32: Fix casesi (PR70668) · 9759608c
      Expanders do not have more elements in the operands array than declared
      in the pattern.  So, we cannot use operands[5] here.  Instead just
      declare and use another rtx.
      
      
      	PR target/70668
      	* config/nds32/nds32.md (casesi): Don't access the operands array
      	out of bounds.
      
      From-SVN: r235583
      Segher Boessenkool committed
    • i386.md (zeroing peephole2): Use general_reg_operand. · e41ebdf1
      	* config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
      	(or $-1,reg peephole2): Ditto.
      	(strict_low_part zeroing peephole2): Use SWI12 mode iterator.
      
      From-SVN: r235581
      Uros Bizjak committed
    • doc/extend.texi: Discourage use of the optimize attribute · 893100c3
      	* doc/extend.texi (Common Function Attributes) [optimize]:
      	Discourage use of the optimize attribute.
      
      From-SVN: r235580
      Markus Trippelsdorf committed
    • Forgotten gcc/java/ChangeLog entry. · bf6b9e5d
      From-SVN: r235579
      Rainer Orth committed
    • This patch adds support for the signed and unsigned int versions of the... · 0a31a09a
      This patch adds support for the signed and unsigned int versions of the
      vec_adde altivec builtins from the Power Architecture 64-Bit ELF V2 ABI
      OpenPOWER ABI for Linux Supplement (16 July 2015 Version 1.1). There are
      many of the builtins that are missing and this is the first of a series
      of patches to add them.
      
      There aren't instructions for the int versions of vec_adde so the
      output code is built from other built-ins that do have instructions
      which in this case is just two vec_adds with a vec_and to ensure the
      carry vector is comprised of only the values 0 or 1.
      
      The new test cases are executable tests which verify that the generated
      code produces expected values. C macros were used so that the same
      test case could be used for both the signed and unsigned versions. An
      extra executable test case is also included to ensure that the modified
      support for the __int128 versions of vec_adde is not broken. The same
      test case could not be used for both int and __int128 because of some
      differences in loading and storing the vectors.
      
      Bootstrapped and tested on powerpc64le-unknown-linux-gnu with no
      regressions. Is this ok for trunk?
      
      [gcc]
      
      2016-04-28  Bill Seurer  <seurer@linux.vnet.ibm.com>
      
      	* config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
      	special case builtin.
      	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
      	ALTIVEC_BUILTIN_VEC_ADDE.
      	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
      	support for ALTIVEC_BUILTIN_VEC_ADDE.
      	* config/rs6000/rs6000.c (altivec_init_builtins): Add definition
      	for __builtin_vec_adde.
      
      [gcc/testsuite]
      
      2016-04-28  Bill Seurer  <seurer@linux.vnet.ibm.com>
      
      	* gcc.target/powerpc/vec-adde.c: New test.
      	* gcc.target/powerpc/vec-adde-int128.c: New test.
      
      From-SVN: r235577
      Bill Seurer committed
    • i386.md (sse4_1_round<mode>2): Add avx512f alternative. · 3ddffba9
      	* config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
      	* config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
      
      	* gcc.target/i386/avx-vround-1.c: New test.
      	* gcc.target/i386/avx-vround-2.c: New test.
      	* gcc.target/i386/avx512vl-vround-1.c: New test.
      	* gcc.target/i386/avx512vl-vround-2.c: New test.
      
      From-SVN: r235576
      Jakub Jelinek committed
    • Don't include minor version in GCJ ABI version (PR java/70839) · 97fceb9f
      	PR java/70839
      	* decl.c (parse_version): Remove minor handling.
      
      From-SVN: r235575
      Rainer Orth committed
    • Cilk Plus testsuite needs massive cleanup (PR testsuite/70595) · 713dedcd
      	gcc:
      	PR testsuite/70595
      	* doc/sourcebuild.texi (Effective-Target Keywords, Other
      	attributes): Document cilkplus_runtime.
      
      	gcc/testsuite:
      	PR testsuite/70595
      	* lib/target-supports.exp (check_libcilkrts_available): Rename to ...
      	(check_effective_target_cilkplus_runtime): ... this.
      	* g++.dg/cilk-plus/cilk-plus.exp: Adapt to it.
      	* gcc.dg/cilk-plus/cilk-plus.exp: Likewise.
      
      	* c-c++-common/cilk-plus/CK/cilk-for-2.c: Remove dg-do target selector.
      	Require cilkplus_runtime.
      	Don't add -lcilkrts.
      	* c-c++-common/cilk-plus/CK/cilk-fors.c: Likewise.
      	* c-c++-common/cilk-plus/CK/cilk_for_grain.c: Likewise.
      	* c-c++-common/cilk-plus/CK/cilk_for_ptr_iter.c: Likewise.
      	* c-c++-common/cilk-plus/CK/fib.c: Likewise.
      	* c-c++-common/cilk-plus/CK/fib_init_expr_xy.c: Likewise.
      	* c-c++-common/cilk-plus/CK/fib_no_return.c: Likewise.
      	* c-c++-common/cilk-plus/CK/fib_no_sync.c: Likewise.
      	* c-c++-common/cilk-plus/CK/nested_cilk_for.c: Likewise.
      	* c-c++-common/cilk-plus/CK/pr60586.c: Likewise.
      	* c-c++-common/cilk-plus/CK/pr69826-1.c: Likewise.
      	* c-c++-common/cilk-plus/CK/pr69826-2.c: Likewise.
      	* c-c++-common/cilk-plus/CK/spawnee_inline.c: Likewise.
      	* c-c++-common/cilk-plus/CK/spawner_inline.c: Likewise.
      	* c-c++-common/cilk-plus/CK/spawning_arg.c: Likewise.
      	* c-c++-common/cilk-plus/CK/steal_check.c: Likewise.
      	* c-c++-common/cilk-plus/CK/varargs_test.c: Likewise.
      	* g++.dg/cilk-plus/CK/catch_exc.cc: Likewise.
      	* g++.dg/cilk-plus/CK/cilk-for-tplt.cc: Likewise.
      	* g++.dg/cilk-plus/CK/const_spawn.cc: Likewise.
      	* g++.dg/cilk-plus/CK/fib-opr-overload.cc: Likewise.
      	* g++.dg/cilk-plus/CK/fib-tplt.cc: Likewise.
      	* g++.dg/cilk-plus/CK/for1.cc: Likewise.
      	* g++.dg/cilk-plus/CK/lambda_spawns.cc: Likewise.
      	* g++.dg/cilk-plus/CK/lambda_spawns_tplt.cc: Likewise.
      	* g++.dg/cilk-plus/CK/pr60586.cc: Likewise.
      	* g++.dg/cilk-plus/CK/pr66326.cc: Likewise.
      	* g++.dg/cilk-plus/CK/stl_iter.cc: Likewise.
      	* g++.dg/cilk-plus/CK/stl_rev_iter.cc: Likewise.
      	* g++.dg/cilk-plus/CK/stl_test.cc: Likewise.
      
      	* c-c++-common/cilk-plus/CK/pr63307.c: Remove dg-do target selector.
      	* c-c++-common/cilk-plus/SE/ef_error3.c: Likewise.
      
      	* c-c++-common/cilk-plus/SE/ef_error2.c: Explain target selector.
      
      	* c-c++-common/cilk-plus/CK/test__cilk.c: Run if
      	cilkplus_runtime.
      
      From-SVN: r235574
      Rainer Orth committed
    • Update .po files. · ef241650
      gcc/po:
      	* be.po, da.po, de.po, el.po, es.po, fi.po, fr.po, hr.po, id.po,
      	ja.po, nl.po, ru.po, sr.po, sv.po, tr.po, uk.po, vi.po, zh_CN.po,
      	zh_TW.po: Update.
      
      libcpp/po:
      	* be.po, ca.po, da.po, de.po, el.po, eo.po, es.po, fi.po, fr.po,
      	id.po, ja.po, nl.po, pr_BR.po, ru.po, sr.po, sv.po, tr.po, uk.po,
      	vi.po, zh_CN.po, zh_TW.po: Update.
      
      From-SVN: r235571
      Joseph Myers committed
    • Verify that context of local DECLs is the current function · a6bf99f0
      2016-04-28  Martin Jambor  <mjambor@suse.cz>
      
      	* tree-cfg.c (verify_expr): Verify that local declarations belong to
      	this function.  Call verify_expr on MEM_REFs and bases of other
      	handled_components.
      
      From-SVN: r235570
      Martin Jambor committed
    • [internal-fn.c][committed] Convert conditional compilation on WORD_REGISTER_OPERATIONS · 208b85bb
      	* internal-fn.c (expand_arith_overflow): Convert preprocessor check
      	for WORD_REGISTER_OPERATIONS to runtime check.
      
      From-SVN: r235569
      Kyrylo Tkachov committed
    • [ARC] Pass mfpuda to assembler. · 31ae5117
      gcc/
      2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
      
      From-SVN: r235568
      Claudiu Zissulescu committed
    • [ARC] Fix FPX/FPUDA code gen when compiling for big-endian. · 7d81a567
      gcc/
      2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc.c (arc_process_double_reg_moves): Fix for
      	big-endian compilation.
      	(arc_rtx_costs): Fix high/low naming.
      	* config/arc/arc.md (addf3): Likewise.
      	(subdf3): Likewise.
      	(muldf3): Likewise.
      
      From-SVN: r235567
      Claudiu Zissulescu committed
    • re PR tree-optimization/70840 (revisit reassoc handling of pow / powi, amend match.pd for powi) · de3fbea3
      2016-04-28  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/70840
      	* match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
      	Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
      	Mark x * pow(x,c) -> pow(x,c+1) commutative.
      	Add powi(x,y) * powi(z,y) -> powi(x*z,y).
      
      From-SVN: r235566
      Richard Biener committed
    • libstdc++/70766 use std::addressof instead of operator& · 9f9eb84e
      	PR libstdc++/70766
      	* include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use
      	__addressof.
      	* include/bits/stream_iterator.h (istream_iterator, ostream_iterator):
      	Likewise.
      	* include/std/atomic (atomic<_Tp>): Likewise.
      	* include/std/shared_mutex (shared_lock): Likewise.
      	* testsuite/24_iterators/istream_iterator/70766.cc: New test.
      	* testsuite/24_iterators/ostream_iterator/70766.cc : New test.
      	* testsuite/29_atomics/atomic/60695.cc: Adjust dg-error line number.
      	* testsuite/29_atomics/atomic/70766.cc: New test.
      	* testsuite/30_threads/shared_lock/70766.cc: New test.
      
      From-SVN: r235565
      Jonathan Wakely committed
    • hashtable_policy.h (__detail::_Insert_base, [...]): Improve comments. · 272b2ce4
      	* include/bits/hashtable_policy.h (__detail::_Insert_base,
      	__detail::_Insert): Improve comments.
      
      From-SVN: r235564
      Jonathan Wakely committed
    • [AArch64] Define WORD_REGISTER_OPERATIONS to zero and comment why · 56c9ef5f
      	* config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
      	and explain why in a comment.
      
      From-SVN: r235563
      Kyrylo Tkachov committed
    • [ARC] Don't use drsub* instructions when selecting fpuda. · 4ac2f36e
      The double precision floating point assist instructions are not
      implementing the reverse double subtract instruction (drsub) found in
      the FPX extension.
      
      gcc/
      2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc.md (cpu_facility): Add fpx variant.
      	(subdf3): Prohibit use reverse sub when assist operations option
      	is enabled.
      	* config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
      	instructions only when FPX is enabled.
              * testsuite/gcc.target/arc/trsub.c: New test.
      
      From-SVN: r235562
      Claudiu Zissulescu committed
    • i386.md (*fop_<mode>_1_mixed): Do not check for mult_operator when calculating "type" attribute. · e54a38e8
      	* config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
      	mult_operator when calculating "type" attribute.
      	(*fop_<mode>_1_i387): Ditto.
      	(*fop_xf_1_i387): Ditto.
      	(x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
      	Use std::swap to swap operands.  Use RTL expressions to generate
      	converted pattern.
      
      From-SVN: r235561
      Uros Bizjak committed
    • Replace AWK script with the python script. · 4877829b
      	* analyze_brprob: Remove.
      	* analyze_brprob.py: New file.
      
      From-SVN: r235560
      Martin Liska committed
    • [ARC] Add TLS support. · 28633bbd
      gcc/
      2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
      	    Joern Rennecke  <joern.rennecke@embecosm.com>
      
      	* config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
      	declaration.
      	(emit_pic_move): Remove.
      	(arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
      	* config/arc/arc.c (emit_pic_move): Removed.
      	(TARGET_HAVE_TLS): Define.
      	(arc_conditional_register_usage): Test for arc_tp_regno.
      	(arc_print_operand, arc_print_operand_address): Handle TLS
      	unspecs.
      	(arc_needs_pcl_p): New function.
      	(arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
      	(arc_legitimate_pic_addr_p): Handle TLS unspecs.
      	(arc_raw_symbolic_reference_mentioned_p): Likewise.
      	(arc_get_tp, arc_emit_call_tls_get_addr): New function.
      	(arc_legitimize_tls_address): Likewise.
      	(DTPOFF_ZERO_SYM): Define.
      	(arc_legitimize_pic_address): Make it static, handle TLS cases.
      	(arc_output_pic_addr_const): Print TLS unspecs.
      	(prepare_pic_move): New function, replaces emit_pic_move.
      	(arc_legitimate_constant_p): Handle TLS unspecs.
      	(arc_legitimate_address_p): Likewise.
      	(arc_rewrite_small_data_p): Use assert for TLS constants.
      	(prepare_move_operands): Use prepare_pic_move.
      	(arc_legitimize_address): Legitimize tls addresses.
      	(arc_epilogue_uses): Check for arc_tp_regno.
      	(arc_eh_uses, insn_is_tls_gd_dispatch): New function.
      	* config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
      	Define.
      	[DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
      	Likewise.
      	[DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
      	%(arc_tls_extra_start_spec).
      	(TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
      	(REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
      	(EH_USES): Define.
      	(INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
      	* config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
      	(UNSPEC_TLS_OFF): Add.
      	(R10_REG): Define.
      	(tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
      	(get_thread_pointersi): New patterns.
      	* config/arc/arc.opt (mtp-regno): New option.
      	* config/arc/predicates.md (move_src_operand): Handle TLS symbols.
      	(move_dest_operand): Likewise.
      	* configure: Regenerate.
      	* configure.ac: Add arc*-*-* case to test for tls.
      	* doc/invoke.texi (ARC options): Document mtp-regno.
      
      Co-Authored-By: Joern Rennecke <joern.rennecke@embecosm.com>
      
      From-SVN: r235559
      Claudiu Zissulescu committed
    • [ARC/LIBGCC] Add TLS support. · 8b48923b
      libgcc/
      2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
      	    Joern Rennecke  <joern.rennecke@embecosm.com>
      
      	* config/arc/crttls.S: New file.
      	* config/arc/t-arc: New rule.
      	* config.host (arc*-*-elf*, arc*-*-linux*): Add crttls.o.
      
      Co-Authored-By: Joern Rennecke <joern.rennecke@embecosm.com>
      
      From-SVN: r235558
      Claudiu Zissulescu committed
    • re PR ada/70786 (Missing "not" breaks Ada.Text_IO.Get_Immediate(File, Item, Available)) · 24efbb3e
      	PR ada/70786
      	* a-textio.adb (Get_Immediate): Add missing 'not' in expression.
      
      From-SVN: r235554
      Eric Botcazou committed
    • [ARC] Add SIMD extensions for ARC HS · 00c072ae
      gcc/
      2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc.c (arc_vector_mode_supported_p): Add support for
      	the new ARC HS SIMD instructions.
      	(arc_preferred_simd_mode): New function.
      	(arc_autovectorize_vector_sizes): Likewise.
      	(TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
      	(TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
      	(arc_init_reg_tables): Accept new ARC HS SIMD modes.
      	(arc_init_builtins): Add new SIMD builtin types.
      	(arc_split_move): Handle 64 bit vector moves.
      	* config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
      	(TARGET_PLUS_QMACW): Define.
      	* config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
      	(DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
      	(VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
      	(VSUBADD4H): New builtins.
      	* config/arc/simdext.md: Add new ARC HS SIMD instructions.
      	* testsuite/gcc.target/arc/builtin_simdarc.c: New file.
      
      From-SVN: r235551
      Claudiu Zissulescu committed
    • c-common.c (get_source_date_epoch): New function... · 174f6622
      gcc/c-family/ChangeLog:
      
      2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
      	    Matthias Klose  <doko@debian.org>
      
      	* c-common.c (get_source_date_epoch): New function, gets the environment
      	variable SOURCE_DATE_EPOCH and parses it as long long with error 
      	handling.
      	* c-common.h (get_source_date_epoch): Prototype.
      	* c-lex.c (c_lex_with_flags): set parse_in->source_date_epoch.
      
      gcc/ChangeLog:
      
      2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
      	    Matthias Klose  <doko@debian.org>
      
      	* doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
      
      libcpp/ChangeLog:
      
      2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
      	    Matthias Klose  <doko@debian.org>
      
      	* include/cpplib.h (cpp_init_source_date_epoch): Prototype.
      	* init.c (cpp_init_source_date_epoch): New function.
      	* internal.h: Added source_date_epoch variable to struct
      	cpp_reader to store a reproducible date.
      	* macro.c (_cpp_builtin_macro_text): Set pfile->date timestamp from 
      	pfile->source_date_epoch instead of localtime if source_date_epoch is 
      	set, to be used for __DATE__ and __TIME__ macros to help reproducible 
      	builds.
      
      Co-Authored-By: Matthias Klose <doko@debian.org>
      
      From-SVN: r235550
      Eduard Sanou committed
    • decl.c (parse_version): Don't encode the minor version in the abi version. · a564d350
      2016-04-28  Matthias Klose  <doko@ubuntu.com>
      
              * decl.c (parse_version): Don't encode the minor version in the abi
              version.
      
      From-SVN: r235546
      Matthias Klose committed
    • re PR tree-optimization/70777 (x*x pessimised to pow(x,2) with -Og -ffast-math) · cc5999c8
      2016-04-28  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/70777
      	* fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
      	canonicalization.
      
      From-SVN: r235545
      Richard Biener committed
    • sh-common.c: Remove SH5 support. · e1fab8ba
      gcc/
      	* common/config/sh/sh-common.c: Remove SH5 support.
      	* config/sh/constraints.md: Likewise.
      	* config/sh/config/sh/elf.h: Likewise.
      	* config/sh/linux.h: Likewise.
      	* config/sh/netbsd-elf.h: Likewise.
      	* config/sh/predicates.md: Likewise.
      	* config/sh/sh-c.c: Likewise.
      	* config/sh/sh-protos.h: Likewise.
      	* config/sh/sh.c: Likewise.
      	* config/sh/sh.h: Likewise.
      	* config/sh/sh.md: Likewise.
      	* config/sh/sh.opt: Likewise.
      	* config/sh/sync.md: Likewise.
      	* config/sh/sh64.h: Delete.
      	* config/sh/shmedia.h: Likewise.
      	* config/sh/shmedia.md: Likewise.
      	* config/sh/sshmedia.h: Likewise.
      	* config/sh/t-netbsd-sh5-64: Likewise.
      	* config/sh/t-sh64: Likewise.
      	* config/sh/ushmedia.h: Likewise.
      
      From-SVN: r235544
      Oleg Endo committed
    • Daily bump. · 50e017d0
      From-SVN: r235543
      GCC Administrator committed
  2. 27 Apr, 2016 11 commits
    • i386.md (sign_extend to memory peephole2s): Use general_reg_operand instead of… · c68439b9
      i386.md (sign_extend to memory peephole2s): Use general_reg_operand instead of register_operand predicate.
      
      	* config/i386/i386.md (sign_extend to memory peephole2s): Use
      	general_reg_operand instead of register_operand predicate.
      
      From-SVN: r235539
      Uros Bizjak committed
    • params.def (MIN_PARTITION_SIZE): Set default value to 10000. · 4245b087
      2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
      
      	* params.def (MIN_PARTITION_SIZE): Set default value to 10000.
      
      From-SVN: r235538
      Prathamesh Kulkarni committed
    • match.pd: unsigned A - B > A --> A < B · 3563f78f
      2016-04-27  Marc Glisse  <marc.glisse@inria.fr>
      
      gcc/
      	* match.pd (A - B > A, A + B < A): New transformations.
      
      gcc/testsuite/
      	* gcc.dg/tree-ssa/overflow-2.c: New testcase.
      	* gcc.dg/tree-ssa/minus-ovf.c: Likewise.
      
      From-SVN: r235537
      Marc Glisse committed
    • Reduce nesting of parentheses in conditionals generated by genattrtab · 044a73da
      gcc/ChangeLog:
      
      	* genattrtab.c (write_test_expr): New parameter EMIT_PARENS
      	which defaults to true.  Emit an outer pair of parentheses only if
      	EMIT_PARENS.  When continuing a chain of && or || (or & or |),
      	don't emit parentheses for the right-hand operand.
      
      From-SVN: r235536
      Patrick Palka committed
    • re PR c++/69024 ([cilkpus] cilk_spawn is broken for initializations with… · 6bc2bb18
      re PR c++/69024 ([cilkpus] cilk_spawn is broken for initializations with implicit conversion operators defined)
      
      	PR c++/69024
      	PR c++/68997
      	* cilk.c (cilk_ignorable_spawn_rhs_op): Change to external linkage.
      	(cilk_recognize_spawn): Renamed from recognize_spawn and change to
      	external linkage.
      	(cilk_detect_and_unwrap): Corresponding changes.
      	(extract_free_variables): Don't extract free variables from
      	AGGR_INIT_EXPR slot.
      	* c-common.h (cilk_ignorable_spawn_rhs_op): Prototype.
      	(cilk_recognize_spawn): Likewise.
      
      	PR c++/69024
      	PR c++/68997
      	* cp-gimplify.c (cp_gimplify_expr): Call cilk_cp_detect_spawn_and_unwrap
      	instead of cilk_detect_spawn_and_unwrap.
      	* cp-cilkplus.c (is_conversion_operator_function_decl_p): New.
      	(find_spawn): New.
      	(cilk_cp_detect_spawn_and_unwrap): New.
      	* lambda.c: Include cp-cilkplus.h.
      	* parser.c: Include cp-cilkplus.h.
      	* cp-tree.h (cpp_validate_cilk_plus_loop): Move prototype into...
      	* cp-cilkpus.h: New file.
      
      	PR c++/69024
      	PR c++/68997
      	* g++.dg/cilk-plus/CK/pr68001.cc: Fix to not depend on broken
      	diagnostic.
      	* g++.dg/cilk-plus/CK/pr69024.cc: New test.
      	* g++.dg/cilk-plus/CK/pr68997.cc: New test.
      
      Co-Authored-By: Jeff Law <law@redhat.com>
      
      From-SVN: r235534
      Ryan Burn committed
    • altivec.md (altivec_lvx_<mode>): Remove. · 85a7c926
      2016-04-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	* config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
      	(altivec_lvx_<mode>_internal): Document.
      	(altivec_lvx_<mode>_2op): New define_insn.
      	(altivec_lvx_<mode>_1op): Likewise.
      	(altivec_lvx_<mode>_2op_si): Likewise.
      	(altivec_lvx_<mode>_1op_si): Likewise.
      	(altivec_stvx_<mode>): Remove.
      	(altivec_stvx_<mode>_internal): Document.
      	(altivec_stvx_<mode>_2op): New define_insn.
      	(altivec_stvx_<mode>_1op): Likewise.
      	(altivec_stvx_<mode>_2op_si): Likewise.
      	(altivec_stvx_<mode>_1op_si): Likewise.
      	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
      	Expand vec_ld and vec_st during parsing.
      	* config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
      	changes.
      	(altivec_expand_stvx_be): Likewise.
      	(altivec_expand_lv_builtin): Expand lvx built-ins to expose the
      	address-masking behavior in RTL.
      	(altivec_expand_stv_builtin): Expand stvx built-ins to expose the
      	address-masking behavior in RTL.
      	(altivec_expand_builtin): Change builtin code arguments for calls
      	to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
      	(insn_is_swappable_p): Avoid incorrect swap optimization in the
      	presence of lvx/stvx patterns.
      	(alignment_with_canonical_addr): New function.
      	(alignment_mask): Likewise.
      	(find_alignment_op): Likewise.
      	(recombine_lvx_pattern): Likewise.
      	(recombine_stvx_pattern): Likewise.
      	(recombine_lvx_stvx_patterns): Likewise.
      	(rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
      	stvx patterns from expand.
      	* config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
      	expansions.
      	(vector_altivec_store_<mode>): Likewise.
      
      From-SVN: r235533
      Bill Schmidt committed
    • [AArch64] Replace insn to zero up SIMD registers · 523d7207
      gcc/
      	* config/aarch64/aarch64.md
      	(*movhf_aarch64): Add "movi %0, #0" to zero up register and
      	remove the "fp" attributes.
      	(*movsf_aarch64): Add "movi %0, #0" to zero up register and
      	add the "simd" attributes.
      	(*movdf_aarch64): Likewise.
      	(*movtf_aarch64): Remove the "fp" attributes.
      	* testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
      	* testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
      
      From-SVN: r235532
      Evandro Menezes committed
    • maybe_set_first_label_num can take an rtx_code_label * · 9aa50db7
      The function maybe_set_first_label_num acts on a CODE_LABEL; we can
      capture that in the type system.
      
      gcc/ChangeLog:
      	* emit-rtl.c (maybe_set_first_label_num): Strengthen param from
      	rtx to rtx_code_label *.
      	* rtl.h (maybe_set_first_label_num): Likewise.
      
      From-SVN: r235525
      David Malcolm committed
    • df: make df_problem instances "const" · fdd5680c
      The various struct df_problem instances are constant data; mark them
      as such.
      
      gcc/ChangeLog:
      	* df-core.c (df_add_problem): Make the problem param be const.
      	(df_remove_problem): Make local "problem" be const.
      	* df-problems.c (problem_RD): Make const.
      	(problem_LR): Likewise.
      	(problem_LIVE): Likewise.
      	(problem_MIR): Likewise.
      	(problem_CHAIN): Likewise.
      	(problem_WORD_LR): Likewise.
      	(problem_NOTE): Likewise.
      	(problem_MD): Likewise.
      	* df-scan.c (problem_SCAN): Likewise.
      	* df.h (struct df_problem): Make field "dependent_problem" be
      	const.
      	(struct dataflow): Likewise for field "problem".
      	(df_add_problem): Make param const.
      
      From-SVN: r235524
      David Malcolm committed
    • i386.c (ix86_spill_class): Enable for TARGET_SSE2 when inter-unit moves to/from… · 98544adc
      i386.c (ix86_spill_class): Enable for TARGET_SSE2 when inter-unit moves to/from vector registers are enabled.
      
      	* config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
      	inter-unit moves to/from vector registers are enabled.  Do not disable
      	for TARGET_MMX.
      
      From-SVN: r235523
      Uros Bizjak committed