- 01 Mar, 2016 26 commits
-
-
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 -
From-SVN: r233859
Eric Botcazou committed -
From-SVN: r233858
Nick Clifton committed -
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 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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
From-SVN: r233832
GCC Administrator committed -
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
-
- 29 Feb, 2016 14 commits
-
-
re PR tree-optimization/69999 (ICE in verify_loop_structure, at cfgloop.c:1639 (error: loop with header 3 not in loop tree) at -O3 or -Ofast) PR tree-optimization/69999 * gimple-ssa-split-paths.c (split_paths): When duplicating a block with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule loop cleanups. PR tree-optimization/69999 * gcc.c-torture/compile/pr69999.c: New test. From-SVN: r233824
Jeff Law committed -
From-SVN: r233820
Joseph Myers committed -
* system.h: Poison ENABLE_CHECKING macro. From-SVN: r233817
Martin Liska committed -
2016-02-29 Richard Biener <rguenther@suse.de> PR tree-optimization/69994 * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function. (get_unary_op): Look through nop conversions. (ops_equal_values_p): New function, look for equality diregarding nop conversions. (eliminate_plus_minus_pair): Use ops_equal_values_p (repropagate_negates): Do not use get_unary_op here. From-SVN: r233816
Richard Biener committed -
* gcc-interface/utils.c (set_reverse_storage_order_on_pad_type): Replace ENABLE_CHECKING macro with flag_checking. From-SVN: r233815
Martin Liska committed -
* hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS is presented in dump flags. * hsa-regalloc.c (linear_scan_regalloc): Likewise. (hsa_regalloc): Likewise. From-SVN: r233814
Martin Liska committed -
gcc/testsuite/ 2016-02-29 Yuri Rumyantsev <ysrumyan@gmail.com> PR tree-optimization/69652 * gcc.dg/torture/pr69652.c: Delete test. * gcc.dg/vect/pr69652.c: New test. From-SVN: r233811
Yuri Rumyantsev committed -
PR c++/69995 * constexpr.c (cxx_eval_store_expression): Unshare init. From-SVN: r233810
Jason Merrill committed -
2016-02-19 Richard Biener <rguenther@suse.de> PR tree-optimization/69980 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update permutation of those we need to keep. * gfortran.dg/vect/pr69980.f90: New testcase. From-SVN: r233809
Richard Biener committed -
PR target/69706 * config/sparc/sparc.c (ROUND_ADVANCE): Rename to... (NWORDS_UP): ...this (init_cumulative_args): Minor tweaks. (sparc_promote_function_mode): Likewise. (scan_record_type): Delete. (traverse_record_type): New function template. (classify_data_t): New structure type. (classify_registers): New inline function. (function_arg_slotno): In 64-bit mode, bail out early if FP slots are exhausted. Instantiate traverse_record_type on classify_registers and deal with the case of a structure passed in slot #15 with no FP field in the first word. (assign_data_t): New structure type. (compute_int_layout): New static function. (compute_fp_layout): Likewise. (count_registers): New inline function. (assign_int_registers): New static function. (assign_fp_registers): Likewise. (assign_registers): New inline function. (function_arg_record_value_1): Delete. (function_arg_record_value_2): Likewise. (function_arg_record_value_3): Likewise. (function_arg_record_value): Adjust to above changes. Instantiate traverse_record_type on count_registers to first count the number of registers to be used and then on assign_registers to assign them. (function_arg_union_value): Adjust to above renaming. (sparc_function_arg_1); Minor tweaks. Remove commented out code. (sparc_arg_partial_bytes): Adjust to above renaming. Deal with the case of a structure passed in slot #15 (sparc_function_arg_advance): Likewise. (function_arg_padding): Minor tweak. From-SVN: r233808
Eric Botcazou committed -
decl.c (gnat_to_gnu_entity): Retrofit handling of unconstrained array types as designated types into common... * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Retrofit handling of unconstrained array types as designated types into common processing. Also handle array types as incomplete designated types. From-SVN: r233807
Eric Botcazou committed -
* gcc-interface/decl.c (gnat_to_gnu_entity) <Concurrent types>: In ASIS mode, fully lay out the minimal record type. From-SVN: r233806
Eric Botcazou committed -
* gcc-interface/trans.c (finalize_nrv_r): Remove obsolete code. (build_return_expr): Likewise. (Call_to_gnu): If this is a function call and there is no target, create a temporary for the return value for all aggregate types, but never create it for a return statement. Push a binding level around the call in more cases. Remove obsolete code. From-SVN: r233805
Eric Botcazou committed -
* gcc-interface/ada-tree.h (DECL_RETURN_VALUE_P): New macro. * gcc-interface/gigi.h (gigi): Remove useless attribute. (gnat_gimplify_expr): Likewise. (gnat_to_gnu_external): Declare. * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Factor out code dealing with the expression of external constants into... Invoke gnat_to_gnu_external instead. <E_Variable>: Invoke gnat_to_gnu_external to translate renamed objects when not for a definition. Deal with COMPOUND_EXPR and variables with DECL_RETURN_VALUE_P set for renamings and with the case of a dangling 'reference to a function call in a renaming. Remove obsolete test and adjust associated comment. * gcc-interface/trans.c (Call_to_gnu): Set DECL_RETURN_VALUE_P on the temporaries created to hold the return value, if any. (gnat_to_gnu_external): ...this. New function. * gcc-interface/utils.c (create_var_decl): Detect a constant created to hold 'reference to function call. * gcc-interface/utils2.c (build_unary_op) <ADDR_EXPR>: Add folding for COMPOUND_EXPR in the DECL_RETURN_VALUE_P case. From-SVN: r233804
Eric Botcazou committed
-