Andrew MacLeod [Thu, 25 Jun 2015 16:23:52 +0000 (16:23 +0000)]
cgraph.h (cgraph_rtl_info): Move to rtl.h
2015-06-25 Andrew MacLeod <amacleod@redhat.com>
* cgraph.h (cgraph_rtl_info): Move to rtl.h
(cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of
and instance.
* rtl.h (struct cgraph_rtl_info): Define when HARD_REG_SET available.
* cgraph.c (cgraph_node::rtl_info): Allocate cgraph_rtl_info if one
doesn't exist.
* calls.c: Include hard-reg-set.h before rtl.h.
* ira.c: Likewise.
Richard Biener [Thu, 25 Jun 2015 12:36:12 +0000 (12:36 +0000)]
tree-vect-stmts.c (vectorizable_conversion): Do not set STMT_VINFO_VEC_STMT for SLP.
2015-06-25 Richard Biener <rguenther@suse.de>
* tree-vect-stmts.c (vectorizable_conversion): Do not set
STMT_VINFO_VEC_STMT for SLP.
(vectorizable_store): Likewise.
(vectorizable_load): Likewise.
(vect_transform_stmt): Catch SLP vectorization clobbering
STMT_VINFO_VEC_STMT.
* tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug
dumping.
(vect_create_mask_and_perm): Do not set STMT_VINFO_VEC_STMT and
cleanup resulting dead code and parameters.
(vect_transform_slp_perm_load): Adjust.
The problem is that diagnostic_action_after_output tries to delete the active pretty-printer which tries to delete its output_buffer...
The problem is that diagnostic_action_after_output tries to delete the active
pretty-printer which tries to delete its output_buffer, which is normally
dynamically allocated via placement-new, but the output_buffer used by the
error_buffer of Fortran is statically allocated. Being statically allocated
simplifies a lot pushing/poping several instances of error_buffer.
The solution is to reset the active output_buffer back to the default one
before calling diagnostic_action_after_output. This is a bit ugly, because this
function does use the output_buffer, however, at the point that Fortran calls
it, both are in an equivalent state, thus there is no visible difference.
gcc/testsuite/ChangeLog:
2015-06-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR fortran/66528
* gfortran.dg/maxerrors.f90: New test.
gcc/fortran/ChangeLog:
2015-06-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR fortran/66528
* error.c (gfc_warning_check): Restore the default output_buffer
before calling diagnostic_action_after_output.
(gfc_error_check): Likewise.
(gfc_diagnostics_init): Add comment.
* config/aarch64/aarch64.md (mov<mode>/GPF, movtf): Use
aarch64_err_no_fpadvsimd.
* config/aarch64/aarch64.c (aarch64_err_no_fpadvsimd): New.
(aarch64_layout_arg, aarch64_init_cumulative_args): Use
aarch64_err_no_fpadvsimd if !TARGET_FLOAT and we need FP regs.
(aarch64_expand_builtin_va_start, aarch64_setup_incoming_varargs):
Turn error into assert, test TARGET_FLOAT.
(aarch64_gimplify_va_arg_expr): Use aarch64_err_no_fpadvsimd, test
TARGET_FLOAT.
gcc/testsuite/ChangeLog:
* gcc.target/aarch64/mgeneral-regs_1.c: New file.
* gcc.target/aarch64/mgeneral-regs_2.c: New file.
* gcc.target/aarch64/nofp_1.c: New file.
2015-06-24 Edward Smith-Rowland <3dw4rd@verizon.net>
Implement N3928 - Extending static_assert
* parser.c (cp_parser_static_assert): Support static_assert with
no message string. Supply an empty string in this case.
* semantics.c (finish_static_assert): Don't try to print a message if
the message strnig is empty.
testsuite/
2015-06-24 Edward Smith-Rowland <3dw4rd@verizon.net>
Adam Butcher [Wed, 24 Jun 2015 15:11:06 +0000 (16:11 +0100)]
re PR c++/65750 (misinterpret in a virtual member function with a C++11 style function signature)
/cp
2015-06-24 Adam Butcher <adam@jessamine.co.uk>
PR c++/65750
* parser.c (cp_parser_simple_type_specifier): Don't synthesize
implicit template parm if 'auto' is a placeholder for trailing
return type.
/testsuite
2015-06-24 Adam Butcher <adam@jessamine.co.uk>
* gcc.target/arm/fixed_float_conversion.c: Skip for inappropriate
multilibs.
* gcc.target/arm/memset-inline-10.c: Likewise.
* gcc.target/arm/pr58784.c: Likewise.
* gcc.target/arm/pr59985.C: Likewise.
* gcc.target/arm/vfp-1.c: Likewise and test only for the non fma cases.
re PR target/63408 (GCC emits incorrect fixed->fp conversion instruction on Cortex-M4 target)
Fix PR target/63408
The attached patch fixes PR target/63408 and adds a regression test
for the same. The problem is essentially that
vfp3_const_double_for_fract_bits() needs to be aware that negative
values cannot be used in this context.
Tested with a bootstrap and regression test run on armhf. Applied.
Andreas Krebbel [Wed, 24 Jun 2015 06:44:59 +0000 (06:44 +0000)]
S/390: Make builtin creation conditional.
gcc/ChangeLog:
2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* config/s390/s390-builtin-types.def: Add flag to indicate the
options under which the function type is needed.
* config/s390/s390-builtins.def: Add flag to indicate the options
under which the builtin is enabled.
* config/s390/s390-builtins.h: Add flags parameter to macro
definitions.
(bflags_for_builtin): New function.
(flags_for_builtin): Renamed to ...
(opflags_for_builtin): ... this.
* config/s390/s390-c.c (s390_resolve_overloaded_builtin): Rename
flags_for_builtin to bflags_for_builtin and
flags_overloaded_builtin_var to opflags_overloaded_builtin_var.
* config/s390/s390.c: Add initialization of bflags_builtin and
opflags_builtin arrays.
Remove code for flags_builtin.
(s390_init_builtins): Only create builtin function types if one of
their flags is active.
Only create builtins if all of their flags are active.
(s390_expand_builtin): Rename flags_for_builtin to
opflags_for_builtin.
Andreas Krebbel [Wed, 24 Jun 2015 06:36:46 +0000 (06:36 +0000)]
S/390 Vector ABI GNU Attribute.
gcc/
* config/s390/s390.c (s390_vector_abi): New variable definition.
(s390_check_type_for_vector_abi): New function.
(TARGET_ASM_FILE_END): New macro definition.
(s390_asm_file_end): New function.
(s390_function_arg): Call s390_check_type_for_vector_abi.
(s390_gimplify_va_arg): Likewise.
* configure: Regenerate.
* configure.ac: Check for .gnu_attribute Binutils feature.
gcc/testsuite/
* gcc.target/s390/vector/vec-abi-1.c: Add gnu attribute check.
* gcc.target/s390/vector/vec-abi-attr-1.c: New test.
* gcc.target/s390/vector/vec-abi-attr-2.c: New test.
* gcc.target/s390/vector/vec-abi-attr-3.c: New test.
* gcc.target/s390/vector/vec-abi-attr-4.c: New test.
* gcc.target/s390/vector/vec-abi-attr-5.c: New test.
* gcc.target/s390/vector/vec-abi-attr-6.c: New test.
re PR fortran/64674 ([OOP] ICE in ASSOCIATE with class array)
gcc/fortran/ChangeLog:
2015-06-23 Andre Vehreschild <vehre@gmx.de>
PR fortran/64674
* parse.c (parse_associate): Figure the rank and as of a
class array in an associate early.
* primary.c (gfc_match_varspec): Prevent setting the
dimension attribute on the sym for classes.
* resolve.c (resolve_variable): Correct the component
ref's type for associated variables. Add a full array ref
when class array's are associated.
(resolve_assoc_var): Correct the type of the symbol,
when in the associate the expression's rank becomes scalar.
* trans-expr.c (gfc_conv_variable): Indirect ref needed for
allocatable associated objects.
gcc/testsuite/ChangeLog:
2015-06-23 Andre Vehreschild <vehre@gmx.de>
PR fortran/64674
* gfortran.dg/associate_18.f08: New test.
Thomas Schwinge [Tue, 23 Jun 2015 08:17:23 +0000 (10:17 +0200)]
[nvptx] gcc/testsuite/gcc.target/nvptx/
We don't claim to support "K&R C" for nvptx, but needed this corresponding
functionality ("incomplete prototypes") to support the Fortran
libgomp/openacc_lib.h file.
gcc/testsuite/
* gcc.target/nvptx/nvptx.exp: New file.
* gcc.target/nvptx/proto-1.c: Likewise.
* rtlanal.c (commutative_operand_precedence): Correct comments.
* simplify-rtx.c (simplify_plus_minus_op_data_cmp): Delete forward
declaration. Return an int. Distinguish REG,REG return from
others.
(struct simplify_plus_minus_op_data): Make local to function.
(simplify_plus_minus): Don't set canonicalized if merely sorting
registers. Avoid packing ops if nothing changes. White space fixes.
gcc.c (default_compilers): Pass "-o %g.s" to cc1 for headers even if -fdump-ada-spec is passed but not if...
* gcc.c (default_compilers): Pass "-o %g.s" to cc1 for headers even if
-fdump-ada-spec is passed but not if -fsyntax-only is.
cp/
* lang-specs.h: Pass "-o %g.s" to cc1plus for headers even if
-fdump-ada-spec is passed.
Jonathan Wakely [Mon, 22 Jun 2015 15:09:27 +0000 (16:09 +0100)]
list (__gnu_debug::list): Use allocator-aware _Safe_container base.
* include/debug/list (__gnu_debug::list): Use allocator-aware
_Safe_container base.
* include/debug/string (__gnu_debug::basic_string): Use
allocator-aware _Safe_container base for cxx11 ABI.
Marek Polacek [Mon, 22 Jun 2015 14:46:14 +0000 (14:46 +0000)]
match.pd ((x ^ y) ^ (x | y) -> x & y, (x & y) + (x ^ y) -> x | y, (x & y) | (x ^ y) -> x | y, (x & y) ^ (x ^ y) -> x | y, (x & y) + (x | y) -> x + y, (x | y) - (x ^ y) -> x & y, (x | y) - (x & y) -> x ^ y): New patterns.
* match.pd ((x ^ y) ^ (x | y) -> x & y,
(x & y) + (x ^ y) -> x | y, (x & y) | (x ^ y) -> x | y,
(x & y) ^ (x ^ y) -> x | y, (x & y) + (x | y) -> x + y,
(x | y) - (x ^ y) -> x & y, (x | y) - (x & y) -> x ^ y): New patterns.
* gcc.dg/fold-ior-1.c: New test.
* gcc.dg/fold-minus-2.c: New test.
* gcc.dg/fold-minus-3.c: New test.
* gcc.dg/fold-plus-1.c: New test.
* gcc.dg/fold-plus-2.c: New test.
* gcc.dg/fold-xor-4.c: New test.
* gcc.dg/fold-xor-5.c: New test.
Christian Bruel [Mon, 22 Jun 2015 07:32:15 +0000 (09:32 +0200)]
Add -mflip-thumb for testing.
PR target/52144n
* config/arm/arm.c (add_attribute, arm_insert_attributes): New functions
(TARGET_INSERT_ATTRIBUTES): Define.
(thumb_flipper): New var.
* config/arm/arm.opt (-mflip-thumb): New switch.
PR target/52144
* gcc.target/arm/flip-thumb.c: New test.
Jan Hubicka [Mon, 22 Jun 2015 07:12:22 +0000 (09:12 +0200)]
re PR ipa/65908 (ICE: in expand_thunk, at cgraphunit.c:1700)
PR ipa/65908
* ipa-icf.c (sem_item::target_supports_symbol_aliases): Remove
construction of arg_types.
(sem_function::sem_function): Likewise.
(sem_function::~sem_function): Remove destruction of arg_types.
(sem_function::compatible_parm_types_p): New function.
(sem_function::equals_wpa): Reorg matching of return values
and parameter types.
(sem_function::equals_private): Reorg mathcing of argument types.
(sem_function::parse_tree_args): Remove.
* ipa-icf.h (init_wpa): Do not call it.
(parse_tree_args): Remove.
(compatible_parm_types_p): Declare.
(result_type): Remove.
(arg_types): Remove.
* testsuite/g++.dg/ipa/pr65908.C: New testcase.
Co-Authored-By: Martin Liska <mliska@suse.cz>
From-SVN: r224720
Jan Hubicka [Mon, 22 Jun 2015 07:02:50 +0000 (09:02 +0200)]
re PR rtl-optimization/66351 (r223883 miscompiles stage2 compiler on ia64)
PR ipa/66351
* ipa-polymorphic-call.c
(ipa_polymorphic_call_context::get_dynamic_type): Fix thinko when
initializing alias oracle; fix formating; set base_alias_set if it
is known.