1. 30 Jun, 2016 5 commits
  2. 29 Jun, 2016 22 commits
    • predicates.md (const_0_to_7_operand): New predicate, recognize 0..7. · c5e74d9d
      [gcc]
      2016-06-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* config/rs6000/predicates.md (const_0_to_7_operand): New
      	predicate, recognize 0..7.
      	* config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
      	support for doing extracts from V16QImode, V8HImode, V4SImode
      	under ISA 3.0.
      	* config/rs6000/vsx.md (VSX_EXTRACT_I): Mode iterator for ISA 3.0
      	vector extract support.
      	(VSX_EXTRACT_PREDICATE): Mode attribute to validate element number
      	for ISA 3.0 vector extract.
      	(VSX_EX): Constraints to use for ISA 3.0 vector extract.
      	(vsx_extract_<mode>, VSX_EXTRACT_I): Add support for doing
      	extracts of a constant element number from small integer vectors
      	on 64-bit ISA 3.0 systems.
      	(vsx_extract_<mode>_di): Likewise.
      	* config/rs6000/rs6000.h (TARGET_VEXTRACTUB): New target macro to
      	say when we can do ISA 3.0 vector extracts.
      	* config/rs6000/rs6000.md (stfiwx): Allow DImode in Altivec
      	registers, using the stxsiwx instruction.
      
      [gcc/testsuite]
      2016-06-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* gcc.target/powerpc/p9-extract-1.c: New file to test ISA 3.0
      	vector extract instructions.
      	* gcc.target/powerpc/p9-extract-2.c: Likewise.
      
      From-SVN: r237864
      Michael Meissner committed
    • re PR fortran/71686 (ICE on broken character continuation) · e44ecbfd
      2016-06-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	PR fortran/71686
      	* gfortran.dg/unexpected_eof_2.f90: New test.
      	* gfortran.dg/unexpected_eof_3.f90: New test.
      
      From-SVN: r237861
      Jerry DeLisle committed
    • re PR fortran/71686 (ICE on broken character continuation) · b5f58440
      2016-06-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	PR fortran/71686
      	* scanner.c (gfc_next_char_literal): Only decrement nextc if it
      	is not NULL.
      
      From-SVN: r237860
      Jerry DeLisle committed
    • Add qdf24xx base tuning support. · ee446d9f
      	gcc/
      	* config/aarch64/aarch64-cores.def (qdf24xx): Use qdf24xx tuning.
      	* config/aarch64/aarch64.c (qdf24xx_addrcost_table,
      	qdf24xx_regmove_cost, qdf24xx_tunings): New.
      	* config/arm/aarch64-cost-tables.h (qdf24xx_extra_costs): New.
      	* config/arm/arm-cores.def (qdf24xx): Use qdf24xx tuning.
      	* config/arm/arm.c (arm_qdf24xx_tune): New.
      
      	gcc/testsuite/
      	* gcc.dg/asr_div1.c: Add aarch64 specific dg-options.
      
      From-SVN: r237857
      Jim Wilson committed
    • openmp.c (match_oacc_clause_gang): Rename to ... · 27f67461
      	gcc/fortran/
      	* openmp.c (match_oacc_clause_gang): Rename to ...
      	(match_oacc_clause_gwv): this.  Add support for OpenACC worker and
      	vector clauses.
      	(gfc_match_omp_clauses): Use match_oacc_clause_gwv for
      	OMP_CLAUSE_{GANG,WORKER,VECTOR}.  Propagate any MATCH_ERRORs for
      	invalid OMP_CLAUSE_{ASYNC,WAIT,GANG,WORKER,VECTOR} clauses.
      	(gfc_match_oacc_wait): Propagate MATCH_ERROR for invalid
      	oacc_expr_lists.  Adjust the first and needs_space arguments to
      	gfc_match_omp_clauses.
      
      	gcc/testsuite/
      	* gfortran.dg/goacc/asyncwait-2.f95: Updated expected diagnostics.
      	* gfortran.dg/goacc/asyncwait-3.f95: Likewise.
      	* gfortran.dg/goacc/asyncwait-4.f95: Add test coverage.
      
      From-SVN: r237854
      Cesar Philippidis committed
    • re PR tree-optimization/15256 ([tree-ssa] Optimize manual bitfield manipilation.) · b1206d29
      2016-06-29  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/15256
      	* gcc.dg/tree-ssa/forwprop-34.c: New testcase.
      
      From-SVN: r237852
      Richard Biener committed
    • Increase loop alignment on Cortex cores to 8 and set function alignment to 16. · d4407370
      This makes things consistent across big.LITTLE cores, improves performance of
      benchmarks with tight loops and reduces performance variations due to small
      changes in code layout.
      
          gcc/
              * config/aarch64/aarch64.c (cortexa53_tunings):
              Increase loop alignment to 8.  Set function alignment to 16.
              (cortexa35_tunings): Likewise.
              (cortexa57_tunings): Increase loop alignment to 8.
              (cortexa72_tunings): Likewise.
              (cortexa73_tunings): Likewise.
      
      From-SVN: r237851
      Wilco Dijkstra committed
    • re PR ada/48835 (porting GNAT to m68k-linux) · 9182f718
      	PR ada/48835
      	PR ada/61954
      	* gcc-interface/gigi.h (enum standard_datatypes): Add ADT_realloc_decl
      	(realloc_decl): New macro.
      	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Use local
      	variable for the entity type and translate it as void pointer if the
      	entity has convention C.
      	(gnat_to_gnu_entity) <E_Function>: If this is not a definition and the
      	external name matches that of malloc_decl or realloc_decl, return the
      	correspoding node directly.
      	(gnat_to_gnu_subprog_type): Likewise for parameter and return types.
      	* gcc-interface/trans.c (gigi): Initialize void_list_node here, not...
      	Initialize realloc_decl.
      	* gcc-interface/utils.c (install_builtin_elementary_types): ...here.
      	(build_void_list_node): Delete.
      	* gcc-interface/utils2.c (known_alignment) <CALL_EXPR>: Return the
      	alignment of the system allocator for malloc_decl and realloc_decl.
      	Do not take alignment from void pointer types either.
      
      From-SVN: r237850
      Eric Botcazou committed
    • [ARM] Fix, add tests for FP16 aapcs. · 1af21224
      testsuite/
      	* gcc.target/arm/aapcs/neon-vect10.c: Require
      	-mfloat-ab=hard.  Replace arm_neon_fp16_ok with arm_neon_fp16_hw.
      	* gcc.target/arm/aapcs/neon-vect9.c: Likewise.
      	* gcc.target/arm/aapcs/vfp18.c: Likewise.
      	* gcc.target/arm/aapcs/vfp19.c: Likewise.
      	* gcc.target/arm/aapcs/vfp20.c: Likewise.
      	* gcc.target/arm/aapcs/vfp21.c: Likewise.
      	* gcc.target/arm/fp16-aapcs-1.c: Require
      	-mfloat-ab=hard.  Also simplify the test.
      	* gcc.target/arm/fp16-aapcs-2.c: New.
      
      From-SVN: r237849
      Matthew Wahab committed
    • misc.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): Reorder. · abb67622
      	* gcc-interface/misc.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): Reorder.
      	(LANG_HOOKS_INIT_TS): Likewise.
      
      From-SVN: r237848
      Eric Botcazou committed
    • [Testsuite] Selectors and options directives for ARM VFP FP16 support. · 7fe43755
      gcc/
      	* doc/sourcebuild.texi (Effective-Target keywords): Add entries
      	for arm_fp16_ok and arm_fp16_hw.
      	(Add Options): Add entries for arm_fp16, arm_fp16_ieee and
      	arm_fp16_alternative.
      
      testsuite/
      	* lib/target-supports.exp (add_options_for arm_fp16): Reword
      	comment.
      	(add_options_for_arm_fp16_ieee): New.
      	(add_options_for_arm_fp16_alternative): New.
      	(effective_target_arm_fp16_ok_nocache): Add to comment.  Fix a
      	long-line.
      	(effective_target_arm_fp16_hw): New.
      
      From-SVN: r237847
      Matthew Wahab committed
    • re PR tree-optimization/71655 (GCC trunk ICE on westmere target) · 264d951a
      gcc/
      
      	PR tree-optimization/71655
      	* tree-vect-stmts.c (vectorizable_comparison): Swap definition
      	types when swapping operands.
      
      gcc/testsuite/
      
      	PR tree-optimization/71655
      	* g++.dg/pr71655.C: New test.
      
      From-SVN: r237846
      Ilya Enkovich committed
    • Mark -fstack-protect as optimization flag. · 5c846a81
      	PR middle-end/71585
      	* common.opt (flag_stack_protect): Mark the flag as optimization
      	flag.
      	* ipa-inline-transform.c (inline_call): Remove unnecessary call
      	of build_optimization_node.
      	* gcc.dg/pr71585.c: New test.
      	* gcc.dg/pr71585-2.c: New test.
      	* gcc.dg/pr71585-3.c: New test.
      
      From-SVN: r237845
      Martin Liska committed
    • re PR tree-optimization/70729 (Loop marked with omp simd pragma is not vectorized) · fafe9318
      gcc/
      
      2016-06-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
      
      	PR tree-optimization/70729
      	* tree-ssa-loop-im.c (ref_indep_loop_p_1): Consider memory reference as
      	independent in loops having positive safelen value.
      	* tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
      	it may be not valid after vectorization.
      
      gcc/testsuite/
      
      2016-06-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
      
      	PR tree-optimization/70729
      	* g++.dg/vect/pr70729.cc: New test.
      
      From-SVN: r237844
      Yuri Rumyantsev committed
    • Improve diagnostic messages of "#pragma omp cancel", "#pragma omp cancellation point" parsing · 54d19c3b
      	gcc/c/
      	* c-parser.c (c_parser_pragma) <PRAGMA_OMP_CANCELLATION_POINT>:
      	Move pragma context checking into...
      	(c_parser_omp_cancellation_point): ... here, and improve
      	diagnostic messages.
      	* c-typeck.c (c_finish_omp_cancel)
      	(c_finish_omp_cancellation_point): Improve diagnostic messages.
      	gcc/cp/
      	* parser.c (cp_parser_pragma) <PRAGMA_OMP_CANCELLATION_POINT>:
      	Move pragma context checking into...
      	(cp_parser_omp_cancellation_point): ... here, and improve
      	diagnostic messages.
      	* semantics.c (finish_omp_cancel, finish_omp_cancellation_point):
      	Improve diagnostic messages.
      	gcc/testsuite/
      	* c-c++-common/gomp/cancel-1.c: Extend.
      
      From-SVN: r237843
      Thomas Schwinge committed
    • Rename PRAGMA_OMP_DECLARE_REDUCTION to PRAGMA_OMP_DECLARE · f9d8d994
      	gcc/c-family/
      	* c-pragma.h (enum pragma_kind): Rename
      	PRAGMA_OMP_DECLARE_REDUCTION to PRAGMA_OMP_DECLARE.  Adjust all
      	users.
      
      From-SVN: r237842
      Thomas Schwinge committed
    • re PR tree-optimization/71625 (missing strlen optimization on different array initialization style) · 5f3cd7c3
      	PR tree-optimization/71625
      	* tree-ssa-strlen.c (get_addr_stridx): Add PTR argument.  Assume list
      	is sorted by ascending list->offset.  If PTR is non-NULL and there is
      	previous strinfo, call get_stridx_plus_constant.
      	(get_stridx): Pass exp as second argument to get_addr_stridx.
      	(addr_stridxptr): Add missing list = list->next, so that there can be
      	more than one entries in the list.  Bump limit from 16 to 32.  Ensure
      	the list is sorted by ascending list->offset.
      	(get_stridx_plus_constant): Adjust so that it can be also called with
      	ADDR_EXPR instead of SSA_NAME as PTR.
      	(handle_char_store): Pass NULL_TREE as second argument to
      	get_addr_stridx.
      
      	* gcc.dg/strlenopt-28.c: New test.
      
      From-SVN: r237841
      Jakub Jelinek committed
    • re PR tree-optimization/68961 (Test case gcc.target/powerpc/pr60203.c fails since r231674) · 36d0d9be
      2016-06-29  Richard Biener  <rguenther@suse.de>
      
      	PR rtl-optimization/68961
      	* simplify-rtx.c (simplify_subreg): Handle VEC_CONCAT like CONCAT.
      
      From-SVN: r237840
      Richard Biener committed
    • re PR middle-end/71002 (-fstrict-aliasing breaks Boost's short string optimization implementation) · 4aa83879
      2016-06-29  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/71002
      	* alias.c (component_uses_parent_alias_set_from): Handle
      	type punning through union accesses by using the union alias set.
      	* gimple.c (gimple_get_alias_set): Remove union type punning case.
      
      	c-family/
      	* c-common.c (c_common_get_alias_set): Remove union type punning case.
      	
      	fortran/
      	* f95-lang.c (LANG_HOOKS_GET_ALIAS_SET): Remove (un-)define.
      	(gfc_get_alias_set): Remove.
      
      	* g++.dg/torture/pr71002.C: Adjust testcase.
      
      From-SVN: r237839
      Richard Biener committed
    • match.pd ((T)(T2)x -> (T)x): Remove restriction on final precision not matching mode precision. · 36088299
      2016-07-29  Richard Biener  <rguenther@suse.de>
      
      	* match.pd ((T)(T2)x -> (T)x): Remove restriction on final
      	precision not matching mode precision.
      
      From-SVN: r237838
      Richard Biener committed
    • pa.md (call_symref_64bit_post_reload): Don't call pa_output_arg_descriptor. · c0587ee5
      	* config/pa/pa.md (call_symref_64bit_post_reload): Don't call
      	pa_output_arg_descriptor.
      	(call_val_symref_64bit_post_reload): Likewise.
      	(call_val_powf_64bit_post_reload): Likewise.
      	(sibcall_internal_symref_64bit): Likewise.
      	(sibcall_value_internal_symref_64bit): Likewise.
      
      From-SVN: r237837
      John David Anglin committed
    • Daily bump. · 12e03598
      From-SVN: r237836
      GCC Administrator committed
  3. 28 Jun, 2016 13 commits
    • re PR c/71685 (Segmentation fault in gcc when compiling the attached file.) · 152ef731
      	PR c/71685
      	* c-typeck.c (c_build_qualified_type): Don't clear
      	C_TYPE_INCOMPLETE_VARS for the main variant.
      
      	* gcc.dg/pr71685.c: New test.
      
      From-SVN: r237830
      Jakub Jelinek committed
    • PR c/71552 - Confusing error for incorrect struct initialization · 4378d117
      gcc/c/ChangeLog:
      
      	PR c/71552
      	* c-typeck.c (output_init_element): Diagnose incompatible types
      	before non-constant initializers.
      
      gcc/testsuite/ChangeLog:
      
      	PR c/71552
      	* gcc.dg/init-bad-9.c: New test.
      
      From-SVN: r237829
      Martin Sebor committed
    • abs128-1.c: Require VSX. · d41dc215
      2016-06-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	* gcc.target/powerpc/abs128-1.c: Require VSX.
      	* gcc.target/powerpc/copysign128-1.c: Likewise.
      	* gcc.target/powerpc/inf128-1.c: Likewise.
      	* gcc.target/powerpc/nan128-1.c: Likewise.
      
      From-SVN: r237828
      Bill Schmidt committed
    • re PR middle-end/71626 (ICE at -O1 and above on x86_64-linux-gnu (in… · 6a20b538
      re PR middle-end/71626 (ICE at -O1 and above on x86_64-linux-gnu (in output_constant_pool_2, at varasm.c:3837))
      
      	PR middle-end/71626
      	* config/i386/i386.c (ix86_expand_vector_move): For SUBREG of
      	a constant, force its SUBREG_REG into memory or register instead
      	of whole op1.
      
      	* gcc.c-torture/execute/pr71626-1.c: New test.
      	* gcc.c-torture/execute/pr71626-2.c: New test.
      
      From-SVN: r237826
      Jakub Jelinek committed
    • re PR target/58655 ([avr] -mfract-convert-truncate not documented) · 0f0f4f91
      	PR target/58655
      	* config/avr/avr.opt (-mfract-convert-truncate): Update description.
      	* doc/invoke.texi (AVR Options): Document it.
      
      From-SVN: r237825
      Pitchumani Sivanupandi committed
    • linux.h: Do not include arch/icache.h · ba6be749
      gcc/ChangeLog
      	* config/tilegx/linux.h: Do not include arch/icache.h
      	(CLEAR_INSN_CACHE): Provide inlined definition directly.
      	* config/tilepro/linux.h: Do not include arch/icache.h
      	(CLEAR_INSN_CACHE): Provide inlined definition directly.
      
      libgcc/ChangeLog
      	* config/tilepro/atomic.h: Do not include arch/spr_def.h and
      	asm/unistd.h.
      	(SPR_CMPEXCH_VALUE): Define for tilegx.
      	(__NR_FAST_cmpxchg): Define for tilepro.
      	(__NR_FAST_atomic_update): Define for tilepro.
      	(__NR_FAST_cmpxchg64): Define for tilepro.
      
      From-SVN: r237824
      Walter Lee committed
    • re PR target/71656 (ICE in reload when generating code for -mcpu=power9 -mpower9-dform-vector) · 77d93c47
      	PR target/71656
      	* gcc.target/powerpc/pr71656-2.c: Fix syntax errors.
      
      From-SVN: r237823
      Peter Bergner committed
    • This patch fixes a bug in the bswap pass. · f6922a56
      This patch fixes a bug in the bswap pass.  In big-endian BIT_FIELD_REF uses
      big-endian bit numbering so we need to adjust the bit position.
      The existing version could potentially generate incorrect code however GCC
      doesn't emit a BIT_FIELD_REF to access the low byte in a register, so the
      symbolic number never matches in big-endian.
      
          gcc/
      	* tree-ssa-math-opts.c (find_bswap_or_nop_1): Adjust bitnumbering
      	for big-endian BIT_FIELD_REF.
      
      From-SVN: r237822
      Wilco Dijkstra committed
    • rs6000.md ('type' attribute): Add htmsimple/dfp types. · eda328bf
      	* config/rs6000/rs6000.md ('type' attribute): Add htmsimple/dfp types.
      	('size' attribute): Add '128'.
      	Include power9.md.
      	(*mov<mode>_hardfloat32, *mov<mode>_hardfloat64, *movdi_internal32,
      	*movdi_internal64, *movdf_update1): Set size attribute to '64'.
      	(add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, sqrt<mode>2,
      	copysign<mode>3, neg<mode>2_hw, abs<mode>2_hw, *nabs<mode>2_hw,
      	*fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw, *nfms<mode>4_hw,
      	extend<SFDF:mode><IEEE128:mode>2_hw, trunc<mode>df2_hw,
      	*xscvqp<su>wz_<mode>, *xscvqp<su>dz_<mode>, *xscv<su>dqp_<mode>,
      	*trunc<mode>df2_odd): Set size attribute to '128'.
      	(*cmp<mode>_hw): Change type to veccmp and set size attribute to '128'.
      	* config/rs6000/power6.md (power6-fp): Include dfp type.
      	* config/rs6000/power7.md (power7-fp): Likewise.
      	* config/rs6000/power8.md (power8-fp): Likewise.
      	* config/rs6000/power9.md: New file.
      	* config/rs6000/t-rs6000 (MD_INCLUDES): Add power9.md.
      	* config/rs6000/htm.md (*tabort, *tabort<wd>c, *tabort<wd>ci,
      	*trechkpt, *treclaim, *tsr, *ttest): Change type attribute to
      	htmsimple.
      	* config/rs6000/dfp.md (extendsddd2, truncddsd2, extendddtd2,
      	trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
      	divtd3, *cmpdd_internal1, *cmptd_internal1, floatdidd2, floatditd2,
      	ftruncdd2, fixdddi2, ftrunctd2, fixtddi2, dfp_ddedpd_<mode>,
      	dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>, dfp_dscli_<mode>,
      	dfp_dscri_<mode>): Change type attribute to dfp.
      	* config/rs6000/crypto.md (crypto_vshasigma<CR_char>): Change type
      	attribute to vecsimple.
      	* config/rs6000/rs6000.c (power9_cost): Update costs, cache size
      	and prefetch streams.
      	(rs6000_option_override_internal): Remove temporary code setting
      	tuning to power8.  Don't set rs6000_sched_groups for power9.
      	(last_scheduled_insn): Change to rtx_insn *.
      	(divide_cnt, vec_load_pendulum): New variables.
      	(rs6000_adjust_cost): Add Power9 to test for store->load separation.
      	(rs6000_issue_rate): Set issue rate for Power9.
      	(is_power9_pairable_vec_type): New.
      	(power9_sched_reorder2): New.
      	(rs6000_sched_reorder2): Call new function for Power9 specific
      	reordering.
      	(insn_must_be_first_in_group): Remove Power9.
      	(insn_must_be_last_in_group): Likewise.
      	(force_new_group): Likewise.
      	(rs6000_sched_init): Fix initialization of last_scheduled_insn.
      	Initialize divide_cnt/vec_load_pendulum.
      	(_rs6000_sched_context, rs6000_init_sched_context,
      	rs6000_set_sched_context): Handle context save/restore of new
      	variables.
      
      From-SVN: r237820
      Pat Haugen committed
    • tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Properly handle… · 7d4cdbd4
      tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Properly handle DECL_BIT_FIELD_REPRESENTATIVE occuring as COMPONENT_REF operand.
      
      2016-06-28  Richard Biener  <rguenther@suse.de>
      
      	* tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
      	Properly handle DECL_BIT_FIELD_REPRESENTATIVE occuring as
      	COMPONENT_REF operand.
      	(nonoverlapping_component_refs_p): Likewise.
      	* stor-layout.c (start_bitfield_representative): Mark
      	DECL_BIT_FIELD_REPRESENTATIVE as DECL_NONADDRESSABLE_P.
      
      From-SVN: r237818
      Richard Biener committed
    • Makefile.in: Don't cat ../stage_current if it does not exist. · e9ac1f86
      	* Makefile.in: Don't cat ../stage_current if it does not exist.
      c/
      	* Make-lang.in: Don't cat ../stage_current if it does not exist.
      cp/
      	* Make-lang.in: Don't cat ../stage_current if it does not exist.
      lto/
      	* Make-lang.in: Don't cat ../stage_current if it does not exist.
      
      From-SVN: r237817
      Jakub Jelinek committed
    • extend.texi (__builtin_add_overflow_p): Clarify behavior when last argument is a bit-field. · 35ca24a2
      	* doc/extend.texi (__builtin_add_overflow_p): Clarify behavior when
      	last argument is a bit-field.
      
      From-SVN: r237816
      Jakub Jelinek committed
    • re PR rtl-optimization/71673 (FAIL:… · 95ef39f4
      re PR rtl-optimization/71673 (FAIL: c-c++-common/torture/builtin-arith-overflow-p-19.c -O2  (internal compiler error))
      
      	PR rtl-optimization/71673
      	* internal-fn.c (expand_arith_overflow_result_store): Use
      	OPTAB_LIB_WIDEN instead of OPTAB_DIRECT as last argument to
      	expand_simple_binop.
      
      From-SVN: r237815
      Jakub Jelinek committed