Richard Biener [Tue, 28 Apr 2015 08:30:44 +0000 (08:30 +0000)]
re PR fortran/62283 (basic-block vectorization fails)
2015-04-28 Richard Biener <rguenther@suse.de>
PR tree-optimization/62283
* tree-vect-slp.c (vect_build_slp_tree): When the SLP build
fails fatally and we are vectorizing a basic-block simply
cause the child to be constructed piecewise.
(vect_analyze_slp_cost_1): Adjust.
(vect_detect_hybrid_slp_stmts): Likewise.
(vect_bb_slp_scalar_cost): Likewise.
(vect_get_constant_vectors): For piecewise constructed
constants place them after the last def.
(vect_get_slp_defs): Adjust.
* tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
externals for basic-block vectorization.
* gfortran.dg/vect/pr62283-2.f: New testcase.
* gcc.dg/vect/bb-slp-14.c: Adjust.
From-SVN: r222514
Thomas Preud'homme [Tue, 28 Apr 2015 08:10:44 +0000 (08:10 +0000)]
re PR target/63503 ([AArch64] A57 executes fused multiply-add poorly in some situations)
2015-04-28 Thomas Preud'homme <thomas.preudhomme@arm.com>
gcc/
PR target/63503
* config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
aarch64-*-*.
* config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
* config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
(AARCH64_TUNE_FMA_STEERING): Likewise.
* config/aarch64/aarch64-cores.def: Set
AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
FMUL/FMADD instructions.
* config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
(aarch64_override_options): Include cortex-a57-fma-steering.h. Call
aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
* config/aarch64/cortex-a57-fma-steering.h: New file.
* config/aarch64/cortex-a57-fma-steering.c: Likewise.
From-SVN: r222512
Richard Sandiford [Tue, 28 Apr 2015 07:46:40 +0000 (07:46 +0000)]
gensupport.c (std_preds): Add missing codes to address_operand entry.
gcc/
* gensupport.c (std_preds): Add missing codes to address_operand entry.
From-SVN: r222511
Richard Biener [Tue, 28 Apr 2015 07:26:41 +0000 (07:26 +0000)]
re PR c++/65851 (ice in set_lattice_value at tree-ssa-cc p.c:535)
2015-04-28 Richard Biener <rguenther@suse.de>
PR tree-optimization/65851
* tree-ssa-ccp.c (set_lattice_value): Perform a meet when
changing CONSTANT to CONSTANT non-copy. Get new_val by reference.
(ccp_lattice_meet): Remove stray argument. Use operand_equal_p
rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
(ccp_visit_phi_node): Adjust.
(evaluate_stmt): For simplifications to SSA names return its
lattice value if that isn't VARYING. Return immediately when
simplified to a constant.
(visit_assignment): Adjust.
(ccp_visit_stmt): Likewise.
* g++.dg/torture/pr65851.C: New testcase.
From-SVN: r222510
Tom de Vries [Tue, 28 Apr 2015 06:05:14 +0000 (06:05 +0000)]
Evaluate side-effects in expand_ifn_va_arg_1
2015-04-28 Tom de Vries <tom@codesourcery.com>
PR tree-optimization/65818
* tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
evaluated.
From-SVN: r222509
Trevor Saunders [Tue, 28 Apr 2015 04:47:09 +0000 (04:47 +0000)]
remove #if ARGS_GROW_DOWNWARD
gcc/ChangeLog:
2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* calls.c (save_fixed_argument_area): Don't check
ARGS_GROW_DOWNWARD with the preprocessor.
(restore_fixed_argument_area): Likewise.
(mem_overlaps_already_clobbered_arg_p): Likewise.
(check_sibcall_argument_overlap): Likewise.
(expand_call): Likewise.
(emit_library_call_value_1): Likewise.
(store_one_arg): Likewise.
* function.c (assign_parms): Likewise.
(locate_and_pad_parm): Likewise.
(pad_to_arg_alignment): Likewise.
* targhooks.c (std_gimplify_va_arg_expr): Likewise.
From-SVN: r222508
Trevor Saunders [Tue, 28 Apr 2015 04:46:20 +0000 (04:46 +0000)]
always define ARGS_GROW_DOWNWARD
gcc/ChangeLog:
2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
* defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
* calls.c (save_fixed_argument_area): Don't chekc if
ARGS_GROW_DOWNWARD is defined.
(restore_fixed_argument_area): Likewise.
(mem_overlaps_already_clobbered_arg_p): Likewise.
(check_sibcall_argument_overlap): Likewise.
(expand_call): Likewise.
(emit_library_call_value_1): Likewise.
(store_one_arg): Likewise.
* function.c (assign_parms): Likewise.
(locate_and_pad_parm): Likewise.
(pad_to_arg_alignment): Likewise.
* targhooks.c (std_gimplify_va_arg_expr): Likewise.
From-SVN: r222507
Trevor Saunders [Tue, 28 Apr 2015 04:45:12 +0000 (04:45 +0000)]
always define HAVE_epilogue
gcc/ChangeLog:
2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* defaults.h (gen_epilogue): New function.
(HAVE_epilogue): Add default definition to false.
* alias.c (init_alias_analysis): don't check if HAVE_epilogue is
defined.
* cfgrtl.c (cfg_layout_finalize): Likewise.
* df-scan.c: Likewise.
* function.c (thread_prologue_and_epilogue_insns): Likewise.
(reposition_prologue_and_epilogue_notes): Likewise.
* reorg.c (find_end_label): Likewise.
* toplev.c: Likewise.
From-SVN: r222506
Trevor Saunders [Tue, 28 Apr 2015 04:44:09 +0000 (04:44 +0000)]
always define HAVE_simple_return and HAVE_return
gcc/ChangeLog:
2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* bb-reorder.c (HAVE_return): Don't check if its undefined.
* defaults.h (gen_simple_return): New function.
(gen_simple_return): Likewise.
(HAVE_return): Add default definition to false.
(HAVE_simple_return): Likewise.
* cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
HAVE_return and HAVE_simple_return are defined.
* function.c (gen_return_pattern): Likewise.
(convert_jumps_to_returns): Likewise.
(thread_prologue_and_epilogue_insns): Likewise.
* reorg.c (find_end_label): Likewise.
(dbr_schedule): Likewise.
* shrink-wrap.c: Likewise.
* shrink-wrap.h: Likewise.
From-SVN: r222505
Trevor Saunders [Tue, 28 Apr 2015 04:43:12 +0000 (04:43 +0000)]
add default for EPILOGUE_USES
gcc/ChangeLog:
2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* defaults.h (EPILOGUE_USES): Add default definition of false.
* df-scan.c (EPILOGUE_USES): Remove check if its undefined.
* resource.c (init_resource_info): Likewise.
From-SVN: r222504
Trevor Saunders [Tue, 28 Apr 2015 04:42:04 +0000 (04:42 +0000)]
add default for PCC_BITFIELD_TYPE_MATTERS
gcc/ChangeLog:
2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
to false.
* dwarf2out.c (field_byte_offset): REmove check if
PCC_BITFIELD_TYPE_MATTERS is defined.
* stor-layout.c (layout_decl): Likewise.
(update_alignment_for_field): Likewise.
(place_field): Likewise.
gcc/cp/ChangeLog:
2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* class.c (layout_class_type): Remove check if
PCC_BITFIELD_TYPE_MATTERS is defined.
From-SVN: r222503
Trevor Saunders [Tue, 28 Apr 2015 04:40:43 +0000 (04:40 +0000)]
add default for HARD_REGNO_RENAME_OK
gcc/ChangeLog:
2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
true.
* regrename.c (check_new_reg_p): Remove check if
HARD_REGNO_RENAME_OK is defined.
* sel-sched.c (sel_hard_regno_rename_ok): Likewise.
From-SVN: r222502
Trevor Saunders [Tue, 28 Apr 2015 04:40:00 +0000 (04:40 +0000)]
add default for NO_FUNCTION_CSE
gcc/ChangeLog:
2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
* cse.c (fold_rtx): Likewise.
* config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
* config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
* config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
* config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
* config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
* config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
* config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
* config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
* config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
* config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
* Likewise.
* config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
* config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
* config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
* config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
* config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
* config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
* config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
* config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
* config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
* config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
* config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
* config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
* defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
* doc/tm.texi: Regenerate.
* doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
either true or false.
From-SVN: r222501
Tim Shen [Tue, 28 Apr 2015 04:16:48 +0000 (04:16 +0000)]
regex.tcc: Handle regex_constants::__polynomial.
* include/bits/regex.tcc: Handle regex_constants::__polynomial.
* include/bits/regex_automaton.tcc: Throw exception when parsing
back-reference with flag __polynomial.
* include/bits/regex_constants.h: Add extension flag
syntax_option_type __polynomial.
* bits/regex_executor.tcc: Still let BFS process ECMAScript.
Alternative operation will be fixed in the coming refactoring.
* testsuite/28_regex/algorithms/regex_search/61424.cc: Turn
loose match_search_debug to use DFS only.
From-SVN: r222500
Jeff Law [Tue, 28 Apr 2015 04:01:28 +0000 (22:01 -0600)]
re PR tree-optimization/65217 (__builtin_unreachable in if statement causes bad assembly generation)
PR tree-optimization/65217
* tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
of them has a single use, make sure it is the LHS of the implied
copy.
PR tree-optimization/65217
* gcc.target/i386/pr65217.c: Remove XFAIL.
From-SVN: r222499
Alan Modra [Tue, 28 Apr 2015 03:47:19 +0000 (13:17 +0930)]
re PR target/65810 (powerpc64 alignment of r2 insufficient for loading long-double constants)
PR target/65810
* config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
(offsettable_ok_by_alignment): Use minimum of decl and toc
pointer alignment. Replace dead code with assertion.
(use_toc_relative_ref): Add mode arg. Return false in -mcmodel=medium
case if size exceeds toc pointer alignment.
(rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
(rs6000_emit_move): Likewise.
* configure.ac: Add linker toc pointer alignment check.
* configure: Regenerate.
* config.in: Regenerate.
From-SVN: r222498
Sandra Loosemore [Tue, 28 Apr 2015 02:40:56 +0000 (22:40 -0400)]
re PR libstdc++/65909 (check_v3_target_namedlocale blows up on targets that don't support command-line arguments)
2015-04-27 Sandra Loosemore <sandra@codesourcery.com>
PR libstdc++/65909
libstdc++-v3/
* testsuite/lib/libstdc++.exp (check_v3_target_namedlocale):
Make the generated test program fail gracefully if the target
doesn't support passing command-line arguments.
From-SVN: r222497
GCC Administrator [Tue, 28 Apr 2015 00:16:22 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r222496
Jim Wilson [Mon, 27 Apr 2015 22:59:06 +0000 (22:59 +0000)]
Makefile-lan.in (ada.mostlyclean): Remove gnatbind and gnat1.
ada/
* gcc-interface/Makefile-lan.in (ada.mostlyclean): Remove gnatbind
and gnat1.
cp/
* Make-lang.in (c++.mostlyclean): Remove xg++, g++-cross, and cc1plus.
fortran/
* Make-lang.in (fortran.mostlyclean): Remove gfortran and
gfortran-cross.
go/
* Make-lang.in (go.mostlyclean): Remove gccgo, gccgo-cross, and go1.
jit/
* Make-lang.in (jit.mostlyclean): Remove shared libraries and object
files.
objc/
* Make-lang.in (objc.mostlyclean): Remove cc1obj.
objcp/
* Make-lang.in (obj-c++.mostlyclean): Remove cc1objplus.
From-SVN: r222492
Federico Lenarduzzi [Mon, 27 Apr 2015 21:06:17 +0000 (21:06 +0000)]
eh_catch.cc (uncaught_exception, [...]): Return false or zero if the library is built without exceptions.
2015-04-27 Federico Lenarduzzi <federico.lenarduzzi@tallertechnologies.com>
Jonathan Wakely <jwakely@redhat.com>
* libsupc++/eh_catch.cc (uncaught_exception, uncaught_exceptions):
Return false or zero if the library is built without exceptions.
* libsupc++/eh_term_handler.cc: Disable verbose terminate handler if
the library is built without exceptions.
Co-Authored-By: Jonathan Wakely <jwakely@redhat.com>
From-SVN: r222484
Ville Voutilainen [Mon, 27 Apr 2015 20:52:14 +0000 (23:52 +0300)]
gnu.ver: Fix comment.
2015-04-27 Ville Voutilainen <ville.voutilainen@gmail.com>
* config/abi/pre/gnu.ver: Fix comment.
From-SVN: r222483
Ville Voutilainen [Mon, 27 Apr 2015 20:40:29 +0000 (23:40 +0300)]
Add support for std::uncaught_exceptions.
2015-04-27 Ville Voutilainen <ville.voutilainen@gmail.com>
Add support for std::uncaught_exceptions.
* acinclude.m4: Bump libtool_VERSION.
* config/abi/pre/gnu.ver: Export the new symbol.
* configure: Regenerate.
* libsupc++/eh_catch.cc (uncaught_exceptions): New.
* libsupc++/exception (uncaught_exceptions): New.
* testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc: New.
* testsuite/util/testsuite_abi.cc: Add 3.4.22 as the latest version.
From-SVN: r222482
Dmitry Prokoptsev [Mon, 27 Apr 2015 19:44:30 +0000 (19:44 +0000)]
re PR libstdc++/62258 (uncaught_exception() equals to `true' after rethrow_exception())
2015-04-27 Dmitry Prokoptsev <dprokoptsev@gmail.com>
Michael Hanselmann <public@hansmi.ch>
PR libstdc++/62258
* libsupc++/eh_ptr.cc (rethrow_exception): Increment count of
uncaught exceptions.
* testsuite/18_support/exception_ptr/62258.cc: New.
Co-Authored-By: Michael Hanselmann <public@hansmi.ch>
From-SVN: r222480
Yoshinori Sato [Mon, 27 Apr 2015 19:16:27 +0000 (04:16 +0900)]
config.gcc: Add h8300-*-linux.
gcc/
* config.gcc: Add h8300-*-linux.
* config/h8300/linux.h: New.
* config/h8300/t-linux: New.
* config/h8300/h8300.c (h8300_option_override): Normal mode
is not supported for h8300-*-linux.
(h8300_file_start): Target priority change.
(get_shift_alg): Likewise.
(h8300_shift_need_scratch_p): Likewise.
* config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
* config/h8300/h8300.md (define_peephole2): Remove duplicate condition.
libgcc/
* config.host: Add h8300-*-linux
* config/h8300/t-linux: New file.
* config/h8300/lib1funs.s: Change symbol prefix.
* config/h8300/sfp-machine.h: 64bit double support.
From-SVN: r222479
Andre Vehreschild [Mon, 27 Apr 2015 17:41:01 +0000 (19:41 +0200)]
re PR fortran/60322 ([OOP] Incorrect bounds on polymorphic dummy array)
2015-04-27 Andre Vehreschild <vehre@gmx.de>
PR fortran/60322
Add tests forgotten to svn-add.
* gfortran.dg/class_allocate_19.f03: New test.
* gfortran.dg/class_array_20.f03: New test.
* gfortran.dg/class_array_21.f03: New test.
* gfortran.dg/finalize_29.f08: New test.
From-SVN: r222478
Andre Vehreschild [Mon, 27 Apr 2015 17:34:11 +0000 (19:34 +0200)]
re PR fortran/59678 ([F03] Segfault on equalizing variables of a complex derived type)
gcc/fortran
2015-04-27 Andre Vehreschild <vehre@gmx.de>
PR fortran/59678
PR fortran/65841
* trans-array.c (duplicate_allocatable): Fixed deep copy of
allocatable components, which are liable for copy only, when
they are allocated.
(gfc_duplicate_allocatable): Add deep-copy code into if
component allocated block. Needed interface change for that.
(gfc_copy_allocatable_data): Supplying NULL_TREE for code to
add into if-block for checking whether a component was
allocated.
(gfc_duplicate_allocatable_nocopy): Likewise.
(structure_alloc_comps): Likewise.
* trans-array.h: Likewise.
* trans-expr.c (gfc_trans_alloc_subarray_assign): Likewise.
* trans-openmp.c (gfc_walk_alloc_comps): Likewise.
gcc/testsuite
2015-04-27 Andre Vehreschild <vehre@gmx.de>
PR fortran/59678
PR fortran/65841
* gfortran.dg/alloc_comp_deep_copy_1.f03: New test.
* gfortran.dg/alloc_comp_deep_copy_2.f03: New test.
From-SVN: r222477
Caroline Tice [Mon, 27 Apr 2015 16:44:35 +0000 (09:44 -0700)]
Give proper type and size to named cold partitions.
2015-04-27 Caroline Tice <cmtice@google.com>
* final.c (final_scan_insn): Output cold_function_nmae as function
type.
* varasm.c (cold_function_name): Make gloval.
(assemble_start_function): Re-set cold_function_name.
(assemble_end_function): Output cold partition size.
* varasm.h (cold_fun ction_name): Declare global.
2015-04-27 Caroline Tice <cmtice@google.com>
* gcc.dg/tree-prof/cold_partition_label.c (main): Check for cold
partition size.
From-SVN: r222473
Ilya Tocar [Mon, 27 Apr 2015 15:24:48 +0000 (15:24 +0000)]
i386.h (EXT_REX_SSE_REG_P): New.
2015-04-27 Ilya Tocar <ilya.tocar@intel.com>
* config/i386/i386.h (EXT_REX_SSE_REG_P): New.
* config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
constraint.
(*movxi_internal_avx512f): Ditto.
(define_split): Check for xmm16+, when splitting scalar float_extend.
(*extendsfdf2_mixed): Use "v" constraint.
(define_split): Check for xmm16+, when splitting scalar float_truncate.
(*truncdfsf_fast_sse): Use "v" constraint.
(fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
(*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
(define_peephole2): Check for xmm16+, when converting scalar
float_truncate.
(define_peephole2): Check for xmm16+, when converting scalar
float_extend.
(*fop_<mode>_comm_mixed): Use "v" constraint.
(*fop_<mode>_comm_sse): Ditto.
(*fop_<mode>_1_mixed): Ditto.
(*sqrt<mode>2_sse): Ditto.
(*ieee_s<ieee_maxmin><mode>3): Ditto.
From-SVN: r222470
Steven Noonan [Mon, 27 Apr 2015 15:02:46 +0000 (15:02 +0000)]
configure.ac: Drop AC_PROG_CXX and friends, since libmpx has no C++ sources.
libmpx/
* configure.ac: Drop AC_PROG_CXX and friends, since libmpx has no C++
sources.
* configure: Regenerate.
From-SVN: r222469
Kyrylo Tkachov [Mon, 27 Apr 2015 14:56:10 +0000 (14:56 +0000)]
[combine][obvious] Use std::swap instead of manually swapping
* combine.c (simplify_if_then_else): Use std::swap instead
of manually swapping.
(known_cond): Likewise.
(simplify_comparison): Likewise.
From-SVN: r222468
Peter Bergner [Mon, 27 Apr 2015 14:52:50 +0000 (09:52 -0500)]
re PR target/64579 (__TM_end __builtin_tend failed to return transactional state)
gcc/
PR target/64579
* config/rs6000/htm.md: Remove all define_expands.
(UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
UNSPECV_HTM_TABORTWCI): Remove.
(UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
(tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
(tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
(tabortdc_internal, tabortdci_internal, tabortwc_internal,
tabortwci_internal): Remove define_insns.
(tabort<wd>c, tabort<wd>ci): New define_insns.
(tabort): Use gpc_reg_operand.
(tcheck): Remove operand.
(htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
* config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
expected value.
* config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
(BU_HTM_SPR1): Rename to BU_HTM_V1. Remove use of RS6000_BTC_SPR.
(tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
tsr, ttest): Pass in the RS6000_BTC_CR attribute.
(get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
(tcheck): Remove builtin argument.
* config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
not TARGET_64BIT.
(htm_expand_builtin): Fix usage of expandedp. Disallow usage of the
tabortdc and tabortdci builtins when not in 64-bit mode.
Modify code to handle the loss of the HTM define_expands.
Emit code to copy the CR register to TARGET.
(htm_init_builtins): Modify code to handle the loss of the HTM
define_expands.
* config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
(RS6000_BTC_64BIT): Likewise.
(RS6000_BTC_CR): New macro.
* doc/extend.texi: Update documentation for htm builtins.
gcc/testsuite/
PR target/64579
* gcc.target/powerpc/htm-1.c: New test.
* gcc.target/powerpc/htm-builtin-1.c (__builtin_tabortdc): Only test
on 64-bit compiles.
(__builtin_tabortdci): Likewise.
(__builtin_tcheck): Remove operand.
* lib/target-supports.exp (check_htm_hw_available): New function.
From-SVN: r222467
Kyrylo Tkachov [Mon, 27 Apr 2015 13:45:26 +0000 (13:45 +0000)]
[simplify-rtx][trivial] Use std::swap instead of manually swapping
* simplify-rtx.c (simplify_gen_binary): Use std::swap instead
of manually swapping.
(simplify_associative_operation): Likewise.
(simplify_binary_operation): Likewise.
(simplify_plus_minus): Likewise.
(simplify_relational_operation): Likewise.
(simplify_ternary_operation): Likewise.
From-SVN: r222465
Richard Sandiford [Mon, 27 Apr 2015 13:25:56 +0000 (13:25 +0000)]
predicates.md (xs_hi_general_operand): Delete.
gcc/
* config/stormy16/predicates.md (xs_hi_general_operand): Delete.
(xs_hi_nonmemory_operand): Remove error.
* config/stormy16/stormy16.md (movhi, movhi_internal): Use
general_operand rather than xs_hi_general_operand.
From-SVN: r222464
Richard Biener [Mon, 27 Apr 2015 12:46:58 +0000 (12:46 +0000)]
tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
2015-04-27 Richard Biener <rguenther@suse.de>
* tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
(record_equivalences_from_stmt): Valueize rhs.
(record_equality): Canonicalize x and y order via
tree_swap_operands_p. Do not swap operands for same loop depth.
* gcc.target/i386/pr65217.c: XFAIL.
From-SVN: r222463
Jonathan Wakely [Mon, 27 Apr 2015 12:30:26 +0000 (13:30 +0100)]
extensions.xml: Add cross-reference.
* doc/xml/manual/extensions.xml: Add cross-reference.
* doc/html/manual/ext_compile_checks.html: Regenerate.
From-SVN: r222462
Georg-Johann Lay [Mon, 27 Apr 2015 11:43:20 +0000 (11:43 +0000)]
re PR target/65296 ([avr] fix various issues with specs file generation)
PR target/65296
PR target/65895
* config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
Add hint how to use own spec file.
From-SVN: r222459
Jakub Jelinek [Mon, 27 Apr 2015 11:26:12 +0000 (13:26 +0200)]
re PR tree-optimization/65875 (ICE: Segmentation fault)
PR tree-optimization/65875
* tree-vrp.c (update_value_range): If in is_new case setting
old_vr to VR_VARYING, also set new_vr to it. Remove
old_vr->type == VR_VARYING test.
(vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
SSA_PROP_INTERESTING if update_value_range returned true,
but new range is VR_VARYING.
* gcc.c-torture/compile/pr65875.c: New test.
From-SVN: r222458
Thomas Preud'homme [Mon, 27 Apr 2015 11:02:34 +0000 (11:02 +0000)]
combine.c (sign_extend_short_imm): New.
2015-04-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
* combine.c (sign_extend_short_imm): New.
(set_nonzero_bits_and_sign_copies): Use above new function for sign
extension of src short immediate.
(reg_nonzero_bits_for_combine): Likewise for tem.
From-SVN: r222457
Eric Botcazou [Mon, 27 Apr 2015 10:29:07 +0000 (10:29 +0000)]
stor-layout.c (self_referential_component_ref_p): New predicate.
* stor-layout.c (self_referential_component_ref_p): New predicate.
(copy_self_referential_tree_r): Use it.
(self_referential_size): Punt for simple operations directly involving
self-referential component references.
* tree-cfg.c (dump_function_to_file): Add missing final curly bracket.
From-SVN: r222456
Eric Botcazou [Mon, 27 Apr 2015 10:10:47 +0000 (10:10 +0000)]
* ipa-icf.c (icf_handled_component_p): Remove redundant tests.
From-SVN: r222455
Richard Sandiford [Mon, 27 Apr 2015 09:55:21 +0000 (09:55 +0000)]
vec.h (vec): Make splice arguments const.
gcc/
* vec.h (vec): Make splice arguments const. Update definitions
accordingly.
From-SVN: r222454
Yvan Roux [Mon, 27 Apr 2015 09:08:11 +0000 (09:08 +0000)]
arm.md (*arm_subsi3_insn): Fixed redundant alternatives.
2015-04-27 Yvan Roux <yvan.roux@linaro.org>
* config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
alternatives.
From-SVN: r222453
GCC Administrator [Mon, 27 Apr 2015 00:16:19 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r222452
Tom de Vries [Sun, 26 Apr 2015 07:13:13 +0000 (07:13 +0000)]
Mark ifn_va_arg as ECF_LEAF
2015-04-26 Tom de Vries <tom@codesourcery.com>
PR tree-optimization/65826
* internal-fn.def: Mark VA_ARG with ECF_LEAF.
From-SVN: r222446
GCC Administrator [Sun, 26 Apr 2015 00:16:22 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r222444
Marek Polacek [Sat, 25 Apr 2015 10:12:01 +0000 (10:12 +0000)]
re PR c/52085 (incomplete enum not completed correctly if packed was used)
PR c/52085
* c-decl.c (finish_enum): Copy over TYPE_ALIGN. Also check for "mode"
attribute.
* gcc.dg/enum-incomplete-2.c: New test.
* gcc.dg/enum-mode-1.c: New test.
From-SVN: r222440
GCC Administrator [Sat, 25 Apr 2015 00:16:18 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r222438
Steve Ellcey [Fri, 24 Apr 2015 23:07:53 +0000 (23:07 +0000)]
mips.md: (*madd4<mode>) Remove accum_in attribute.
2015-04-24 Steve Ellcey <sellcey@imgtec.com>
* config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
(*madd3<mode>): Ditto.
(*msub4<mode>): Ditto.
(*msub3<mode>): Ditto.
(*nmadd4<mode>): Ditto.
(*nmadd3<mode>): Ditto.
(*nmadd4<mode>_fastmath): Ditto.
(*nmadd3<mode>_fastmath): Ditto.
(*nmsub4<mode>): Ditto.
(*nmsub3<mode>): Ditto.
(*nmsub4<mode>_fastmath): Ditto.
(*nmsub3<mode>_fastmath): Ditto.
From-SVN: r222432
Ian Lance Taylor [Fri, 24 Apr 2015 22:08:32 +0000 (22:08 +0000)]
re PR go/65616 (libgobegin.a not compiled with -fPIC)
PR go/65616
libgo: Compile go-main, in libgobegin, with -fPIC.
From-SVN: r222431
Jason Merrill [Fri, 24 Apr 2015 20:53:28 +0000 (16:53 -0400)]
re PR c++/50800 (Internal compiler error in finish_member_declarations, possibly related to may_alias attribute)
PR c++/50800
* g++.dg/ext/alias-canon2.C: Remove clashing fn definitions.
From-SVN: r222426
Jason Merrill [Fri, 24 Apr 2015 19:11:45 +0000 (15:11 -0400)]
re PR c++/50800 (Internal compiler error in finish_member_declarations, possibly related to may_alias attribute)
PR c++/50800
gcc/
* tree.c (build_reference_type_for_mode): Don't pass can_alias_all
down when building TYPE_CANONICAL.
(build_pointer_type_for_mode): Likewise.
gcc/cp/
* typeck.c (structural_comptypes): Don't check TYPE_REF_CAN_ALIAS_ALL.
From-SVN: r222419
Chen Gang [Fri, 24 Apr 2015 18:40:43 +0000 (18:40 +0000)]
genrecog.c (validate_pattern): Check matching constraint refers to a lower numbered operand.
* genrecog.c (validate_pattern): Check matching constraint refers
to a lower numbered operand.
From-SVN: r222418
Michael Meissner [Fri, 24 Apr 2015 17:24:05 +0000 (17:24 +0000)]
re PR target/65849 (Add missing tuning knobs to #pragma target/attribute target support)
[gcc]
2015-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/65849
* config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
save to independent variables use the Save attribute. This will
allow these options to be modified with the #pragma/attribute
target support.
(-mallow-movmisalign): Likewise.
(-mallow-df-permute): Likewise.
(-msched-groups): Likewise.
(-malways-hint): Likewise.
(-malign-branch-targets): Likewise.
(-mvectorize-builtins): Likewise.
(-msave-toc-indirect): Likewise.
* config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
can be set via the #pragma/attribute target support.
(rs6000_opt_vars): Likewise.
(rs6000_inner_target_options): If VSX was set, also set
-mno-avoid-indexed-addresses.
[gcc/testsuite]
2015-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/65849
* gcc.target/powerpc/pr65849-1.c: New test to verify being able to
set new options.
* gcc.target/powerpc/pr65849-2.c: Likewise.
From-SVN: r222417
Kyrylo Tkachov [Fri, 24 Apr 2015 15:01:32 +0000 (15:01 +0000)]
[ARM][trivial] Use uppercase for code iterator names
* config/arm/iterators.md (shiftable_ops): Rename to...
(SHIFTABLE_OPS): ... This. Update use in comments.
(ior_xor): Rename to...
(IOR_XOR): ... This.
(vqh_ops): Rename to...
(VQH_OPS): ... This.
(vqhs_ops): Rename to...
(VQHS_OPS): ... This.
(rshifts): Rename to...
(RSHIFTS): ... This.
(returns): Rename to...
(RETURNS): ... This.
* config/arm/arm.md: Update uses of the above.
* config/arm/neon.md: Likewise.
From-SVN: r222416
Kyrylo Tkachov [Fri, 24 Apr 2015 14:52:47 +0000 (14:52 +0000)]
[AArch64] Implement -m{cpu,tune,arch}=native using only /proc/cpuinfo
* config.host (case ${host}): Add aarch64*-*-linux case.
* config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
fields to all the cores.
* config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
Add MCPU_MTUNE_NATIVE_SPECS.
* config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
field to all extensions.
* config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
* config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
Adjust definition of AARCH64_OPT_EXTENSION.
* config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
(MCPU_MTUNE_NATIVE_SPECS): Define.
* config/aarch64/driver-aarch64.c: New file.
* config/aarch64/x-arch64: New file.
* doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
-mtune and -march.
From-SVN: r222415
Jason Merrill [Fri, 24 Apr 2015 14:50:51 +0000 (10:50 -0400)]
constexpr.c (potential_constant_expression_1): Remove obsolete code.
* constexpr.c (potential_constant_expression_1) [MINUS_EXPR]:
Remove obsolete code.
[NE_EXPR]: Likewise.
From-SVN: r222414
Tom de Vries [Fri, 24 Apr 2015 14:18:57 +0000 (14:18 +0000)]
Replace g++.dg/pr65802.C with gcc.dg/pr65802.c
2015-04-24 Tom de Vries <tom@codesourcery.com>
PR tree-optimization/65802
* g++.dg/pr65802.C: Move to ...
* gcc.dg/pr65802.c: ... here. Add -fexceptions to dg-options. Include
stdarg.h. Rewrite for C.
(fn1): Use va_list and va_arg. Make variable args function. Add use of
va_start and va_end. Remove unnecessary inline asm.
From-SVN: r222413
Uros Bizjak [Fri, 24 Apr 2015 13:05:50 +0000 (15:05 +0200)]
i386-protos.h (ix86_operands_ok_for_move_multiple): New.
* config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
* config/i386/i386.c (extract_base_offset_in_addr): New function.
(ix86_operands_ok_for_move_multiple): Ditto.
* config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
(movlpd/movhpd to movupd peephole2): Ditto.
testsuite/ChangeLog:
* gcc.target/i386/sse2-load-multi.c: New test.
* gcc.target/i386/sse2-store-multi.c: Ditto.
Co-Authored-By: Wei Mi <wmi@google.com>
From-SVN: r222410
Marek Polacek [Fri, 24 Apr 2015 12:10:52 +0000 (12:10 +0000)]
re PR c/63357 (Warn for P && P and P || P (same expression used multiple times in a condition))
PR c/63357
* c-common.c (warn_logical_operator): Warn if the operands have the
same expressions.
* doc/invoke.texi: Update description of -Wlogical-op.
* c-c++-common/Wlogical-op-1.c: New test.
From-SVN: r222408
Marek Polacek [Fri, 24 Apr 2015 11:53:27 +0000 (11:53 +0000)]
re PR c/65830 (-Wno-shift-count-negative -Wno-shift-count-overflow don't work with const ints)
PR c/65830
* c-common.c (c_fully_fold_internal): Use OPT_Wshift_count_negative
and OPT_Wshift_count_overflow.
* c-c++-common/pr65830.c: New test.
From-SVN: r222407
Marek Polacek [Fri, 24 Apr 2015 11:49:52 +0000 (11:49 +0000)]
re PR c/61534 (Wlogical-op should not warn when either operand comes from macro expansion)
PR c/61534
* input.h (from_macro_expansion_at): Define.
* c-common.c (warn_logical_operator): Bail if either operand comes
from a macro expansion.
* c-c++-common/pr61534-1.c: New test.
From-SVN: r222406
Uros Bizjak [Fri, 24 Apr 2015 07:43:42 +0000 (09:43 +0200)]
sse.md (*vec_widen_smult_even_v8si<mask_name>): Mark operand1 commutative.
* config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
Mark operand1 commutative.
From-SVN: r222403
Thomas Preud'homme [Fri, 24 Apr 2015 06:02:10 +0000 (06:02 +0000)]
unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix ternary operator in fprintf and harmonize spacing.
2015-04-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
* config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
ternary operator in fprintf and harmonize spacing.
From-SVN: r222401
Uros Bizjak [Fri, 24 Apr 2015 06:01:34 +0000 (08:01 +0200)]
sse.md (*vec_concatv2sf_sse4_1): Do not allow both input operands in memory.
* config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
input operands in memory.
(*vec_concatv2si_sse4_1): Ditto.
(*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
(vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
register_operand.
(vec_extract_hi_v32hi): Ditto.
(vec_extract_hi_v64hi): Ditto.
(<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
From-SVN: r222400
Thomas Preud'homme [Fri, 24 Apr 2015 04:49:34 +0000 (04:49 +0000)]
re PR rtl-optimization/34503 (Issues with constant/copy propagation implementation in gcse.c)
2015-04-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
Steven Bosscher <steven@gcc.gnu.org>
gcc/
PR rtl-optimization/34503
* cprop.c (cprop_reg_p): New.
(hash_scan_set): Use above function to check if register can be
propagated.
(find_avail_set): Return up to two sets, one whose source is a
register and one whose source is a constant. Sets are returned in an
array passed as parameter rather than as a return value.
(cprop_insn): Use a do while loop rather than a goto. Try each of the
sets returned by find_avail_set, starting with the one whose source is
a constant. Use cprop_reg_p to check if register can be propagated.
(do_local_cprop): Use cprop_reg_p to check if register can be
propagated.
(implicit_set_cond_p): Likewise.
gcc/testsuite/
PR rtl-optimization/34503
* gcc.target/arm/pr64616.c: New file.
Co-Authored-By: Steven Bosscher <steven@gcc.gnu.org>
From-SVN: r222398
Bin Cheng [Fri, 24 Apr 2015 03:44:53 +0000 (03:44 +0000)]
pr42172-1.c: Check str instead of ldr.
gcc/testsuite/ChangeLog
* gcc.target/arm/pr42172-1.c: Check str instead of ldr.
From-SVN: r222396
Terry Guo [Fri, 24 Apr 2015 02:07:30 +0000 (02:07 +0000)]
pr65710.c: Update the options.
2015-04-24 Terry Guo <terry.guo@arm.com>
* gcc.target/arm/pr65710.c: Update the options.
From-SVN: r222393
Jan Hubicka [Fri, 24 Apr 2015 00:58:25 +0000 (02:58 +0200)]
ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
* ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
(sem_function::equals): IGNORED_NODES parameter is now unused;
update call of equals_private.
(sem_function::equals_private): Do not call equals_wpa; skip
gimple body matching if there is no body.
(sem_function::init): Add logic to hash tthunk info.
(sem_function::parse): Also parse thunks.
* ipa-icf.h (equals_private): Update declaration.
From-SVN: r222392
GCC Administrator [Fri, 24 Apr 2015 00:16:16 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r222391
Bill Schmidt [Thu, 23 Apr 2015 20:18:10 +0000 (20:18 +0000)]
altivec.md (*altivec_lvx_<mode>_internal): Remove asterisk from name so this can be generated directly.
2015-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
asterisk from name so this can be generated directly.
(*altivec_stvx_<mode>_internal): Likewise.
* config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
that this is never called during or after reload/lra.
(rs6000_frame_related): Remove split_reg
argument and logic that references it.
(emit_frame_save): Remove last parameter from call to
rs6000_frame_related.
(rs6000_emit_prologue): Remove last parameter from eight calls to
rs6000_frame_related. Force generation of stvx instruction for
Altivec register saves. Remove split_reg handling, which is no
longer needed.
(rs6000_emit_epilogue): Force generation of lvx instruction for
Altivec register restores.
From-SVN: r222385
Jason Merrill [Thu, 23 Apr 2015 19:40:16 +0000 (15:40 -0400)]
Revert:PR c++/50800
Revert:PR c++/50800
* tree.c (strip_typedefs): Add remove_attributes parm.
(strip_typedefs_expr): Likewise.
(apply_identity_attributes): New subroutine of strip_typedefs.
* pt.c (canonicalize_type_argument): Let strip_typedefs handle attrs.
(convert_nontype_argument, unify): Likewise.
* cp-tree.h: Adjust.
From-SVN: r222384
H.J. Lu [Thu, 23 Apr 2015 18:11:57 +0000 (18:11 +0000)]
Skip gcc.target/i386/pr65523.c for x32
* gcc.target/i386/pr65523.c: Skip x32.
From-SVN: r222382
Bill Schmidt [Thu, 23 Apr 2015 18:07:02 +0000 (18:07 +0000)]
rs6000.opt (mcrypto): Change option description to match category changes in ISA 2.07B.
2015-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* config/rs6000/rs6000.opt (mcrypto): Change option description to
match category changes in ISA 2.07B.
From-SVN: r222381
Jan Hubicka [Thu, 23 Apr 2015 16:23:26 +0000 (18:23 +0200)]
tree.h (attribute_value_equal): Declare.
* tree.h (attribute_value_equal): Declare.
* tree.c (attribute_value_equal): Export.
From-SVN: r222380
Kyrylo Tkachov [Thu, 23 Apr 2015 16:19:26 +0000 (16:19 +0000)]
[ARM] Rewrite vc<cond> NEON patterns to use RTL operations rather than UNSPECs
* config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
iterators.
(cmp_op, cmp_type): New code attributes.
(NEON_VCMP, NEON_VACMP): New int iterators.
(cmp_op_unsp): New int attribute.
* config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
(neon_vceq<mode>): Delete.
(neon_vc<cmp_op><mode>_insn): New pattern.
(neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
(neon_vcgeu<mode>): Delete.
(neon_vcle<mode>): Likewise.
(neon_vclt<mode>: Likewise.
(neon_vcage<mode>): Likewise.
(neon_vcagt<mode>): Likewise.
(neon_vca<cmp_op><mode>): New define_expand.
(neon_vca<cmp_op><mode>_insn): New pattern.
(neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.
* gcc.target/arm/neon/pr51534.c: Update vcg* scan-assembly patterns
to look for vcl* where appropriate.
From-SVN: r222379
Jan Hubicka [Thu, 23 Apr 2015 16:07:43 +0000 (16:07 +0000)]
Fix testuite for updated ICF dumps.
From-SVN: r222378
Jason Merrill [Thu, 23 Apr 2015 15:55:21 +0000 (11:55 -0400)]
re PR c++/50800 (Internal compiler error in finish_member_declarations, possibly related to may_alias attribute)
PR c++/50800
* tree.c (strip_typedefs): Add remove_attributes parm.
(strip_typedefs_expr): Likewise.
(apply_identity_attributes): New subroutine of strip_typedefs.
* pt.c (canonicalize_type_argument): Let strip_typedefs handle attrs.
(convert_nontype_argument, unify): Likewise.
* cp-tree.h: Adjust.
From-SVN: r222377
Jason Merrill [Thu, 23 Apr 2015 15:55:11 +0000 (11:55 -0400)]
re PR c++/65646 (ICE in invalid syntax)
PR c++/65646
* pt.c (check_explicit_specialization): Don't
SET_DECL_TEMPLATE_SPECIALIZATION for a variable with no template
headers.
* decl.c (grokvardecl): Revert earlier fix.
From-SVN: r222376
Ramana Radhakrishnan [Thu, 23 Apr 2015 15:30:50 +0000 (15:30 +0000)]
Correct name and email address in the Changelog commit.
From-SVN: r222375
Jan Hubicka [Thu, 23 Apr 2015 15:25:26 +0000 (17:25 +0200)]
ipa-icf.c (sem_item::compare_attributes): New function.
* ipa-icf.c (sem_item::compare_attributes): New function.
(sem_item::compare_referenced_symbol_properties): Compare variable
attributes.
(sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
(sem_function::param_used_p): New function.
(sem_function::equals_wpa): Fix attribute comparsion; match
parameter type codes; do not compare paremter flags when
they are not used; compare edge flags; compare indirect calls.
(sem_item::update_hash_by_addr_refs): Hash reference type.
(sem_function::equals_private): Do not match DECL_ATTRIBUTES.
(sem_variable::equals_wpa): Do not match DECL_ALIGN; match
reference use type.
(sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
* ipa-icf.h (compare_attributes, param_used_p): Declare.
From-SVN: r222374
Bill Schmidt [Thu, 23 Apr 2015 15:09:19 +0000 (15:09 +0000)]
costmodel-bb-slp-9a.c: Replace vect_no_align with vect_no_align && { ! vect_hw_misalign }.
2015-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a.c: Replace
vect_no_align with vect_no_align && { ! vect_hw_misalign }.
From-SVN: r222373
Jan Hubicka [Thu, 23 Apr 2015 14:55:07 +0000 (16:55 +0200)]
ipa-icf.c (symbol_compare_collection::symbol_compare_collection): cleanup.
* ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
cleanup.
(sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
(sem_item::compare_referenced_symbol_properties): New.
(sem_item::hash_referenced_symbol_properties): New.
(sem_item::compare_cgraph_references): Rename to ...
(sem_item::compare_symbol_references): ... this one; use
compare_referenced_symbol_properties.
(sem_function::equals_wpa): Do not compare
DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
DECL_IS_OPERATOR_NEW; compare pointer sizes.
(sem_item::update_hash_by_addr_refs): Call
hash_referenced_symbol_properties.
(sem_item::update_hash_by_local_refs): Cleanup.
(sem_function::merge): Do not mix up symbol properties.
(sem_variable::equals_wpa): Use compare_symbol_references.
* ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
(sem_item::hash_referenced_symbol_properties): New.
(sem_item::compare_symbol_references): New.
(sem_item::compare_cgraph_references): Remove.
From-SVN: r222372
Ramana Radhakrishnan [Thu, 23 Apr 2015 14:49:45 +0000 (14:49 +0000)]
re PR target/26702 (.size is not emitted for BSS variables)
Fix PR target/26702
For Kwok Cheung Yeung.
From-SVN: r222371
Marek Polacek [Thu, 23 Apr 2015 14:35:12 +0000 (14:35 +0000)]
re PR c/65345 (ICE with _Generic selection on _Atomic int)
PR c/65345
* c-decl.c (set_labels_context_r): New function.
(store_parm_decls): Call it via walk_tree_without_duplicates.
* c-typeck.c (convert_lvalue_to_rvalue): Use create_tmp_var_raw
instead of create_tmp_var. Build TARGET_EXPR instead of
COMPOUND_EXPR.
(build_atomic_assign): Use create_tmp_var_raw instead of
create_tmp_var. Build TARGET_EXPRs instead of MODIFY_EXPR.
* gcc.dg/pr65345-1.c: New test.
* gcc.dg/pr65345-2.c: New test.
From-SVN: r222370
Nick Clifton [Thu, 23 Apr 2015 13:41:48 +0000 (13:41 +0000)]
rl78.c (rl78_preferred_reload_class): Add ATTRIBUTE_UNUSED to x parameter.
* config/rl78/rl78.c (rl78_preferred_reload_class): Add
ATTRIBUTE_UNUSED to x parameter.
* config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.
From-SVN: r222369
Bill Schmidt [Thu, 23 Apr 2015 12:36:43 +0000 (12:36 +0000)]
crypto.md (crypto_vpmsum<CR_char>): Change TARGET_CRYPTO to TARGET_P8_VECTOR>
[gcc]
2015-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
TARGET_CRYPTO to TARGET_P8_VECTOR>
(crypto_vpermxor_<mode>): Likewise.
* config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
(BU_CRYPTO_3A): Likewise.
(BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
(BU_CRYPTO_OVERLOAD_3A): New #define.
(VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
(VPMSUMH): Likewise.
(VPMSUMW): Likewise.
(VPMSUMD): Likewise.
(VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
(VPERMXOR_V4SI): Likewise.
(VPERMXOR_V8HI): Likewise.
(VPERMXOR_V16QI): Likewise.
(VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
BU_CRYPTO_OVERLOAD_2A.
(VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
BU_CRYPTO_OVERLOAD_3A.
* config/rs6000/rs6000.opt (mcrypto): Change description of
option.
[gcc/testsuite]
2015-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* gcc.target/powerpc/crypto-builtin-2.c: New.
From-SVN: r222362
Andre Vehreschild [Thu, 23 Apr 2015 11:32:00 +0000 (13:32 +0200)]
PF fortran/60322
gcc/testsuite/ChangeLog:
2015-04-23 Andre Vehreschild <vehre@gmx.de>
PF fortran/60322
* gfortran.dg/class_allocate_19.f03: New test.
* gfortran.dg/class_array_20.f03: New test.
* gfortran.dg/class_array_21.f03: New test.
* gfortran.dg/finalize_10.f90: Corrected scan-trees.
* gfortran.dg/finalize_15.f90: Fixing comparision to model
initialization correctly.
* gfortran.dg/finalize_29.f08: New test.
gcc/fortran/ChangeLog:
2015-04-23 Andre Vehreschild <vehre@gmx.de>
PR fortran/60322
* expr.c (gfc_lval_expr_from_sym): Code to select the regular
or class array added.
* gfortran.h: Add IS_CLASS_ARRAY macro.
* trans-array.c (gfc_add_loop_ss_code): Treat class objects
to be referenced always.
(build_class_array_ref): Adapt retrieval of array descriptor.
(build_array_ref): Likewise.
(gfc_conv_array_ref): Hand the vptr or the descriptor to
build_array_ref depending whether the sym is class or not.
(gfc_trans_array_cobounds): Select correct gfc_array_spec for
regular and class arrays.
(gfc_trans_array_bounds): Likewise.
(gfc_trans_dummy_array_bias): Likewise.
(gfc_get_dataptr_offset): Correcting call of build_array_ref.
(gfc_conv_expr_descriptor): Set the array's offset to -1 when
lbound in inner most dim is 1 and symbol non-pointer/assoc.
* trans-decl.c (gfc_build_qualified_array): Select correct
gfc_array_spec for regular and class arrays.
(gfc_build_dummy_array_decl): Likewise.
(gfc_get_symbol_decl): Get a dummy array for class arrays.
(gfc_trans_deferred_vars): Tell conv_expr that the descriptor
is desired.
* trans-expr.c (gfc_class_vptr_get): Get the class descriptor
from the correct location for class arrays.
(gfc_class_len_get): Likewise.
(gfc_conv_intrinsic_to_class): Add handling of _len component.
(gfc_conv_class_to_class): Prevent access to unset array data
when the array is an optional argument. Add handling of _len
component.
(gfc_copy_class_to_class): Check that _def_init is non-NULL
when used in _vptr->copy()
(gfc_trans_class_init_assign): Ensure that the rank of
_def_init is zero.
(gfc_conv_component_ref): Get the _vptr along with _data refs.
(gfc_conv_variable): Make sure the temp array descriptor is
returned for class arrays, too, and that class arrays are
dereferenced correctly.
(gfc_conv_procedure_call): For polymorphic type initialization
the initializer has to be a pointer to _def_init stored in a
dummy variable, which then needs to be used by value.
* trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Use the
temporary array descriptor for class arrays, too.
(gfc_conv_intrinsic_storage_size): Likewise.
(gfc_conv_intrinsic_loc): Add ref to _data for BT_CLASS
expressions.
* trans-stmt.c (trans_associate_var): Use a temporary array for
the associate variable of class arrays, too, making the array
one-based (lbound == 1).
* trans-types.c (gfc_is_nodesc_array): Use the correct
array data.
* trans.c (gfc_build_array_ref): Use the dummy array descriptor
when present.
* trans.h: Add class_vptr to gfc_se for storing a class ref's
vptr.
From-SVN: r222361
Richard Biener [Thu, 23 Apr 2015 11:19:45 +0000 (11:19 +0000)]
passes.def: Remove copy propagation passes run directly after CCP.
2015-04-23 Richard Biener <rguenther@suse.de>
* passes.def: Remove copy propagation passes run directly after CCP.
* tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
SSA names.
(ccp_visit_phi_node): Rework to handle first executable edge
specially.
From-SVN: r222360
Matthew Wahab [Thu, 23 Apr 2015 11:02:47 +0000 (11:02 +0000)]
[ARM] Remove an unused reload hook.
* config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
(ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
(THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
* config/arm/arm.c (arm_legimitimize_reload_address): Remove.
(thumb_legimitimize_reload_address): Remove.
* config/arm/arm-protos.h (arm_legimitimize_reload_address):
Remove.
(thumb_legimitimize_reload_address): Remove.
From-SVN: r222359
Kyrylo Tkachov [Thu, 23 Apr 2015 10:34:58 +0000 (10:34 +0000)]
Re: [PATCH 02/12] remove some ifdef HAVE_cc0.
* conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
From-SVN: r222358
Kyrylo Tkachov [Thu, 23 Apr 2015 10:26:25 +0000 (10:26 +0000)]
[ARM] Restrict {load,store}_multiple expanders to MAX_LD_STM_OPS regs
* config/arm/arm.md (load_multiple): Reject operand 2 greater than
MAX_LDM_STM_OPS.
(store_multiple): Likewise.
From-SVN: r222357
Kyrylo Tkachov [Thu, 23 Apr 2015 10:24:07 +0000 (10:24 +0000)]
[ARM] Make issue rate part of per-core tuning structs
* config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
* config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
Specify issue_rate value.
(arm_issue_rate): Look up issue rate from tuning structs. Remove
large switch statement.
(arm_marvell_pj4_tune): New struct.
* config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
struct.
From-SVN: r222356
Richard Biener [Thu, 23 Apr 2015 08:43:10 +0000 (08:43 +0000)]
tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
2015-04-23 Richard Biener <rguenther@suse.de>
* tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
(vect_find_last_store_in_slp_instance): Rename to ...
(vect_find_last_scalar_stmt_in_slp): ... this and generalize.
(vect_analyze_slp_cost_1): Use vector_load for constant defs
and vec_construct for external defs when estimating prologue cost.
(vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
Compute costs here only when vectorizing loops.
(vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
have been determined.
(vect_schedule_slp_instance): Simplify vectorized code placement
and prepare for in-BB external defs.
* tree-vectorizer.h (struct _slp_instance): Remove first_load member.
(SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
* tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
guard.
(vect_model_load_cost): Likewise.
(vectorizable_store): Instead add it here.
(vectorizable_load): Likewise.
(vect_is_simple_use): Dump def type textually.
From-SVN: r222354
Richard Biener [Thu, 23 Apr 2015 08:30:04 +0000 (08:30 +0000)]
cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
2015-04-23 Richard Biener <rguenther@suse.de>
* cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
* cfgloop.c (verify_loop_structure): Verify the root loop node.
* except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
instead of get_eh_region_from_lp_number.
* loop-init.c (fix_loop_structure): If we removed a loop, reset
the SCEV cache.
From-SVN: r222353
Anton Blanchard [Thu, 23 Apr 2015 05:36:55 +0000 (05:36 +0000)]
rs6000.c (rs6000_output_function_prologue): No need for -mprofile-kernel to save LR to stack.
* config/rs6000/rs6000.c (rs6000_output_function_prologue): No
need for -mprofile-kernel to save LR to stack.
From-SVN: r222352
Bill Schmidt [Thu, 23 Apr 2015 01:49:08 +0000 (01:49 +0000)]
rs6000.c (rtx_is_swappable_p): Commentary adjustments.
[gcc]
2015-04-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
adjustments.
(insn_is_swappable_p): Return 1 for a convert from double to
single precision when all of its uses are splats of BE element
zero.
[gcc/testsuite]
2015-04-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* gcc.target/powerpc/swaps-p8-18.c: New test.
From-SVN: r222351
Kugan Vivekanandarajah [Thu, 23 Apr 2015 00:43:30 +0000 (00:43 +0000)]
ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
2015-04-23 Kugan Vivekanandarajah <kuganv@linaro.org>
* ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
From-SVN: r222350
Bill Schmidt [Thu, 23 Apr 2015 00:21:39 +0000 (00:21 +0000)]
re PR target/65456 (powerpc64le autovectorized copy loop missed optimization)
[gcc]
2015-04-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR target/65456
* config/rs6000/rs6000.c (rs6000_option_override_internal): For
VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
option.
(rs6000_builtin_mask_for_load): Return 0 for targets with
efficient unaligned VSX accesses so that the vectorizer will use
direct unaligned loads.
(rs6000_builtin_support_vector_misalignment): Always return true
for targets with efficient unaligned VSX accesses.
(rs6000_builtin_vectorization_cost): Cost of unaligned loads and
stores on targets with efficient unaligned VSX accesses is almost
always the same as the cost of an aligned load or store, so model
it that way.
* config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
unaligned vectors if we have efficient unaligned VSX accesses.
* config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
undocumented option.
[gcc/testsuite]
2015-04-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR target/65456
* gcc.dg/vect/bb-slp-24.c: Exclude test for POWER8.
* gcc.dg/vect/bb-slp-25.c: Likewise.
* gcc.dg/vect/bb-slp-29.c: Likewise.
* gcc.dg/vect/bb-slp-32.c: Replace vect_no_align with
vect_no_align && { ! vect_hw_misalign }.
* gcc.dg/vect/bb-slp-9.c: Likewise.
* gcc.dg/vect/costmodel/ppc/costmodel-slp-33.c: Exclude test for
vect_hw_misalign.
* gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c: Likewise.
* gcc.dg/vect/costmodel/ppc/costmodel-vect-76b.c: Adjust tests to
account for POWER8, where peeling for alignment is not needed.
* gcc.dg/vect/costmodel/ppc/costmodel-vect-outer-fir.c: Replace
vect_no_align with vect_no_align && { ! vect_hw_misalign }.
* gcc.dg.vect.if-cvt-stores-vect-ifcvt-18.c: Likewise.
* gcc.dg/vect/no-scevccp-outer-6-global.c: Likewise.
* gcc.dg/vect/no-scevccp-outer-6.c: Likewise.
* gcc.dg/vect/no-vfa-vect-43.c: Likewise.
* gcc.dg/vect/no-vfa-vect-57.c: Likewise.
* gcc.dg/vect/no-vfa-vect-61.c: Likewise.
* gcc.dg/vect/no-vfa-vect-depend-1.c: Likewise.
* gcc.dg/vect/no-vfa-vect-depend-2.c: Likewise.
* gcc.dg/vect/no-vfa-vect-depend-3.c: Likewise.
* gcc.dg/vect/pr16105.c: Likewise.
* gcc.dg/vect/pr20122.c: Likewise.
* gcc.dg/vect/pr33804.c: Likewise.
* gcc.dg/vect/pr33953.c: Likewise.
* gcc.dg/vect/pr56787.c: Likewise.
* gcc.dg/vect/pr58508.c: Likewise.
* gcc.dg/vect/slp-25.c: Likewise.
* gcc.dg/vect/vect-105-bit-array.c: Likewise.
* gcc.dg/vect/vect-105.c: Likewise.
* gcc.dg/vect/vect-27.c: Likewise.
* gcc.dg/vect/vect-29.c: Likewise.
* gcc.dg/vect/vect-33.c: Exclude unaligned access test for
POWER8.
* gcc.dg/vect/vect-42.c: Replace vect_no_align with vect_no_align
&& { ! vect_hw_misalign }.
* gcc.dg/vect/vect-44.c: Likewise.
* gcc.dg/vect/vect-48.c: Likewise.
* gcc.dg/vect/vect-50.c: Likewise.
* gcc.dg/vect/vect-52.c: Likewise.
* gcc.dg/vect/vect-56.c: Likewise.
* gcc.dg/vect/vect-60.c: Likewise.
* gcc.dg/vect/vect-72.c: Likewise.
* gcc.dg/vect/vect-75-big-array.c: Likewise.
* gcc.dg/vect/vect-75.c: Likewise.
* gcc.dg/vect/vect-77-alignchecks.c: Likewise.
* gcc.dg/vect/vect-77-global.c: Likewise.
* gcc.dg/vect/vect-78-alignchecks.c: Likewise.
* gcc.dg/vect/vect-78-global.c: Likewise.
* gcc.dg/vect/vect-93.c: Likewise.
* gcc.dg/vect/vect-95.c: Likewise.
* gcc.dg/vect/vect-96.c: Likewise.
* gcc.dg/vect/vect-cond-1.c: Likewise.
* gcc.dg/vect/vect-cond-3.c: Likewise.
* gcc.dg/vect/vect-cond-4.c: Likewise.
* gcc.dg/vect/vect-cselim-1.c: Likewise.
* gcc.dg/vect/vect-multitypes-1.c: Likewise.
* gcc.dg/vect/vect-multitypes-3.c: Likewise.
* gcc.dg/vect/vect-multitypes-4.c: Likewise.
* gcc.dg/vect/vect-multitypes-6.c: Likewise.
* gcc.dg/vect/vect-nest-cycle-1.c: Likewise.
* gcc.dg/vect/vect-nest-cycle-2.c: Likewise.
* gcc.dg/vect/vect-outer-3a-big-array.c: Likewise.
* gcc.dg/vect/vect-outer-3a.c: Likewise.
* gcc.dg/vect/vect-outer-5.c: Likewise.
* gcc.dg/vect/vect-outer-fir-big-array.c: Likewise.
* gcc.dg/vect/vect-outer-fir-lb-big-array.c: Likewise.
* gcc.dg/vect/vect-outer-fir-lb.c: Likewise.
* gcc.dg/vect/vect-outer-fir.c: Likewise.
* gcc.dg/vect/vect-peel-3.c: Likewise.
* gcc.dg/vect/vect-peel-4.c: Likewise.
* gcc.dg/vect/vect-pre-interact.c: Likewise.
* gcc.target/powerpc/pr65456.c: New test.
* gcc.target/powerpc/vsx-vectorize-2.c: Exclude test for POWER8.
* gcc.target/powerpc/vsx-vectorize-4.c: Likewise.
* gcc.target/powerpc/vsx-vectorize-6.c: Likewise.
* gcc.target/powerpc/vsx-vectorize-7.c: Likewise.
* gfortran.dg/vect/vect-2.f90: Replace vect_no_align with
vect_no_align && { ! vect_hw_misalign }.
* gfortran.dg/vect/vect-3.f90: Likewise.
* gfortran.dg/vect/vect-4.f90: Likewise.
* gfortran.dg/vect/vect-5.f90: Likewise.
* lib/target-supports.exp (check_effective_target_vect_no_align):
Return 1 for POWER8.
(check_effective_target_vect_hw_misalign): Return 1 for POWER8.
From-SVN: r222349
GCC Administrator [Thu, 23 Apr 2015 00:16:16 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r222348
Steven G. Kargl [Wed, 22 Apr 2015 22:43:46 +0000 (22:43 +0000)]
re PR fortran/65429 (ICE on implied-length character empty array constructor)
2015-04-22 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/65429
* decl.c (add_init_expr_to_sym): Set the length type parameter.
PR fortran/65429
* gfortran.dg/pr65429.f90: New test.
From-SVN: r222342