Skip to content
Snippets Groups Projects
  1. Apr 28, 2016
    • Jakub Jelinek's avatar
      i386.md (sse4_1_round<mode>2): Add avx512f alternative. · 3ddffba9
      Jakub Jelinek authored
      	* 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
      3ddffba9
    • Rainer Orth's avatar
      Don't include minor version in GCJ ABI version (PR java/70839) · 97fceb9f
      Rainer Orth authored
      	PR java/70839
      	* decl.c (parse_version): Remove minor handling.
      
      From-SVN: r235575
      97fceb9f
    • Rainer Orth's avatar
      Cilk Plus testsuite needs massive cleanup (PR testsuite/70595) · 713dedcd
      Rainer Orth authored
      	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
      713dedcd
    • Joseph Myers's avatar
      Update .po files. · ef241650
      Joseph Myers authored
      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
      ef241650
    • Martin Jambor's avatar
      Verify that context of local DECLs is the current function · a6bf99f0
      Martin Jambor authored
      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
      a6bf99f0
    • Kyrylo Tkachov's avatar
      [internal-fn.c][committed] Convert conditional compilation on WORD_REGISTER_OPERATIONS · 208b85bb
      Kyrylo Tkachov authored
      	* internal-fn.c (expand_arith_overflow): Convert preprocessor check
      	for WORD_REGISTER_OPERATIONS to runtime check.
      
      From-SVN: r235569
      208b85bb
    • Claudiu Zissulescu's avatar
      [ARC] Pass mfpuda to assembler. · 31ae5117
      Claudiu Zissulescu authored
      gcc/
      2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
      
      From-SVN: r235568
      31ae5117
    • Claudiu Zissulescu's avatar
      [ARC] Fix FPX/FPUDA code gen when compiling for big-endian. · 7d81a567
      Claudiu Zissulescu authored
      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
      7d81a567
    • Richard Biener's avatar
      re PR tree-optimization/70840 (revisit reassoc handling of pow / powi, amend match.pd for powi) · de3fbea3
      Richard Biener authored
      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
      de3fbea3
    • Jonathan Wakely's avatar
      libstdc++/70766 use std::addressof instead of operator& · 9f9eb84e
      Jonathan Wakely authored
      	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
      9f9eb84e
    • Jonathan Wakely's avatar
      hashtable_policy.h (__detail::_Insert_base, [...]): Improve comments. · 272b2ce4
      Jonathan Wakely authored
      	* include/bits/hashtable_policy.h (__detail::_Insert_base,
      	__detail::_Insert): Improve comments.
      
      From-SVN: r235564
      272b2ce4
    • Kyrylo Tkachov's avatar
      [AArch64] Define WORD_REGISTER_OPERATIONS to zero and comment why · 56c9ef5f
      Kyrylo Tkachov authored
      	* config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
      	and explain why in a comment.
      
      From-SVN: r235563
      56c9ef5f
    • Claudiu Zissulescu's avatar
      [ARC] Don't use drsub* instructions when selecting fpuda. · 4ac2f36e
      Claudiu Zissulescu authored
      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
      4ac2f36e
    • Uros Bizjak's avatar
      i386.md (*fop_<mode>_1_mixed): Do not check for mult_operator when calculating "type" attribute. · e54a38e8
      Uros Bizjak authored
      	* 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
      e54a38e8
    • Martin Liska's avatar
      Replace AWK script with the python script. · 4877829b
      Martin Liska authored
      	* analyze_brprob: Remove.
      	* analyze_brprob.py: New file.
      
      From-SVN: r235560
      4877829b
    • Claudiu Zissulescu's avatar
      [ARC] Add TLS support. · 28633bbd
      Claudiu Zissulescu authored
      
      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: default avatarJoern Rennecke <joern.rennecke@embecosm.com>
      
      From-SVN: r235559
      28633bbd
    • Claudiu Zissulescu's avatar
      [ARC/LIBGCC] Add TLS support. · 8b48923b
      Claudiu Zissulescu authored
      
      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: default avatarJoern Rennecke <joern.rennecke@embecosm.com>
      
      From-SVN: r235558
      8b48923b
    • Eric Botcazou's avatar
      re PR ada/70786 (Missing "not" breaks Ada.Text_IO.Get_Immediate(File, Item, Available)) · 24efbb3e
      Eric Botcazou authored
      	PR ada/70786
      	* a-textio.adb (Get_Immediate): Add missing 'not' in expression.
      
      From-SVN: r235554
      24efbb3e
    • Claudiu Zissulescu's avatar
      [ARC] Add SIMD extensions for ARC HS · 00c072ae
      Claudiu Zissulescu authored
      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
      00c072ae
    • Eduard Sanou's avatar
      c-common.c (get_source_date_epoch): New function... · 174f6622
      Eduard Sanou authored
      
      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: default avatarMatthias Klose <doko@debian.org>
      
      From-SVN: r235550
      174f6622
    • Matthias Klose's avatar
      decl.c (parse_version): Don't encode the minor version in the abi version. · a564d350
      Matthias Klose authored
      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
      a564d350
    • Richard Biener's avatar
      re PR tree-optimization/70777 (x*x pessimised to pow(x,2) with -Og -ffast-math) · cc5999c8
      Richard Biener authored
      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
      cc5999c8
    • Oleg Endo's avatar
      sh-common.c: Remove SH5 support. · e1fab8ba
      Oleg Endo authored
      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
      e1fab8ba
    • GCC Administrator's avatar
      Daily bump. · 50e017d0
      GCC Administrator authored
      From-SVN: r235543
      50e017d0
  2. Apr 27, 2016
    • Uros Bizjak's avatar
      i386.md (sign_extend to memory peephole2s): Use general_reg_operand instead of... · c68439b9
      Uros Bizjak authored
      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
      c68439b9
    • Prathamesh Kulkarni's avatar
      params.def (MIN_PARTITION_SIZE): Set default value to 10000. · 4245b087
      Prathamesh Kulkarni authored
      2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
      
      	* params.def (MIN_PARTITION_SIZE): Set default value to 10000.
      
      From-SVN: r235538
      4245b087
    • Marc Glisse's avatar
      match.pd: unsigned A - B > A --> A < B · 3563f78f
      Marc Glisse authored
      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
      3563f78f
    • Patrick Palka's avatar
      Reduce nesting of parentheses in conditionals generated by genattrtab · 044a73da
      Patrick Palka authored
      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
      044a73da
    • Jeff Law's avatar
      * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment. · 565f4070
      Jeff Law authored
      From-SVN: r235535
      565f4070
    • Ryan Burn's avatar
      re PR c++/69024 ([cilkpus] cilk_spawn is broken for initializations with... · 6bc2bb18
      Ryan Burn authored
      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: default avatarJeff Law <law@redhat.com>
      
      From-SVN: r235534
      6bc2bb18
    • Bill Schmidt's avatar
      altivec.md (altivec_lvx_<mode>): Remove. · 85a7c926
      Bill Schmidt authored
      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
      85a7c926
    • Evandro Menezes's avatar
      [AArch64] Replace insn to zero up SIMD registers · 523d7207
      Evandro Menezes authored
      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
      523d7207
    • David Malcolm's avatar
      maybe_set_first_label_num can take an rtx_code_label * · 9aa50db7
      David Malcolm authored
      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
      9aa50db7
    • David Malcolm's avatar
      df: make df_problem instances "const" · fdd5680c
      David Malcolm authored
      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
      fdd5680c
    • Uros Bizjak's avatar
      i386.c (ix86_spill_class): Enable for TARGET_SSE2 when inter-unit moves... · 98544adc
      Uros Bizjak authored
      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
      98544adc
    • David Malcolm's avatar
      Convert DF_SCAN etc from #define to an enum · b55b11bb
      David Malcolm authored
      Whilst debugging an issue in df, I noticed that there are
      some #define constants that could be an enum (thus making them known
      to gdb).
      
      Convert them to a new enum, and update the "id" field of
      struct df_problem.
      
      gcc/ChangeLog:
      	* df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
      	DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
      	#define to...
      	(enum df_problem_id): ...this new enum.
      	(struct df_problem): Convert field "id" from "int" to
      	enum df_problem_id.
      
      From-SVN: r235522
      b55b11bb
    • Eric Botcazou's avatar
      sem_aux.adb (Is_By_Reference_Type): Also return true for a tagged incomplete... · 1e55d29a
      Eric Botcazou authored
      sem_aux.adb (Is_By_Reference_Type): Also return true for a tagged incomplete type without full view.
      
      	* sem_aux.adb (Is_By_Reference_Type): Also return true for a tagged
      	incomplete type without full view.
      	* sem_ch6.adb (Exchange_Limited_Views): Change into a function and
      	return the list of changes.
      	(Restore_Limited_Views): New procedure to undo the transformation made
      	by Exchange_Limited_Views.
      	(Analyze_Subprogram_Body_Helper): Adjust call to Exchange_Limited_Views
      	and call Restore_Limited_Views at the end, if need be.
      	(Possible_Freeze): Do not delay freezing because of incomplete types.
      	(Process_Formals): Remove kludges for class-wide types.
      	* types.h (By_Copy_Return): Delete.
      	* gcc-interface/ada-tree.h (TYPE_MAX_ALIGN): Move around.
      	(TYPE_DUMMY_IN_PROFILE_P): New macro.
      	* gcc-interface/gigi.h (update_profiles_with): Declare.
      	(finish_subprog_decl): Likewise.
      	(get_minimal_subprog_decl): Delete.
      	(create_subprog_type): Likewise.
      	(create_param_decl): Adjust prototype.
      	(create_subprog_decl): Likewise.
      	* gcc-interface/decl.c (defer_limited_with): Rename into...
      	(defer_limited_with_list): ...this.
      	(gnat_to_gnu_entity): Adjust to above renaming.
      	(finalize_from_limited_with): Likewise.
      	(tree_entity_vec_map): New structure.
      	(gt_pch_nx): New helpers.
      	(dummy_to_subprog_map): New hash table.
      	(gnat_to_gnu_param): Set the SLOC here.  Remove MECH parameter and
      	add FIRST parameter.  Deal with the mechanism here instead of...
      	Do not make read-only variant of types.  Simplify expressions.
      	In the by-ref case, test the mechanism before must_pass_by_ref
      	and also TYPE_IS_BY_REFERENCE_P before building the reference type.
      	(gnat_to_gnu_subprog_type): New static function extracted from...
      	Do not special-case the type_annotate_only mode.  Call
      	gnat_to_gnu_profile_type instead of gnat_to_gnu_type on return type.
      	Deal with dummy return types.  Likewise for parameter types.  Deal
      	with by-reference types explicitly and add a kludge for null procedures
      	with untagged incomplete types.  Remove assertion on the types and be
      	prepared for multiple elaboration of the declarations.  Skip the whole
      	CICO processing if the profile is incomplete.  Handle the completion of
      	a previously incomplete profile.
      	(gnat_to_gnu_entity) <E_Variable>: Rename local variable.
      	Adjust couple of calls to create_param_decl.
      	<E_Access_Subprogram_Type, E_Anonymous_Access_Subprogram_Type>:
      	Remove specific deferring code.
      	<E_Access_Type>: Also deal with E_Subprogram_Type designated type.
      	Simplify handling of dummy types and remove obsolete comment.
      	Constify a couple of variables.  Do not set TYPE_UNIVERSAL_ALIASING_P
      	on dummy types.
      	<E_Access_Subtype>: Tweak comment and simplify condition.
      	<E_Subprogram_Type>: ...here.  Call it and clean up handling.  Remove
      	obsolete comment and adjust call to gnat_to_gnu_param.  Adjust call to
      	create_subprog_decl.
      	<E_Incomplete_Type>: Add a couple of 'const' qualifiers and get rid of
      	inner break statements.  Tidy up condition guarding direct use of the
      	full view.
      	(get_minimal_subprog_decl): Delete.
      	(finalize_from_limited_with): Call update_profiles_with on dummy types
      	with TYPE_DUMMY_IN_PROFILE_P set.
      	(is_from_limited_with_of_main): Delete.
      	(associate_subprog_with_dummy_type): New function.
      	(update_profile): Likewise.
      	(update_profiles_with): Likewise.
      	(gnat_to_gnu_profile_type): Likewise.
      	(init_gnat_decl): Initialize dummy_to_subprog_map.
      	(destroy_gnat_decl): Destroy dummy_to_subprog_map.
      	* gcc-interface/misc.c (gnat_get_alias_set): Add guard for accessing
      	TYPE_UNIVERSAL_ALIASING_P.
      	(gnat_get_array_descr_info): Minor tweak.
      	* gcc-interface/trans.c (gigi): Adjust calls to create_subprog_decl.
      	(build_raise_check): Likewise.
      	(Compilation_Unit_to_gnu): Likewise.
      	(Identifier_to_gnu): Accept mismatches coming from a limited context.
      	(Attribute_to_gnu): Remove kludge for dispatch table entities.
      	(process_freeze_entity): Do not retrieve old definition if there is an
      	address clause on the entity.  Call update_profiles_with on dummy types
      	with TYPE_DUMMY_IN_PROFILE_P set.
      	* gcc-interface/utils.c (build_dummy_unc_pointer_types): Also set
      	TYPE_REFERENCE_TO to the fat pointer type.
      	(create_subprog_type): Delete.
      	(create_param_decl): Remove READONLY parameter.
      	(finish_subprog_decl): New function extracted from...
      	(create_subprog_decl): ...here.  Call it.  Remove CONST_FLAG and
      	VOLATILE_FLAG parameters and adjust.
      	(update_pointer_to): Also clear TYPE_REFERENCE_TO in the unconstrained
      	case.
      
      From-SVN: r235521
      1e55d29a
    • David Malcolm's avatar
      Fix comment in rtl.def · e306693a
      David Malcolm authored
      Commit r210360 removed the first "i" field from the various instruction
      nodes in rtx.def, moving it to an explicit "int insn_uid;" field
      of the union "u2" within rtx_def.
      
      Update the comment in rtl.def to reflect this change.  Also, fix
      a stray apostrophe.
      
      gcc/ChangeLog:
      	* rtl.def: Update comment for "things in the instruction chain" to
      	reflect the removal of the leading "i" field for INSN_UID in
      	r210360.  Fix bogus apostrophe.
      
      From-SVN: r235520
      e306693a
    • Uros Bizjak's avatar
      i386.md (lea arith with mem operand + setcc peephole2): Set operator mode. · 3d2795a0
      Uros Bizjak authored
      	* config/i386/i386.md
      	(lea arith with mem operand + setcc peephole2): Set operator mode.
      
      From-SVN: r235519
      3d2795a0
    • H.J. Lu's avatar
      Extend STV pass to 64-bit mode · 087146ca
      H.J. Lu authored
      128-bit SSE load and store instructions can be used for load and store
      of 128-bit integers if they are the only operations on 128-bit integers.
      To convert load and store of 128-bit integers to 128-bit SSE load and
      store, the original STV pass, which is designed to convert 64-bit integer
      operations to SSE2 operations in 32-bit mode, is extended to 64-bit mode
      in the following ways:
      
      1. Class scalar_chain is turned into base class.  The 32-bit specific
      member functions are moved to the new derived class, dimode_scalar_chain.
      The new derived class, timode_scalar_chain, is added to convert oad and
      store of 128-bit integers to 128-bit SSE load and store.
      2. Add the 64-bit version of scalar_to_vector_candidate_p and
      remove_non_convertible_regs.  Only TImode load and store are allowed
      for conversion.  If one instruction on the chain of dependent
      instructions aren't TImode load or store, the chain of instructions
      won't be converted.
      3. In 64-bit, we only convert from TImode to V1TImode, which have the
      same size.  The difference is only vector registers are allowed in
      TImode so that 128-bit SSE load and store instructions will be used
      for load and store of 128-bit integers.
      4. Put the 64-bit STV pass before the CSE pass so that instructions
      changed or generated by the STV pass can be CSEed.
      
      convert_scalars_to_vector calls free_dominance_info in 64-bit mode to
      work around ICE in fwprop pass:
      
      https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70807
      
      when building libgcc on Linux/x86-64.
      
      gcc/
      
      	PR target/70155
      	* config/i386/i386.c (scalar_to_vector_candidate_p): Renamed
      	to ...
      	(dimode_scalar_to_vector_candidate_p): This.
      	(timode_scalar_to_vector_candidate_p): New function.
      	(scalar_to_vector_candidate_p): Likewise.
      	(timode_check_non_convertible_regs): Likewise.
      	(timode_remove_non_convertible_regs): Likewise.
      	(remove_non_convertible_regs): Likewise.
      	(remove_non_convertible_regs): Renamed to ...
      	(dimode_remove_non_convertible_regs): This.
      	(scalar_chain::~scalar_chain): Make it virtual.
      	(scalar_chain::compute_convert_gain): Make it pure virtual.
      	(scalar_chain::mark_dual_mode_def): Likewise.
      	(scalar_chain::convert_insn): Likewise.
      	(scalar_chain::convert_registers): Likewise.
      	(scalar_chain::add_to_queue): Make it protected.
      	(scalar_chain::emit_conversion_insns): Likewise.
      	(scalar_chain::replace_with_subreg): Likewise.
      	(scalar_chain::replace_with_subreg_in_insn): Likewise.
      	(scalar_chain::convert_op): Likewise.
      	(scalar_chain::convert_reg): Likewise.
      	(scalar_chain::make_vector_copies): Likewise.
      	(scalar_chain::convert_registers): New pure virtual function.
      	(class dimode_scalar_chain): New class.
      	(class timode_scalar_chain): Likewise.
      	(scalar_chain::mark_dual_mode_def): Renamed to ...
      	(dimode_scalar_chain::mark_dual_mode_def): This.
      	(timode_scalar_chain::mark_dual_mode_def): New function.
      	(timode_scalar_chain::convert_insn): Likewise.
      	(dimode_scalar_chain::convert_registers): Likewise.
      	(scalar_chain::compute_convert_gain): Renamed to ...
      	(dimode_scalar_chain::compute_convert_gain): This.
      	(scalar_chain::replace_with_subreg): Renamed to ...
      	(dimode_scalar_chain::replace_with_subreg): This.
      	(scalar_chain::replace_with_subreg_in_insn): Renamed to ...
      	(dimode_scalar_chain::replace_with_subreg_in_insn): This.
      	(scalar_chain::make_vector_copies): Renamed to ...
      	(dimode_scalar_chain::make_vector_copies): This.
      	(scalar_chain::convert_reg): Renamed to ...
      	(dimode_scalar_chain::convert_reg ): This.
      	(scalar_chain::convert_op): Renamed to ...
      	(dimode_scalar_chain::convert_op): This.
      	(scalar_chain::convert_insn): Renamed to ...
      	(dimode_scalar_chain::convert_insn): This.
      	(scalar_chain::convert): Call convert_registers.
      	(convert_scalars_to_vector): Change to scalar_chain pointer to
      	use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
      	in 32-bit mode.  Delete scalar_chain pointer.  Call
      	free_dominance_info in 64-bit mode.
      	(pass_stv::gate): Remove TARGET_64BIT check.
      	(ix86_option_override): Put the 64-bit STV pass before the CSE
      	pass.
      
      gcc/testsuite/
      
      	PR target/70155
      	* gcc.target/i386/pr55247-2.c: Updated to check movti_internal
      	and movv1ti_internal patterns
      	* gcc.target/i386/pr70155-1.c: New test.
      	* gcc.target/i386/pr70155-2.c: Likewise.
      	* gcc.target/i386/pr70155-3.c: Likewise.
      	* gcc.target/i386/pr70155-4.c: Likewise.
      	* gcc.target/i386/pr70155-5.c: Likewise.
      	* gcc.target/i386/pr70155-6.c: Likewise.
      	* gcc.target/i386/pr70155-7.c: Likewise.
      	* gcc.target/i386/pr70155-8.c: Likewise.
      	* gcc.target/i386/pr70155-9.c: Likewise.
      	* gcc.target/i386/pr70155-10.c: Likewise.
      	* gcc.target/i386/pr70155-11.c: Likewise.
      	* gcc.target/i386/pr70155-12.c: Likewise.
      	* gcc.target/i386/pr70155-13.c: Likewise.
      	* gcc.target/i386/pr70155-14.c: Likewise.
      	* gcc.target/i386/pr70155-15.c: Likewise.
      	* gcc.target/i386/pr70155-16.c: Likewise.
      	* gcc.target/i386/pr70155-17.c: Likewise.
      	* gcc.target/i386/pr70155-18.c: Likewise.
      	* gcc.target/i386/pr70155-19.c: Likewise.
      	* gcc.target/i386/pr70155-20.c: Likewise.
      	* gcc.target/i386/pr70155-21.c: Likewise.
      	* gcc.target/i386/pr70155-22.c: Likewise.
      
      From-SVN: r235518
      087146ca
Loading