1. 02 Mar, 2016 2 commits
  2. 01 Mar, 2016 33 commits
    • re PR tree-optimization/69196 (code size regression with jump threading at -O2) · eab2541b
      	PR tree-optimization/69196
      	* tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
      	Appropriately clamp the number of statements to copy when the
      	thread path does not traverse a loop backedge.
      
      	PR tree-optimization/69196
      	* gcc.dg/tree-ssa/pr69196.c: New test.
      
      From-SVN: r233870
      Jeff Law committed
    • re PR rtl-optimization/70007 (wrong code with -mbmi2) · 0bca04b8
      	PR rtl-optimization/70007
      	* gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
      	references present in REG_EQUAL notes attached to non-SET patterns.
      
      From-SVN: r233867
      Eric Botcazou committed
    • re PR tree-optimization/69196 (code size regression with jump threading at -O2) · 2a9afc86
      	PR tree-optimization/69196
      	* tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
      	Do count some PHIs in the thread path against the insn count.  Decrease
      	final statement count by one as the control statement in the last
      	block will get removed.  Remove special cased code for handling PHIs		in the last block.
      
      	PR tree-optimization/69196
      	* gcc.dg/tree-ssa/vrp46.c: Twiddle threading params to keep it from
      	duplicating code and spoiling the expected output.
      
      From-SVN: r233866
      Jeff Law committed
    • re PR target/70033 (PowerPC power9 tests don't have guard for power9 support) · 0d39977e
      2016-03-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR target/70033
      	* gcc.target/powerpc/p9-lxvx-stxvx-1.c: Make sure compiler
      	supports power9 before doing tests.
      	* gcc.target/powerpc/p9-lxvx-stxvx-2.c: Likewise.
      	* gcc.target/powerpc/p9-lxvx-stxvx-3.c: Likewise.
      	* gcc.target/powerpc/p9-permute.c: Likewise.
      
      From-SVN: r233865
      Michael Meissner committed
    • re PR target/70027 (invalid assembly syntax generated with -fno-plt -masm=intel) · a0c0699d
      	PR target/70027
      	* config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
      	asm dialect alternatives to explicit GOTPCREL calls.
      
      testsuite/ChangeLog:
      
      	PR target/70027
      	* gcc.target/i386/pr70027.c: New test.
      
      From-SVN: r233864
      Uros Bizjak committed
    • Fix date · 0ae3ef47
      From-SVN: r233863
      Eric Botcazou committed
    • re PR ada/70017 (c52103x and c52104x test failure on s390x) · 355a43a1
      	PR ada/70017
      	* ira.c (do_reload): Issue warning for generic stack checking here...
      	* reload1.c (reload): ...instead of here and streamline it.
      
      From-SVN: r233862
      Eric Botcazou committed
    • re PR c/69796 (ICE on invalid code in useless_type_conversion_p, at gimple-expr.c:83) · 686e2237
      	PR c/69796
      	PR c/69974
      	* c-parser.c (c_parser_translation_unit): Don't change TREE_TYPE
      	of incomplete decls to error_mark_node.
      
      	* gcc.dg/pr69796.c: New test.
      	* gcc.dg/pr69974.c: New test.
      
      From-SVN: r233861
      Jakub Jelinek committed
    • * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file. · db48a9e3
      From-SVN: r233858
      Nick Clifton committed
    • re PR middle-end/69987 (internal compiler error: in verify_loop_structure, at cfgloop.c:1639) · 5e3f1c7c
      	PR tree-optimization/69987
      	* gfortran.dg/pr69987.f90: New test.
      
      	PR tree-optimization/69989
      	* gcc.c-torture/compile/pr69989-2.c: New test.
      
      From-SVN: r233857
      Jeff Law committed
    • re PR middle-end/69983 (FAIL: gcc.dg/graphite/scop-sor.c scan-tree-dump-times… · e546907c
      re PR middle-end/69983 (FAIL: gcc.dg/graphite/scop-sor.c scan-tree-dump-times graphite "number of SCoPs:  1" 1)
      
      2016-03-01  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/69983
      	* tree-chrec.c (eq_evolutions_p): Handle conversions, compare
      	types and fall back to operand_equal_p.
      
      From-SVN: r233856
      Richard Biener committed
    • re PR c++/69795 (g++ ICE on invalid code on x86_64-linux-gnu in "reject_gcc_builtin") · 1be56bc5
      	PR c++/69795
      	* c-common.c (reject_gcc_builtin): Check for FUNCTION_DECL rather than
      	any DECL.
      
      	* g++.dg/parse/invalid1.C: New test.
      
      From-SVN: r233855
      Marek Polacek committed
    • S/390: Revert setmem pattern folding · db340c73
      This does not work without:
      https://gcc.gnu.org/ml/gcc-patches/2016-02/msg01575.html
      
      2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	Revert
      	2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/constraints.md ("jm8"): New constraint.
      	* config/s390/predicates.md ("const_int_8bitset_operand"): New predicate.
      	* config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
      	into ...
      	("*setmem_long<setmem_and>"): New pattern.
      	("*setmem_long_31z", "*setmem_long_and_31z"): Merge
      	into ...
      	("*setmem_long_31z<setmem_and>"): New pattern.
      	* config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
      	New substitution rules with the required attributes.
      
      From-SVN: r233854
      Andreas Krebbel committed
    • Revert recent gensupport change. · a7ba15ca
      2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	Revert
      	2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* gensupport.c (process_substs_on_one_elem): Split loop to
      	complete mark_operands_used_in_match_dup on all expressions in the
      	vector first.
      	(adjust_operands_numbers): Inline into process_substs_on_one_elem
      	and remove function.
      
      From-SVN: r233853
      Andreas Krebbel committed
    • re PR middle-end/70022 (ICE: in tree_to_shwi, at tree.c:7328 with out-of-bounds vector index) · 1b19470d
      2016-03-01  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/70022
      	* fold-const.c (fold_indirect_ref_1): Fix range checking for
      	vector BIT_FIELD_REF extract.
      
      	* gcc.dg/pr70022.c: New testcase.
      
      From-SVN: r233852
      Richard Biener committed
    • re PR target/69994 (test case gfortran.dg/reassoc_6.f fails starting with r233669) · 366298bd
      2016-03-01  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/69994
      	* tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
      
      From-SVN: r233851
      Richard Biener committed
    • re PR tree-optimization/69956 (Wrong vector type @ fold-const) · 3ae0661a
      gcc/
      
      	PR tree-optimization/69956
      	* tree-vect-stmts.c (supportable_widening_operation): Support
      	multi-step conversion of boolean vectors.
      	(supportable_narrowing_operation): Likewise.
      
      gcc/testsuite/
      
      	PR tree-optimization/69956
      	* gcc.dg/pr69956.c: New test.
      
      From-SVN: r233850
      Ilya Enkovich committed
    • S/390: Disallow SImode in s390_decompose_address · c64181a8
      After Y is never used anymore with SImode operands we can finally
      disallow SImode (if != Pmode) in s390_decompose_address.  In fact that
      was the whole point of the patch series.
      
      gcc/ChangeLog:
      
      2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/s390.c (s390_decompose_address): Don't accept SImode
      	anymore.
      
      From-SVN: r233849
      Andreas Krebbel committed
    • S/390: Use define_subst for the setmem patterns. · 708c0910
      While trying to get rid of the Y constraint in the setmem patterns I
      noticed that for these patterns it isn't even a problem since these
      always only use the constraint with a Pmode match_operand.  But while
      being at it I've tried to fold some of the patterns a bit.
      
      gcc/ChangeLog:
      
      2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/constraints.md ("jm8"): New constraint.
      	* config/s390/predicates.md ("const_int_8bitset_operand"): New predicate.
      	* config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
      	into ...
      	("*setmem_long<setmem_and>"): New pattern.
      	("*setmem_long_31z", "*setmem_long_and_31z"): Merge
      	into ...
      	("*setmem_long_31z<setmem_and>"): New pattern.
      	* config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
      	New substitution rules with the required attributes.
      
      From-SVN: r233848
      Andreas Krebbel committed
    • S/390: Get rid of Y constraint in vector.md. · 674a959c
      This finally removes the Y constraint from the vector patterns while
      folding some of them using a code iterator.
      
      gcc/ChangeLog:
      
      2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/subst.md (DSI_VI): New mode iterator.
      	("addr_style_op_subst"): Use DSI_VI instead of DSI.
      	* config/s390/vector.md ("vec_set<mode>"): Move expander before
      	the insn definition.
      	("*vec_set<mode>"): Change predicate and add alternative to
      	support only either register or const_int operands as element
      	selector.
      	("*vec_set<mode>_plus"): New pattern to support reg + const_int
      	operands.
      	("vec_extract<mode>"): New expander.
      	("*vec_extract<mode>"): New insn definition supporting reg and
      	const_int element selectors.
      	("*vec_extract<mode>_plus"): New insn definition supporting
      	reg+const_int element selectors.
      	("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
      	following expander+insn definition.
      	("<vec_shifts_name><mode>3"): New expander.
      	("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
      
      From-SVN: r233847
      Andreas Krebbel committed
    • S/390: Get rid of Y constraint in tabort. · eae48192
      This removes the Y constraint from the tabort pattern definition.  In
      this case it is easier without using substitutions.
      
      gcc/ChangeLog:
      
      2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/s390.md ("*tabort_1"): Change predicate to
      	nonmemory_operand.  Add a second alternative to cover
      	register as well as const int operands.
      	("*tabort_1_plus"): New pattern definition.
      
      From-SVN: r233846
      Andreas Krebbel committed
    • S/390: Get rid of Y constraint in arithmetic right shift · a9fcf821
       patterns.
      
      The arithmetic shift patterns set also the condition code.  This adds
      more substitution potential.  Depending on whether the actual result
      or the CC output will be used 3 different variants of each of these
      patterns are needed.  This multiplied with the PLUS and the AND
      operands from the earlier substitutions enables a lot of folding.
      
      2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/s390.md ("*ashrdi3_cc_31")
      	("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
      	("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
      	Merge insn definitions into ...
      	("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
      	New pattern definition.
      	("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
      	("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
      	("*ashr<mode>3_and"): Merge insn definitions into ...
      	("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
      	New pattern definition.
      	* config/s390/subst.md ("addr_style_op_cc_subst")
      	("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
      	substitutions patterns plus attributes.
      	Add ashiftrt to SUBST iterator.
      
      From-SVN: r233845
      Andreas Krebbel committed
    • S/390: Get rid of Y constraint in left and logical right · adf22b3f
       shift patterns.
      
      With this patch the substitution patterns added earlier are used for
      the logical right shift and all the left shift patterns.
      
      2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/s390.md ("<shift><mode>3"): Change predicate of
      	op2 to nonmemory_operand.
      	("*<shift>di3_31", "*<shift>di3_31_and"):
      	Merge into single pattern definition ...
      	("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
      	("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
      	pattern definition ...
      	("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
      	* config/s390/subst.md: Add ashift and lshiftrt to SUBST
      	iterator.
      
      From-SVN: r233844
      Andreas Krebbel committed
    • S/390: Get rid of Y constraint in rotate patterns. · 191eb16d
      This patch introduces substitution patterns to add PLUS const_int, and
      AND operands to patterns and uses this to rewrite the existing rotate
      pattern.
      
      gcc/ChangeLog:
      
      2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/predicates.md (const_int_6bitset_operand): New
              predicates.
      	* config/s390/s390.md: Include subst.md.
      	("rotl<mode>3"): New expander.
      	("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
      	...
      	("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
      	* config/s390/subst.md: New file.
      
      From-SVN: r233843
      Andreas Krebbel committed
    • S/390: Use enabled attribute overrides to disable · 62d3f261
       alternatives.
      
      So far whenever we wanted to disable an alternative we have used mode
      attributes emitting constraints matching an earlier alternative
      assuming that due to this the later alternative will never be chosen.
      
      With this patch the `enabled' attribute, which so far is only set from
      `cpu_facility', is overridden to 0 to disable certain alternatives.
      This comes handy when defining the substitutions later and while
      adding it anyway I've used it for the existing cases as well.
      
      gcc/ChangeLog:
      
      2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/s390.md ("op_type", "atype", "length" attributes):
      	Remove RRR type.  It doesn't really exist.
      	("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
      	attributes.
      	("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
      	("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
      	("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
      	("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
      	("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
      	("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
      	`enabled' attribute.
      
      From-SVN: r233842
      Andreas Krebbel committed
    • gensupport: Fix define_subst operand renumbering. · 772040f7
      When processing substitutions the operands are renumbered.  To find a
      free operand number the array used_operands_numbers is used.
      Currently this array is used to assign new numbers before all the
      RTXes in the vector have been processed.  I did run into problems with
      this for insns where a match_dup occurred in a later (use ...) operand
      referring to an earlier operand (e.g. s390.md "setmem_long").
      
      The patch splits the loop doing the processing into two in order to
      have all the operand numbers collected already when assigning new
      numbers.
      
      gcc/ChangeLog:
      
      2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* gensupport.c (process_substs_on_one_elem): Split loop to
      	complete mark_operands_used_in_match_dup on all expressions in the
      	vector first.
      	(adjust_operands_numbers): Inline into process_substs_on_one_elem
      	and remove function.
      
      From-SVN: r233841
      Andreas Krebbel committed
    • re PR target/70011 (test case gcc.dg/vect/costmodel/ppc/costmodel-fast-math-vect-pr29925.c fails) · 0f09ab88
      2016-02-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
      
      	PR target/70011
      	* gcc.dg/vect/costmodel/ppc/costmodel-fast-math-vect-pr299925.c:
      	XFAIL when hardware supports efficient unaligned storage access.
      
      From-SVN: r233840
      Bill Schmidt committed
    • Fix PR c++/69961 (invalid ctor call with dependent args) · 76d881bf
      gcc/cp/ChangeLog:
      
      	PR c++/68948
      	PR c++/69961
      	* pt.c (tsubst_baselink): Reinstate the check for an invalid
      	constructor call.
      
      gcc/testsuite/ChangeLog:
      
      	PR c++/69961
      	* g++.dg/template/pr69961a.C: New test.
      	* g++.dg/template/pr69961b.C: New test.
      
      From-SVN: r233838
      Patrick Palka committed
    • PR preprocessor/69985: fix ICE with long lines in -Wformat · 7168133a
      gcc/testsuite/ChangeLog:
      	PR preprocessor/69985
      	* gcc.dg/cpp/pr69985.c: New test case.
      
      libcpp/ChangeLog:
      	PR preprocessor/69985
      	(linemap_position_for_loc_and_offset): Rename param from "offset"
      	to "column_offset".  Right-shift the column_offset by m_range_bits
      	of the pertinent ordinary map whenever offsetting a
      	source_location.  For clarity, offset the column by the column
      	offset, rather than the other way around.
      
      From-SVN: r233836
      David Malcolm committed
    • re PR target/69706 (internal compiler error: in extract_constrain_insn, at recog.c:2246) · f3c7a945
      	PR target/69706
      	* config/sparc/sparc.c (NWORDS_UP): Rename to...
      	(CEIL_NWORDS): ...this.  Use CEIL macro.
      	(compute_fp_layout): Adjust to above renaming.
      	(function_arg_union_value): Likewise.
      	(sparc_arg_partial_bytes): Likewise.
      	(sparc_function_arg_advance): Likewise.
      
      From-SVN: r233833
      Eric Botcazou committed
    • Daily bump. · 9cb37fca
      From-SVN: r233832
      GCC Administrator committed
    • re PR tree-optimization/70005 (wrong code at -O2 and -O3 on x86_64-linux-gnu) · e66f219b
      	PR tree-optimization/70005
      	* tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
      	where an object with a boolean range is compared against a value
      	outside [0..1].
      
      	PR tree-optimization/70005
      	* gcc.c-torture/execute/pr70005.c New test.
      
      From-SVN: r233829
      Jeff Law committed
  3. 29 Feb, 2016 5 commits