Kugan Vivekanandarajah [Wed, 20 May 2015 03:05:10 +0000 (03:05 +0000)]
aarch-common-protos.h (struct mem_cost_table): Added new fields loadv and storev.
gcc/ChangeLog:
2015-05-20 Kugan Vivekanandarajah <kuganv@linaro.org>
Jim Wilson <jim.wilson@linaro.org>
* config/arm/aarch-common-protos.h (struct mem_cost_table): Added
new fields loadv and storev.
* config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
Initialize loadv and storev.
* config/arm/aarch-cost-tables.h (generic_extra_costs): Likewise.
(cortexa53_extra_costs): Likewise.
(cortexa57_extra_costs): Likewise.
(xgene1_extra_costs): Likewise.
* config/aarch64/aarch64.c (aarch64_rtx_costs): Update vector
rtx_costs.
2015-05-20 Kugan Vivekanandarajah <kuganv@linaro.org>
* config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
storev.
(cortexa8_extra_costs): Likewise.
(cortexa5_extra_costs): Likewise.
(cortexa7_extra_costs): Likewise.
(cortexa12_extra_costs): Likewise.
(cortexa15_extra_costs): Likewise.
(v7m_extra_costs): Likewise.
Co-Authored-By: Jim Wilson <jim.wilson@linaro.org>
From-SVN: r223432
Jeff Law [Wed, 20 May 2015 02:21:29 +0000 (20:21 -0600)]
tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread instead of open-coded version.
* tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread
instead of open-coded version. Also delete the jump thread created
within this function.
From-SVN: r223431
Nathan Sidwell [Wed, 20 May 2015 01:54:09 +0000 (01:54 +0000)]
re PR c++/65954 (gcc segfaults on the following input with a syntax error)
cp/
PR c++/65954
* typeck.c (finish_class_member_access_expr): Diagnose failed
lookup of enum class member.
testsuite/
* g++.dg/cpp0x/pr65954.C: New.
From-SVN: r223430
Alan Modra [Wed, 20 May 2015 01:30:48 +0000 (11:00 +0930)]
rs6000.c (rs6000_emit_allocate_stack): Return stack adjusting insn.
* config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Return
stack adjusting insn. Formatting.
(rs6000_emit_prologue): Track stack adjusting insn, and use of
r12. If possible, emit first -fsplit-stack arg pointer insn
before stack adjust. Don't use r12 to save cr if split-stack.
From-SVN: r223427
Alan Modra [Wed, 20 May 2015 01:26:28 +0000 (10:56 +0930)]
rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK): Define.
gcc/
* common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
Define.
(rs6000_supports_split_stack): New function.
* gcc/config/rs6000/rs6000.c (machine_function): Add
split_stack_arg_pointer.
(TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define.
(setup_incoming_varargs): Use crtl->args.internal_arg_pointer
rather than virtual_incoming_args_rtx.
(rs6000_va_start): Likewise.
(split_stack_arg_pointer_used_p): New function.
(rs6000_emit_prologue): Set up arg pointer for -fsplit-stack.
(morestack_ref): New var.
(gen_add3_const, rs6000_expand_split_stack_prologue,
rs6000_internal_arg_pointer, rs6000_live_on_entry,
rs6000_split_stack_space_check): New functions.
(rs6000_elf_file_end): Call file_end_indicate_split_stack.
* gcc/config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define.
(UNSPECV_SPLIT_STACK_RETURN): Define.
(split_stack_prologue, load_split_stack_limit,
load_split_stack_limit_di, load_split_stack_limit_si,
split_stack_return, split_stack_space_check): New expands and insns.
* gcc/config/rs6000/rs6000-protos.h
(rs6000_expand_split_stack_prologue): Declare.
(rs6000_split_stack_space_check): Declare.
libgcc/
* config/rs6000/morestack.S: New.
* config/rs6000/t-stack-rs6000: New.
* config.host (powerpc*-*-linux*): Add t-stack and t-stack-rs6000
to tmake_file.
* generic-morestack.c: Don't build for powerpc 32-bit.
From-SVN: r223426
Alan Modra [Wed, 20 May 2015 01:17:45 +0000 (10:47 +0930)]
rs6000.c (struct rs6000_stack): Correct comments.
* config/rs6000/rs6000.c (struct rs6000_stack): Correct comments.
(rs6000_stack_info): Don't zero offsets when not saving registers.
(debug_stack_info): Adjust to omit printing unused offsets,
as before.
(direct_return): Test vrsave_size rather than vrsave_mask.
(rs6000_emit_prologue): Likewise. Remove redundant altivec tests.
(rs6000_emit_epilogue): Likewise.
From-SVN: r223425
Alan Modra [Wed, 20 May 2015 01:15:59 +0000 (10:45 +0930)]
rs6000.c (rs6000_stack_info): Don't zero offsets when not saving registers.
* config/rs6000/rs6000.c (rs6000_stack_info): Don't zero offsets
when not saving registers.
(debug_stack_info): Adjust to omit printing unused offsets,
as before.
(rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
expression.
From-SVN: r223424
Trevor Saunders [Wed, 20 May 2015 01:03:51 +0000 (01:03 +0000)]
fixup hash table descriptor in winnt.c
gcc/ChangeLog:
2015-05-19 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
PR c++/65835
* config/i386/winnt.c (struct wrapped_symbol_hasher): Change
value_type to const char *.
From-SVN: r223423
GCC Administrator [Wed, 20 May 2015 00:16:17 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r223422
Sandra Loosemore [Wed, 20 May 2015 00:02:13 +0000 (20:02 -0400)]
config.gcc [...]: Allow --enable-targets=all to build a biarch toolchain again.
2015-05-19 Sandra Loosemore <sandra@codesourcery.com>
gcc/
* config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
to build a biarch toolchain again.
From-SVN: r223418
Oleg Endo [Tue, 19 May 2015 22:30:19 +0000 (22:30 +0000)]
pr64366.c: Remove -m4 -ml from dg-options.
gcc/testsuite/
* gcc.target/sh/pr64366.c: Remove -m4 -ml from dg-options.
From-SVN: r223417
Jonathan Wakely [Tue, 19 May 2015 22:24:50 +0000 (23:24 +0100)]
stl_list.h (_M_resize_pos(size_type&)): Declare.
* include/bits/stl_list.h (_M_resize_pos(size_type&)): Declare.
(operator==(const list&, const list&)): If size() is O(1) compare
sizes before comparing each element.
* include/bits/list.tcc (list::_M_resize_pos(size_type&)): Define.
(list::resize): Use _M_resize_pos.
From-SVN: r223416
Jan Hubicka [Tue, 19 May 2015 21:02:06 +0000 (23:02 +0200)]
ipa-devirt.c (type_in_anonymous_namespace_p): Return true or implicit declarations.
* ipa-devirt.c (type_in_anonymous_namespace_p): Return true
or implicit declarations.
(odr_type_p): Check that TYPE_NAME is TYPE_DECL before looking
into it.
(get_odr_type): Check type has linkage before adding bases.
(register_odr_type): Check that type has linkage before adding it.
(type_known_to_have_no_deriavations_p): Rename to ..
(type_known_to_have_no_derivations_p): This one.
* ipa-utils.h (type_known_to_have_no_deriavations_p): Rename to ..
(type_known_to_have_no_derivations_p): This one.
* ipa-polymorphic-call.c
(ipa_polymorphic_call_context::restrict_to_inner_type): Check that
type has linkage.
From-SVN: r223415
Marek Polacek [Tue, 19 May 2015 20:08:21 +0000 (20:08 +0000)]
* c-typeck.c (start_init): Use AGGREGATE_TYPE_P.
From-SVN: r223414
François Dumont [Tue, 19 May 2015 19:57:09 +0000 (19:57 +0000)]
66055.cc: Add constructor invocations.
2015-05-19 François Dumont <fdumont@gcc.gnu.org>
* testsuite/23_containers/unordered_map/cons/66055.cc: Add constructor
invocations.
* testsuite/23_containers/unordered_multimap/cons/66055.cc: Likewise.
* testsuite/23_containers/unordered_multiset/cons/66055.cc: Likewise.
* testsuite/23_containers/unordered_set/cons/66055.cc: Likewise.
From-SVN: r223413
Eric Botcazou [Tue, 19 May 2015 19:02:55 +0000 (19:02 +0000)]
Makefile.in (LIBUNWIND): Move dependency for shared libgcc.
* Makefile.in (LIBUNWIND): Move dependency for shared libgcc.
Remove useless endif/ifneq ($(enable_shared),yes) pair.
From-SVN: r223412
Eric Botcazou [Tue, 19 May 2015 18:06:46 +0000 (18:06 +0000)]
stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
* stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
(layout_type): Use RECORD_OR_UNION_TYPE_P.
From-SVN: r223407
Andreas Krebbel [Tue, 19 May 2015 17:41:21 +0000 (17:41 +0000)]
S/390 Invalid vector binary ops
This is a first try to implement at least some of the requirements
regarding the vector bool type documented for IBM XLC.
With this patch error messages will be issued for invalid uses of
vector bool types in binary operators.
vector bool types are being marked opaque in order to prevent the
front-end from complaining about "vector bool long" vs "vector bool
long long" combinations on 64 bit. The opaque flag basically
suppresses any type checking. However, we still want vector bool to be
accepted only in contexts specified in the documentation (to be
published soon). Implementing the invalid binary op hook does this
for binary operators at least. But this is far from being complete :(
gcc/
* config/s390/s390.c (s390_vector_bool_type_p): New function.
(s390_invalid_binary_op): New function.
(TARGET_INVALID_BINARY_OP): Define macro.
From-SVN: r223404
Andreas Krebbel [Tue, 19 May 2015 17:39:42 +0000 (17:39 +0000)]
S/390 vector types are only 8 byte aligned.
gcc/testsuite/
* lib/target-supports.exp: Vector do not always have natural
alignment on s390*.
From-SVN: r223403
David Sherwood [Tue, 19 May 2015 17:37:45 +0000 (17:37 +0000)]
loop-invariant.c (create_new_invariant): Don't calculate address cost if mode is not a scalar integer.
2015-05-19 David Sherwood <david.sherwood@arm.com>
* loop-invariant.c (create_new_invariant): Don't calculate address cost
if mode is not a scalar integer.
(get_inv_cost): Increase computational cost for unused invariants.
* gcc.dg/loop-invariant.c: New testcase.
From-SVN: r223402
Andreas Krebbel [Tue, 19 May 2015 17:36:19 +0000 (17:36 +0000)]
These testcases require disabling hardware vector support on S/390.
gcc/testsuite/
* gcc.dg/tree-ssa/gen-vect-11b.c: Disable vector
instructions on s390*.
* gcc.dg/tree-ssa/gen-vect-11c.c: Likewise.
From-SVN: r223400
Andreas Krebbel [Tue, 19 May 2015 17:35:08 +0000 (17:35 +0000)]
S/390 Add zvector testcases.
gcc/testsuite/
* gcc.target/s390/zvector/vec-dbl-math-compile-1.c: New test.
* gcc.target/s390/zvector/vec-genbytemask-1.c: New test.
* gcc.target/s390/zvector/vec-genmask-1.c: New test.
* gcc.target/s390/zvector/vec-lcbb-1.c: New test.
* gcc.target/s390/zvector/vec-overloading-1.c: New test.
* gcc.target/s390/zvector/vec-overloading-2.c: New test.
* gcc.target/s390/zvector/vec-overloading-3.c: New test.
* gcc.target/s390/zvector/vec-overloading-4.c: New test.
* gcc.target/s390/zvector/vec-test-mask-1.c: New test.
* gcc.target/s390/zvector/vec-elem-1.c: New test.
From-SVN: r223399
Andreas Krebbel [Tue, 19 May 2015 17:32:07 +0000 (17:32 +0000)]
S/390 zvector builtin support.
With this patch GCC implements an Altivec style set of builtins to
make use of vector instructions in C/C++ code. This is provided for
compatibility with the IBM XL compiler.
gcc/
* config.gcc: Add vecintrin.h to extra_headers. Add s390-c.o to
c_target_objs and cxx_target_objs. Add t-s390 to tmake_file.
* config/s390/s390-builtin-types.def: New file.
* config/s390/s390-builtins.def: New file.
* config/s390/s390-builtins.h: New file.
* config/s390/s390-c.c: New file.
* config/s390/s390-modes.def: Add modes CCVEQANY, CCVH,
CCVHANY, CCVHU, CCVHUANY, CCVFHANY, CCVFHEANY.
* config/s390/s390-protos.h (s390_expand_vec_compare_cc)
(s390_cpu_cpp_builtins, s390_register_target_pragmas): Add
prototypes.
* config/s390/s390.c (s390-builtins.h, s390-builtins.def):
Include.
(flags_builtin, flags_overloaded_builtin_var, s390_builtin_types)
(s390_builtin_fn_types, s390_builtin_decls, code_for_builtin): New
variable definitions.
(s390_const_operand_ok): New function.
(s390_expand_builtin): Rewrite.
(s390_init_builtins): New function.
(s390_handle_vectorbool_attribute): New function.
(s390_attribute_table): Add s390_vector_bool attribute.
(s390_match_ccmode_set): Handle new cc modes CCVH, CCVHU.
(s390_branch_condition_mask): Generate masks for new modes.
(s390_expand_vec_compare_cc): New function.
(s390_mangle_type): Add mangling for vector bool types.
(enum s390_builtin): Remove.
(s390_atomic_assign_expand_fenv): Rename constants for sfpc and
efpc builtins.
* config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Call
s390_cpu_cpp_builtins.
(REGISTER_TARGET_PRAGMAS): New macro.
* config/s390/s390.md: Define more UNSPEC_VEC_* constants.
(insn_cmp mode attribute): Add new CC modes.
(s390_sfpc, s390_efpc): Rename patterns to sfpc and efpc.
(lcbb): New pattern definition.
* config/s390/s390intrin.h: Include vecintrin.h.
* config/s390/t-s390: New file.
* config/s390/vecintrin.h: New file.
* config/s390/vector.md: Include vx-builtins.md.
* config/s390/vx-builtins.md: New file.S/390 zvector builtin support.
From-SVN: r223398
Andreas Krebbel [Tue, 19 May 2015 17:30:25 +0000 (17:30 +0000)]
S/390 Add vector scalar instruction support.
With this patch GCC makes use of the vector instruction which are
available in single element mode. By using these instructions scalar
double operations can use 32 registers.
gcc/
* config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
CCVFHE.
* config/s390/s390.c (s390_match_ccmode_set): Handle new modes.
(s390_select_ccmode): Likewise.
(s390_canonicalize_comparison): Swap operands if necessary.
(s390_expand_vec_compare_scalar): Expand DFmode compare using
single element vector instructions.
(s390_emit_compare): Call s390_expand_vec_compare_scalar.
(s390_branch_condition_mask): Generate CC masks for the new modes.
* config/s390/s390.md (v0, vf, vd): New mode attributes.
(VFCMP, asm_fcmp, insn_cmp): New mode iterator and attributes.
(*vec_cmp<insn_cmp>df_cconly, *fixuns_truncdfdi2_z13)
(*fix_trunc<BFP:mode><GPR:mode>2_bfp, *floatunsdidf2_z13)
(*floatuns<GPR:mode><FP:mode>2, *extendsfdf2_z13)
(*extend<DSF:mode><BFP:mode>2): New insn definition.
(fix_trunc<BFP:mode><GPR:mode>2_bfp, loatuns<GPR:mode><FP:mode>2)
(extend<DSF:mode><BFP:mode>2): Turn into expander.
(floatdi<mode>2, truncdfsf2, add<mode>3, sub<mode>3, mul<mode>3)
(div<mode>3, *neg<mode>2, *abs<mode>2, *negabs<mode>2)
(sqrt<mode>2): Add vector instruction.
gcc/testsuite/
* gcc.target/s390/vector/vec-scalar-cmp-1.c: New test.
From-SVN: r223397
Andreas Krebbel [Tue, 19 May 2015 17:28:42 +0000 (17:28 +0000)]
S/390: Vector base support - testcases
gcc/testsuite/
* gcc.target/s390/s390.exp
(check_effective_target_vector): New check.
* gcc.target/s390/vector/vec-abi-1.c: New test.
* gcc.target/s390/vector/vec-abi-2.c: New test.
* gcc.target/s390/vector/vec-abi-3.c: New test.
* gcc.target/s390/vector/vec-abi-4.c: New test.
* gcc.target/s390/vector/vec-abi-align-1.c: New test.
* gcc.target/s390/vector/vec-abi-single-1.c: New test.
* gcc.target/s390/vector/vec-abi-single-2.c: New test.
* gcc.target/s390/vector/vec-abi-struct-1.c: New test.
* gcc.target/s390/vector/vec-abi-vararg-1.c: New test.
* gcc.target/s390/vector/vec-abi-vararg-2.c: New test.
* gcc.target/s390/vector/vec-clobber-1.c: New test.
* gcc.target/s390/vector/vec-cmp-1.c: New test.
* gcc.target/s390/vector/vec-cmp-2.c: New test.
* gcc.target/s390/vector/vec-dbl-math-compile-1.c: New test.
* gcc.target/s390/vector/vec-genbytemask-1.c: New test.
* gcc.target/s390/vector/vec-genbytemask-2.c: New test.
* gcc.target/s390/vector/vec-genmask-1.c: New test.
* gcc.target/s390/vector/vec-genmask-2.c: New test.
* gcc.target/s390/vector/vec-init-1.c: New test.
* gcc.target/s390/vector/vec-int-math-compile-1.c: New test.
* gcc.target/s390/vector/vec-shift-1.c: New test.
* gcc.target/s390/vector/vec-sub-1.c: New test.
From-SVN: r223396
Andreas Krebbel [Tue, 19 May 2015 17:26:35 +0000 (17:26 +0000)]
S/390 Vector base support.
gcc/
* config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
constraints.
* config/s390/predicates.md (const0_operand, constm1_operand)
(constable_operand): Accept vector operands.
* config/s390/s390-modes.def: Add supported vector modes.
* config/s390/s390-protos.h (s390_cannot_change_mode_class)
(s390_function_arg_vector, s390_contiguous_bitmask_vector_p)
(s390_bytemask_vector_p, s390_expand_vec_strlen)
(s390_expand_vec_compare, s390_expand_vcond)
(s390_expand_vec_init): Add prototypes.
* config/s390/s390.c (VEC_ARG_NUM_REG): New macro.
(s390_vector_mode_supported_p): New function.
(s390_contiguous_bitmask_p): Mask out the irrelevant bits.
(s390_contiguous_bitmask_vector_p): New function.
(s390_bytemask_vector_p): New function.
(s390_split_ok_p): Vector regs don't work either.
(regclass_map): Add VEC_REGS.
(s390_legitimate_constant_p): Handle vector constants.
(s390_cannot_force_const_mem): Handle CONST_VECTOR.
(legitimate_reload_vector_constant_p): New function.
(s390_preferred_reload_class): Handle CONST_VECTOR.
(s390_reload_symref_address): Likewise.
(s390_secondary_reload): Vector memory instructions only support
short displacements. Rename reload*_nonoffmem* to reload*_la*.
(s390_emit_ccraw_jump): New function.
(s390_expand_vec_strlen): New function.
(s390_expand_vec_compare): New function.
(s390_expand_vcond): New function.
(s390_expand_vec_init): New function.
(s390_dwarf_frame_reg_mode): New function.
(print_operand): Handle addresses with 'O' and 'R' constraints.
(NR_C_MODES, constant_modes): Add vector modes.
(s390_output_pool_entry): Handle vector constants.
(s390_hard_regno_mode_ok): Handle vector registers.
(s390_class_max_nregs): Likewise.
(s390_cannot_change_mode_class): New function.
(s390_invalid_arg_for_unprototyped_fn): New function.
(s390_function_arg_vector): New function.
(s390_function_arg_float): Remove size variable.
(s390_pass_by_reference): Handle vector arguments.
(s390_function_arg_advance): Likewise.
(s390_function_arg): Likewise.
(s390_return_in_memory): Vector values are returned in a VR if
possible.
(s390_function_and_libcall_value): Handle vector arguments.
(s390_gimplify_va_arg): Likewise.
(s390_call_saved_register_used): Consider the arguments named.
(s390_conditional_register_usage): Disable v16-v31 for non-vec
targets.
(s390_preferred_simd_mode): New function.
(s390_support_vector_misalignment): New function.
(s390_vector_alignment): New function.
(TARGET_STRICT_ARGUMENT_NAMING, TARGET_DWARF_FRAME_REG_MODE)
(TARGET_VECTOR_MODE_SUPPORTED_P)
(TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN)
(TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
(TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT)
(TARGET_VECTOR_ALIGNMENT): Define target macro.
* config/s390/s390.h (FUNCTION_ARG_PADDING): Define macro.
(FIRST_PSEUDO_REGISTER): Increase value.
(VECTOR_NOFP_REGNO_P, VECTOR_REGNO_P, VECTOR_NOFP_REG_P)
(VECTOR_REG_P): Define macros.
(FIXED_REGISTERS, CALL_USED_REGISTERS)
(CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER)
(HARD_REGNO_CALL_PART_CLOBBERED, REG_CLASS_NAMES)
(FUNCTION_ARG_REGNO_P, FUNCTION_VALUE_REGNO_P, REGISTER_NAMES):
Add vector registers.
(CANNOT_CHANGE_MODE_CLASS): Call C function.
(enum reg_class): Add VEC_REGS, ADDR_VEC_REGS, GENERAL_VEC_REGS.
(SECONDARY_MEMORY_NEEDED): Allow SF<->SI mode moves without
memory.
(DBX_REGISTER_NUMBER, FIRST_VEC_ARG_REGNO, LAST_VEC_ARG_REGNO)
(SHORT_DISP_IN_RANGE, VECTOR_STORE_FLAG_VALUE): Define macro.
* config/s390/s390.md (UNSPEC_VEC_*): New constants.
(VR*_REGNUM): New constants.
(ALL): New mode iterator.
(INTALL): Remove mode iterator.
Include vector.md.
(movti): Implement TImode moves for VRs.
Disable TImode splitter for VR targets.
Implement splitting TImode GPR<->VR moves.
(reload*_tomem_z10, reload*_toreg_z10): Replace INTALL with ALL.
(reload<mode>_nonoffmem_in, reload<mode>_nonoffmem_out): Rename to
reload<mode>_la_in, reload<mode>_la_out.
(*movdi_64, *movsi_zarch, *movhi, *movqi, *mov<mode>_64dfp)
(*mov<mode>_64, *mov<mode>_31): Add vector instructions.
(TD/TF mode splitter): Enable for GPRs only (formerly !FP).
(mov<mode> SF SD): Prefer lder, lde for loading.
Add lrl and strl instructions.
Add vector instructions.
(strlen<mode>): Rename old strlen<mode> to strlen_srst<mode>.
Call s390_expand_vec_strlen on z13.
(*cc_to_int): Change predicate to nonimmediate_operand.
(addti3): Rename to *addti3. New expander.
(subti3): Rename to *subti3. New expander.
* config/s390/vector.md: New file.
From-SVN: r223395
Andreas Krebbel [Tue, 19 May 2015 17:24:24 +0000 (17:24 +0000)]
S/390 Add -march/-mtune=z13 option.
gcc/
* common/config/s390/s390-common.c (processor_flags_table): Add
z13.
* config.gcc: Add z13.
* config/s390/s390-opts.h (enum processor_type): Add
PROCESSOR_2964_Z13.
* config/s390/s390.c (s390_adjust_priority): Check for
PROCESSOR_2964_Z13.
(s390_reorg): Likewise.
(s390_sched_reorder): Likewise.
(s390_sched_variable_issue): Likewise.
(s390_loop_unroll_adjust): Likewise.
(s390_option_override): Likewise. Default to -mvx when available.
* config/s390/s390.h (enum processor_flags): Add PF_Z13 and PF_VX.
(TARGET_CPU_Z13, TARGET_CPU_VX, TARGET_Z13, TARGET_VX)
(TARGET_VX_ABI): Define macros.
macros.
(TARGET_DEFAULT): Add MASK_OPT_VX.
* config/s390/s390.md ("cpu" attribute): Add z13.
("cpu_facility" attribute): Add vec.
* config/s390/s390.opt (processor_type): Add z13.
(mvx): New options.
* doc/invoke.texi: Add z13 option for -march.
From-SVN: r223393
Andreas Krebbel [Tue, 19 May 2015 17:21:56 +0000 (17:21 +0000)]
S/390: Make shift_count_or_setmem_operand predicate to check for mode.
gcc/
* config/s390/predicates.md (shift_count_or_setmem_operand):
Add mode check to make sure that only scalar integer values
are accepted.
From-SVN: r223392
Jan Hubicka [Tue, 19 May 2015 17:17:21 +0000 (19:17 +0200)]
tree.c (verify_type_variant): Fix #undef.
* tree.c (verify_type_variant): Fix #undef.
(gimple_canonical_types_compatible_p): Move here from lto.c
(verify_type): Verify TYPE_CANONICAL compatibility.
* tree.h (gimple_canonical_types_compatible_p): Declare.
* lto.c (gimple_canonical_types_compatible_p): Move to tree.c
From-SVN: r223391
Jakub Jelinek [Tue, 19 May 2015 16:16:15 +0000 (18:16 +0200)]
re PR middle-end/66199 (lastprivate/linear clause issues on combined constructs)
PR middle-end/66199
* tree.h (OMP_TEAMS_COMBINED): Define.
* gimplify.c (enum gimplify_omp_var_data): Add
GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
(enum omp_region_type): Add ORT_COMBINED_TEAMS.
(omp_notice_variable): Accept both ORT_TEAMS
and ORT_COMBINED_TEAMS. Don't recurse if
GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
GOVD_FIRSTPRIVATE.
(omp_no_lastprivate): New function.
(gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
notice_outer and set appropriate bits, otherwise make
sure default(none) combined constructs won't complain.
(gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
outer special casing, for OMP_CLAUSE_LASTPRIVATE if
omp_no_lastprivate either remove the clause or turn it
into OMP_CLAUSE_PRIVATE.
(gimplify_omp_for): Fix up handling of implicit
lastprivate or linear iterators.
(gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
ORT_COMBINED_TEAMS.
* omp-low.c (lower_omp_for_lastprivate): For combined
for simd use fd.loop.n2 from the for rather than simd.
gcc/c/
* c-parser.c (c_parser_omp_for_loop): Don't add
OMP_CLAUSE_SHARED to OMP_PARALLEL_CLAUSES when moving
OMP_CLAUSE_LASTPRIVATE clause to OMP_FOR_CLAUSES.
(c_parser_omp_teams): Set OMP_TEAMS_COMBINED for combined
constructs.
gcc/cp/
* parser.c (cp_parser_omp_for_loop): Don't add
OMP_CLAUSE_SHARED to OMP_PARALLEL_CLAUSES when moving
OMP_CLAUSE_LASTPRIVATE clause to OMP_FOR_CLAUSES.
(cp_parser_omp_teams): Set OMP_TEAMS_COMBINED for combined
constructs.
gcc/fortran/
* trans-openmp.c (gfc_trans_omp_teams): Set OMP_TEAMS_COMBINED for
combined constructs.
(gfc_trans_omp_target): Make sure BIND_EXPR has non-NULL
BIND_EXPR_BLOCK.
libgomp/
* testsuite/libgomp.c/pr66199-1.c: New test.
* testsuite/libgomp.c/pr66199-2.c: New test.
* testsuite/libgomp.c++/pr66199-1.C: New test.
* testsuite/libgomp.c++/pr66199-2.C: New test.
* testsuite/libgomp.fortran/pr66199-1.f90: New test.
* testsuite/libgomp.fortran/pr66199-2.f90: New test.
From-SVN: r223387
Christophe Lyon [Tue, 19 May 2015 15:56:35 +0000 (15:56 +0000)]
vqshrun_n.c: New file.
2015-05-19 Christophe Lyon <christophe.lyon@linaro.org>
* gcc.target/aarch64/advsimd-intrinsics/vqshrun_n.c: New file.
From-SVN: r223386
Christophe Lyon [Tue, 19 May 2015 15:55:19 +0000 (15:55 +0000)]
vqshrn_n.c: New file.
2015-05-19 Christophe Lyon <christophe.lyon@linaro.org>
* gcc.target/aarch64/advsimd-intrinsics/vqshrn_n.c: New file.
From-SVN: r223385
Christophe Lyon [Tue, 19 May 2015 15:53:46 +0000 (15:53 +0000)]
vqshlu_n.c: New file.
2015-05-19 Christophe Lyon <christophe.lyon@linaro.org>
* gcc.target/aarch64/advsimd-intrinsics/vqshlu_n.c: New file.
From-SVN: r223384
Richard Sandiford [Tue, 19 May 2015 15:52:28 +0000 (15:52 +0000)]
cris.c (cris_expand_prologue): Use gen_raw_REG instead of gen_rtx_raw_REG.
gcc/
* config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
instead of gen_rtx_raw_REG.
(cris_expand_epilogue): Likewise.
* config/microblaze/microblaze.c (microblaze_classify_address):
Likewise.
* config/sparc/sparc.md: Likewise.
From-SVN: r223383
Christophe Lyon [Tue, 19 May 2015 15:52:01 +0000 (15:52 +0000)]
vqshl_n.c: New file.
2015-05-19 Christophe Lyon <christophe.lyon@linaro.org>
* gcc.target/aarch64/advsimd-intrinsics/vqshl_n.c: New file.
From-SVN: r223382
Christophe Lyon [Tue, 19 May 2015 15:50:39 +0000 (15:50 +0000)]
vqshl.c: New file.
2015-05-19 Christophe Lyon <christophe.lyon@linaro.org>
* gcc.target/aarch64/advsimd-intrinsics/vqshl.c: New file.
From-SVN: r223381
Christophe Lyon [Tue, 19 May 2015 15:49:29 +0000 (15:49 +0000)]
vqrshrun_n.c: New file.
2015-05-19 Christophe Lyon <christophe.lyon@linaro.org>
* gcc.target/aarch64/advsimd-intrinsics/vqrshrun_n.c: New file.
From-SVN: r223380
Christophe Lyon [Tue, 19 May 2015 15:48:15 +0000 (15:48 +0000)]
vqrshrn_n.c: New file.
2015-05-19 Christophe Lyon <christophe.lyon@linaro.org>
* gcc.target/aarch64/advsimd-intrinsics/vqrshrn_n.c: New file.
From-SVN: r223379
Christophe Lyon [Tue, 19 May 2015 15:46:48 +0000 (15:46 +0000)]
vqrshl.c: New file.
2015-05-19 Christophe Lyon <christophe.lyon@linaro.org>
* gcc.target/aarch64/advsimd-intrinsics/vqrshl.c: New file.
From-SVN: r223377
Christophe Lyon [Tue, 19 May 2015 15:45:15 +0000 (15:45 +0000)]
vqrdmulh_n.c: New file.
2015-05-19 Christophe Lyon <christophe.lyon@linaro.org>
* gcc.target/aarch64/advsimd-intrinsics/vqrdmulh_n.c: New file.
From-SVN: r223376
Christophe Lyon [Tue, 19 May 2015 15:43:58 +0000 (15:43 +0000)]
vqrdmulh_lane.c: New file.
2015-05-19 Christophe Lyon <christophe.lyon@linaro.org>
* gcc.target/aarch64/advsimd-intrinsics/vqrdmulh_lane.c: New file.
From-SVN: r223375
Christophe Lyon [Tue, 19 May 2015 15:42:33 +0000 (15:42 +0000)]
vqrdmulh.c: New file.
2015-05-19 Christophe Lyon <christophe.lyon@linaro.org>
* gcc.target/aarch64/advsimd-intrinsics/vqrdmulh.c: New file.
From-SVN: r223374
Christophe Lyon [Tue, 19 May 2015 15:40:35 +0000 (15:40 +0000)]
vqmovun.c: New file.
2015-05-19 Christophe Lyon <christophe.lyon@linaro.org>
* gcc.target/aarch64/advsimd-intrinsics/vqmovun.c: New file.
From-SVN: r223373
Christophe Lyon [Tue, 19 May 2015 15:38:59 +0000 (15:38 +0000)]
vqmovn.c: New file.
2015-05-19 Christophe Lyon <christophe.lyon@linaro.org>
* gcc.target/aarch64/advsimd-intrinsics/vqmovn.c: New file.
From-SVN: r223372
Uros Bizjak [Tue, 19 May 2015 15:09:09 +0000 (17:09 +0200)]
* config/alpha/alpha.c (alpha_legitimize_reload_address)
(alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
(alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
Use CASE_CONST_SCALAR_INT.
(print_operand) <case 'M'>: Use mode_width_operand to check the
value of the constant.
* config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
* config/alpha/predicates.md (input_operand): Use general_operand
instead of match_code as operand check.
(symbolic_operand): Use match_code with subexpression digits.
* config/alpha/constraints.md (Q): Ditto.
From-SVN: r223371
Andreas Krebbel [Tue, 19 May 2015 14:51:47 +0000 (14:51 +0000)]
optabs: Fix vec_perm -> V16QI middle end lowering.
The current implementation re-uses the location of the selection
pattern to generate a new one. This fails if the pattern resides in a
read-only location.
gcc/
* optabs.c (expand_vec_perm): Don't re-use SEL as target operand.
From-SVN: r223369
Andreas Krebbel [Tue, 19 May 2015 14:49:35 +0000 (14:49 +0000)]
S/390 Fix secondary reload issue with store/load relative operands.
We need a scratch register for loading from or storing to a symbolic
memory reference where we cannot use the load/store relative
instructions for. However, the check currently fails to handle
floating point modes in GPRs correctly.
gcc/
* config/s390/s390.c (s390_secondary_reload): Fix check for
load/store relative.
From-SVN: r223368
Andreas Krebbel [Tue, 19 May 2015 14:47:11 +0000 (14:47 +0000)]
recog: Increase max number of alternatives.
With the vector facility support z13 mov patterns have more than 30
alternatives.
gcc/
* recog.h: Increase MAX_RECOG_ALTERNATIVES.
Change type of alternative_mask to uint64_t.
From-SVN: r223367
Jakub Jelinek [Tue, 19 May 2015 13:54:32 +0000 (15:54 +0200)]
re PR rtl-optimization/66187 (wrong code at -O1, -O2 and -O3 on x86_64-linux-gnu)
PR tree-optimization/66187
* match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
Pass TYPE_SIGN to tree_int_cst_min_precision. If
!TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.
* gcc.c-torture/execute/pr66187.c: New test.
* gcc.dg/pr66187-1.c: New test.
* gcc.dg/pr66187-2.c: New test.
From-SVN: r223366
David Malcolm [Tue, 19 May 2015 13:18:01 +0000 (13:18 +0000)]
Replace line_map union with C++ class hierarchy
gcc/ChangeLog:
* diagnostic.c (diagnostic_report_current_module): Strengthen
local "new_map" from const line_map * to
const line_map_ordinary *.
* genmatch.c (error_cb): Likewise for local "map".
(output_line_directive): Likewise for local "map".
* input.c (expand_location_1): Likewise for local "map".
Pass NULL rather than &map to
linemap_unwind_to_first_non_reserved_loc, since the value is never
read from there, and the value written back not read from here.
(is_location_from_builtin_token): Strengthen local "map" from
const line_map * to const line_map_ordinary *.
(dump_location_info): Strengthen locals "map" from
line_map *, one to const line_map_ordinary *, the other
to const line_map_macro *.
* tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
const line_map * to const line_map_macro *.
(maybe_unwind_expanded_macro_loc): Add a call to
linemap_check_macro when writing to the "map" field of the
loc_map_pair.
Introduce local const line_map_ordinary * "ord_map", using it in
place of "map" in the part of the function where we know we have
an ordinary map. Strengthen local "m" from const line_map * to
const line_map_ordinary *.
gcc/ada/ChangeLog:
* gcc-interface/trans.c (Sloc_to_locus1): Strenghthen local "map"
from line_map * to line_map_ordinary *.
gcc/c-family/ChangeLog:
* c-common.h (fe_file_change): Strengthen param from
const line_map * to const line_map_ordinary *.
(pp_file_change): Likewise.
* c-lex.c (fe_file_change): Likewise.
(cb_define): Use linemap_check_ordinary when invoking
SOURCE_LINE.
(cb_undef): Likewise.
* c-opts.c (c_finish_options): Use linemap_check_ordinary when
invoking cb_file_change.
(c_finish_options): Likewise.
(push_command_line_include): Likewise.
(cb_file_change): Strengthen param "new_map" from
const line_map * to const line_map_ordinary *.
* c-ppoutput.c (cb_define): Likewise for local "map".
(pp_file_change): Likewise for param "map" and local "from".
gcc/fortran/ChangeLog:
* cpp.c (maybe_print_line): Strengthen local "map" from
const line_map * to const line_map_ordinary *.
(cb_file_change): Likewise for param "map" and local "from".
(cb_line_change): Likewise for local "map".
libcpp/ChangeLog:
* directives.c (do_line): Strengthen local "map" from
const line_map * to const line_map_ordinary *.
(do_linemarker): Likewise.
(_cpp_do_file_change): Assert that we're not dealing with
a macro map. Introduce local "ord_map" via a call to
linemap_check_ordinary, guarded within the check for
non-NULL. Use it for typesafety.
* files.c (cpp_make_system_header): Strengthen local "map" from
const line_map * to const line_map_ordinary *.
* include/cpplib.h (struct cpp_callbacks): Likewise for second
parameter of "file_change" callback.
* include/line-map.h (struct line_map): Convert from a struct
containing a union to a base class.
(struct line_map_ordinary): Convert to a subclass of line_map.
(struct line_map_macro): Likewise.
(linemap_check_ordinary): Strengthen return type from line_map *
to line_map_ordinary *, and add a const-variant.
(linemap_check_macro): New pair of functions.
(ORDINARY_MAP_STARTING_LINE_NUMBER): Strengthen param from
const line_map * to const line_map_ordinary *, eliminating call
to linemap_check_ordinary. Likewise for the non-const variant.
(ORDINARY_MAP_INCLUDER_FILE_INDEX): Likewise.
(ORDINARY_MAP_IN_SYSTEM_HEADER_P): Likewise.
(ORDINARY_MAP_NUMBER_OF_COLUMN_BITS): Likewise.
(ORDINARY_MAP_FILE_NAME): Likewise.
(MACRO_MAP_MACRO): Strengthen param from const line_map * to
const line_map_macro *. Likewise for the non-const variant.
(MACRO_MAP_NUM_MACRO_TOKENS): Likewise.
(MACRO_MAP_LOCATIONS): Likewise.
(MACRO_MAP_EXPANSION_POINT_LOCATION): Likewise.
(struct maps_info): Replace with...
(struct maps_info_ordinary):...this and...
(struct maps_info_macro): ...this.
(struct line_maps): Convert fields "info_ordinary" and
"info_macro" to the above new structs.
(LINEMAPS_MAP_INFO): Delete both functions.
(LINEMAPS_MAPS): Likewise.
(LINEMAPS_ALLOCATED): Rewrite both variants to avoid using
LINEMAPS_MAP_INFO.
(LINEMAPS_USED): Likewise.
(LINEMAPS_CACHE): Likewise.
(LINEMAPS_MAP_AT): Likewise.
(LINEMAPS_ORDINARY_MAPS): Strengthen return type from line_map *
to line_map_ordinary *.
(LINEMAPS_ORDINARY_MAP_AT): Likewise.
(LINEMAPS_LAST_ORDINARY_MAP): Likewise.
(LINEMAPS_LAST_ALLOCATED_ORDINARY_MAP): Likewise.
(LINEMAPS_MACRO_MAPS): Strengthen return type from line_map * to
line_map_macro *.
(LINEMAPS_MACRO_MAP_AT): Likewise.
(LINEMAPS_LAST_MACRO_MAP): Likewise.
(LINEMAPS_LAST_ALLOCATED_MACRO_MAP): Likewise.
(linemap_map_get_macro_name): Strengthen param from
const line_map * to const line_map_macro *.
(SOURCE_LINE): Strengthen first param from const line_map * to
const line_map_ordinary *, removing call to
linemap_check_ordinary.
(SOURCE_COLUMN): Likewise.
(LAST_SOURCE_LINE_LOCATION): Likewise.
(LAST_SOURCE_LINE): Strengthen first param from const line_map *
to const line_map_ordinary *.
(LAST_SOURCE_COLUMN): Likewise.
(INCLUDED_FROM): Strengthen return type from line_map * to
line_map_ordinary *., and second param from const line_map *
to const line_map_ordinary *, removing call to
linemap_check_ordinary.
(MAIN_FILE_P): Strengthen param from const line_map * to
const line_map_ordinary *, removing call to
linemap_check_ordinary.
(linemap_position_for_line_and_column): Strengthen param from
const line_map * to const line_map_ordinary *.
(LINEMAP_FILE): Strengthen param from const line_map * to
const line_map_ordinary *, removing call to
linemap_check_ordinary.
(LINEMAP_LINE): Likewise.
(LINEMAP_SYSP): Likewise.
(linemap_resolve_location): Strengthen final param from
const line_map ** to const line_map_ordinary **.
* internal.h (CPP_INCREMENT_LINE): Likewise for local "map".
(linemap_enter_macro): Strengthen return type from
const line_map * to const line_map_macro *.
(linemap_add_macro_token): Likewise for first param.
* line-map.c (linemap_check_files_exited): Strengthen local "map"
from const line_map * to const line_map_ordinary *.
(new_linemap): Introduce local "map_size" and use it when
calculating how large the buffer should be. Rewrite based
on change of info_macro and info_ordinary into distinct types.
(linemap_add): Strengthen locals "map" and "from" from line_map *
to line_map_ordinary *.
(linemap_enter_macro): Strengthen return type from
const line_map * to const line_map_macro *, and local "map" from
line_map * to line_map_macro *.
(linemap_add_macro_token): Strengthen param "map" from
const line_map * to const line_map_macro *.
(linemap_line_start): Strengthen local "map" from line_map * to
line_map_ordinary *.
(linemap_position_for_column): Likewise.
(linemap_position_for_line_and_column): Strengthen first param
from const line_map * to const line_map_ordinary *.
(linemap_position_for_loc_and_offset): Strengthen local "map" from
const line_map * to const line_map_ordinary *.
(linemap_ordinary_map_lookup): Likewise for return type and locals
"cached" and "result".
(linemap_macro_map_lookup): Strengthen return type and locals
"cached" and "result" from const line_map * to
const line_map_macro *.
(linemap_macro_map_loc_to_exp_point): Likewise for param "map".
(linemap_macro_map_loc_to_def_point): Likewise.
(linemap_macro_map_loc_unwind_toward_spelling): Likewise.
(linemap_get_expansion_line): Strengthen local "map" from
const line_map * to const line_map_ordinary *.
(linemap_get_expansion_filename): Likewise.
(linemap_map_get_macro_name): Strengthen param from
const line_map * to const line_map_macro *.
(linemap_location_in_system_header_p): Add call to
linemap_check_ordinary in region guarded by
!linemap_macro_expansion_map_p. Introduce local "macro_map" via
linemap_check_macro in other region, using it in place of "map"
for typesafety.
(first_map_in_common_1): Add calls to linemap_check_macro.
(trace_include): Strengthen param "map" from const line_map * to
const line_map_ordinary *.
(linemap_macro_loc_to_spelling_point): Strengthen final param from
const line_map ** to const line_map_ordinary **. Replace a
C-style cast with a const_cast, and add calls to
linemap_check_macro and linemap_check_ordinary.
(linemap_macro_loc_to_def_point): Likewise.
(linemap_macro_loc_to_exp_point): Likewise.
(linemap_resolve_location): Strengthen final param from
const line_map ** to const line_map_ordinary **.
(linemap_unwind_toward_expansion): Introduce local "macro_map" via
a checked cast and use it in place of *map.
(linemap_unwind_to_first_non_reserved_loc): Strengthen local
"map1" from const line_map * to const line_map_ordinary *.
(linemap_expand_location): Introduce local "ord_map" via a checked
cast and use it in place of map.
(linemap_dump): Make local "map" const. Strengthen local
"includer_map" from line_map * to const line_map_ordinary *.
Introduce locals "ord_map" and "macro_map" via checked casts and
use them in place of "map" for typesafety.
(linemap_dump_location): Strengthen local "map" from
const line_map * to const line_map_ordinary *.
(linemap_get_file_highest_location): Update for elimination of
union.
(linemap_get_statistics): Strengthen local "cur_map" from
line_map * to const line_map_macro *. Update uses of sizeof to
use the appropriate line_map subclasses.
* macro.c (_cpp_warn_if_unused_macro): Add call to
linemap_check_ordinary.
(builtin_macro): Strengthen local "map" from const line_map * to
const line_map_macro *.
(enter_macro_context): Likewise.
(replace_args): Likewise.
(tokens_buff_put_token_to): Likewise for param "map".
(tokens_buff_add_token): Likewise.
From-SVN: r223365
Ramana Radhakrishnan [Tue, 19 May 2015 12:47:50 +0000 (12:47 +0000)]
Add cpu_defines.h for ARM.
2015-05-17 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
* configure.host: Define cpu_defines_dir for ARM.
* config/cpu/arm/cpu_defines.h: New file.
From-SVN: r223361
Nick Clifton [Tue, 19 May 2015 11:42:44 +0000 (11:42 +0000)]
re PR rtl-optimization/66156 ([msp430] wrong code generated with -O2 -mlarge (zero extension HI -> SI))
PR target/66156
* config/msp430/msp430.md (zero_extendhisi2): Add support for
separate source and destination registers.
From-SVN: r223354
Rainer Orth [Tue, 19 May 2015 11:40:44 +0000 (11:40 +0000)]
Fix gcc.dg/vect/bb-slp-35.c on SPARC
* gcc.dg/vect/bb-slp-35.c: Adjust.
From-SVN: r223353
Julian Brown [Tue, 19 May 2015 11:06:31 +0000 (11:06 +0000)]
plugin-nvptx.c (nvptx_get_num_devices): Return zero on cuInit failure.
* plugin/plugin-nvptx.c (nvptx_get_num_devices): Return zero
on cuInit failure.
From-SVN: r223352
Richard Biener [Tue, 19 May 2015 09:36:35 +0000 (09:36 +0000)]
re PR tree-optimization/66165 (vect_transform_slp_perm_load: vec out of range ?)
2015-05-19 Richard Biener <rguenther@suse.de>
PR tree-optimization/66165
* tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
for no load permutation.
* gcc.dg/torture/pr66165.c: New testcase.
PR tree-optimization/66185
* tree-vect-slp.c (vect_build_slp_tree): Properly roll back
when building the SLP node from scalars.
* gcc.dg/torture/pr66185.c: New testcase.
From-SVN: r223349
Eric Botcazou [Tue, 19 May 2015 09:33:27 +0000 (09:33 +0000)]
insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
* insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
* builtins.c (expand_builtin_update_setjmp_buf): Make global.
(expand_stack_restore): Call record_new_stack_level.
(expand_stack_save): Do not call do_pending_stack_adjust.
* builtins.h (expand_builtin_update_setjmp_buf): Declare.
* calls.c (expand_call): Call record_new_stack_level for alloca.
* except.c (sjlj_mark_call_sites): Expand builtin_update_setjmp_buf
wherever a NOTE_INSN_UPDATE_SJLJ_CONTEXT note is present.
(update_sjlj_context): New global function.
* except.h (update_sjlj_context): Declare.
* explow.c (record_new_stack_level): New global function.
(allocate_dynamic_stack_space): Call record_new_stack_level.
* explow.h (record_new_stack_level): Declare.
* final.c (final_scan_insn): Deal with NOTE_INSN_UPDATE_SJLJ_CONTEXT.
* cfgrtl.c (duplicate_insn_chain): Likewise.
Co-Authored-By: Tristan Gingold <gingold@adacore.com>
From-SVN: r223348
Kyrylo Tkachov [Tue, 19 May 2015 08:43:17 +0000 (08:43 +0000)]
[calls.c] Remove #ifdef checks on STACK_GROWS_DOWNWARD
* calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
(mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
STACK_GROWS_DOWNWARD as normal if.
(expand_call): Likewise.
From-SVN: r223347
Oleg Endo [Tue, 19 May 2015 08:00:41 +0000 (08:00 +0000)]
re PR target/54236 ([SH] Improve addc and subc insn utilization)
gcc/
PR target/54236
* config/sh/sh.md (*round_int_even): New insn_and_split and
accompanying new unnamed split.
gcc/testsuite/
PR target/54236
* gcc.target/sh/pr54236-2.c: Adjust expected insn counts.
From-SVN: r223346
Richard Sandiford [Tue, 19 May 2015 07:11:37 +0000 (07:11 +0000)]
bitmap.c (bitmap_set_range): Handle count==1 specially.
gcc/
* bitmap.c (bitmap_set_range): Handle count==1 specially.
(bitmap_clear_range): Likewise.
* cfgcleanup.c (mark_effect): Use bitmap_clear_range and
bitmap_set_range unconditionally.
* df-problems.c (df_simulate_one_insn_forwards): Likewise.
* df-scan.c (df_mark_reg): Likewise.
* haifa-sched.c (setup_ref_regs): Likewise.
* sched-rgn.c (update_live_1): Likewise.
From-SVN: r223344
Richard Sandiford [Tue, 19 May 2015 07:11:18 +0000 (07:11 +0000)]
regs.h (END_HARD_REGNO): Delete.
gcc/
* regs.h (END_HARD_REGNO): Delete.
(END_REGNO): Move to...
* rtl.h: ...here.
* bt-load.c (note_btr_set): Use END_REGNO instead of END_HARD_REGNO.
* caller-save.c (mark_set_regs): Likewise.
* combine.c (move_deaths, distribute_notes): Likewise.
* cse.c (invalidate, invalidate_for_call): Likewise.
* df-scan.c (df_ref_record): Likewise.
* postreload-gcse.c (reg_changed_after_insn_p): Likewise.
(record_last_reg_set_info): Likewise.
* reg-stack.c (convert_regs_exit): Likewise.
* reload.c (reg_overlap_mentioned_for_reload_p): Likewise.
* resource.c (update_live_status): Likewise.
* rtlanal.c (find_reg_fusage, find_regno_fusage): Likewise.
From-SVN: r223343
Richard Sandiford [Tue, 19 May 2015 07:10:42 +0000 (07:10 +0000)]
rtl.h (reg_info): Add an nregs field.
gcc/
* rtl.h (reg_info): Add an nregs field.
(REG_NREGS): Use it.
(SET_REGNO_RAW): Delete.
(set_regno_raw): New function.
* regs.h (END_HARD_REGNO): Make equivalent to END_REGNO.
(END_REGNO): Redefine in terms of REG_NREGS.
* read-rtl.c (read_rtx_code): Call set_regno_raw instead of
SET_REGNO_RAW.
* emit-rtl.c (set_mode_and_regno): Likewise.
* df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno
instead of SET_REGNO_RAW.
From-SVN: r223342
Richard Sandiford [Tue, 19 May 2015 07:10:30 +0000 (07:10 +0000)]
rtl.h (PUT_MODE_RAW): New macro.
gcc/
* rtl.h (PUT_MODE_RAW): New macro.
(PUT_REG_NOTE_KIND): Use it.
(set_mode_and_regno): Declare.
(gen_raw_REG): Change regno to "unsigned int".
(gen_rtx_REG): Change "unsigned" to "unsigned int".
(PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
use set_mode_and_regno to change the mode of registers.
* gengenrtl.c (gendef): Use PUT_MODE_RAW.
* emit-rtl.c (set_mode_and_regno): New function.
(gen_raw_REG): Change regno to unsigned int. Use set_mode_and_regno.
* caller-save.c (reg_save_code): Use set_mode_and_regno.
* expr.c (init_expr_target): Likewise.
* ira.c (setup_prohibited_mode_move_regs): Likewise.
* postreload.c (reload_cse_simplify_operands): Likewise.
From-SVN: r223341
Richard Sandiford [Tue, 19 May 2015 07:10:15 +0000 (07:10 +0000)]
caller-save.c (init_caller_save): Use word_mode and FIRST_PSEUDO_REGISTER when creating temporary rtxes.
gcc/
* caller-save.c (init_caller_save): Use word_mode and
FIRST_PSEUDO_REGISTER when creating temporary rtxes.
* expr.c (init_expr_target): Likewise.
* ira.c (setup_prohibited_mode_move_regs): Likewise.
* postreload.c (reload_cse_regs_1): Likewise.
From-SVN: r223340
Richard Sandiford [Tue, 19 May 2015 07:09:42 +0000 (07:09 +0000)]
rtl.def (REG): Change format to "r".
gcc/
* rtl.def (REG): Change format to "r".
* rtl.h (rtunion): Remove rt_reg.
(reg_info): New structure.
(rtx_def): Add reg field to main union.
(X0REGATTR): Delete.
(REG_CHECK): New macro.
(SET_REGNO_RAW, rhs_regno, REG_ATTRS): Use it.
* rtl.c (rtx_format): Document "r".
(rtx_code_size): Handle REG specially.
* gengenrtl.c (special_format): Return true for formats
that include 'r'.
* gengtype.c (adjust_field_rtx_def): Handle 'r' fields.
Deal with REG_ATTRS after the field loop.
* emit-rtl.c (gen_raw_REG): Call rtx_alloc_stat directly.
* expmed.c (init_expmed): Call gen_raw_REG instead of
gen_rtx_raw_REG.
* expr.c (init_expr_target): Likewise.
* regcprop.c (maybe_mode_change): Likewise.
* varasm.c (make_decl_rtl): Likewise.
* final.c (leaf_renumber_regs_insn): Return early after
handling REGs.
* genemit.c (gen_exp): Handle 'r' fields.
* genpeep.c (match_rtx): Likewise.
* gensupport.c (subst_pattern_match): Likewise.
(get_alternatives_number, collect_insn_data, alter_predicate_for_insn)
(alter_constraints, subst_dup): Likewise.
* read-rtl.c (read_rtx_code): Likewise.
* print-rtl.c (print_rtx): Likewise.
* genrecog.c (find_operand, find_matching_operand): Likewise.
(validate_pattern, match_pattern_2): Likewise.
(parameter::UINT, rtx_test::REGNO_FIELD): New enum values.
(rtx_test::regno_field): New function.
(operator ==, safe_to_hoist_p, transition_parameter_type)
(parameter_type_string, print_parameter_value)
(print_nonbool_test, print_test): Handle new enum values.
* cselib.c (rtx_equal_for_cselib_1): Handle REG specially.
* lra-constraints.c (operands_match_p): Likewise.
From-SVN: r223339
Richard Sandiford [Tue, 19 May 2015 07:09:23 +0000 (07:09 +0000)]
df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
gcc/
* df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
Change type of new_regno to unsigned int.
* df-scan.c (df_ref_change_reg_with_loc_1): Change type of
new_regno to unsigned int.
(df_ref_change_reg_with_loc): Remove old_regno parameter.
Change type of new_regno to unsigned int. Use SET_REGNO_RAW.
* rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
(SET_REGNO_RAW): Add space after ",".
From-SVN: r223338
Richard Sandiford [Tue, 19 May 2015 07:09:06 +0000 (07:09 +0000)]
rtl.h (REG_NREGS): New macro
gcc/
* rtl.h (REG_NREGS): New macro
* alias.c (record_set): Use it.
* cfgcleanup.c (mark_effect): Likewise.
* combine.c (likely_spilled_retval_1): Likewise.
(likely_spilled_retval_p, can_change_dest_mode): Likewise.
(move_deaths, distribute_notes): Likewise.
* cselib.c (cselib_record_set): Likewise.
* df-problems.c (df_simulate_one_insn_forwards): Likewise.
* df-scan.c (df_mark_reg): Likewise.
* dse.c (look_for_hardregs): Likewise.
* dwarf2out.c (reg_loc_descriptor): Likewise.
(multiple_reg_loc_descriptor): Likewise.
* expr.c (write_complex_part, read_complex_part): Likewise.
(emit_move_complex): Likewise.
* haifa-sched.c (setup_ref_regs): Likewise.
* ira-lives.c (mark_hard_reg_live): Likewise.
* lra.c (lra_set_insn_recog_data): Likewise.
* mode-switching.c (create_pre_exit): Likewise.
* postreload.c (reload_combine_recognize_const_pattern): Likewise.
(reload_combine_recognize_pattern): Likewise.
(reload_combine_note_use, move2add_record_mode): Likewise.
(reload_cse_move2add): Likewise.
* reg-stack.c (subst_stack_regs_pat): Likewise.
* regcprop.c (kill_value, copy_value): Likewise.
(copyprop_hardreg_forward_1): Likewise.
* regrename.c (verify_reg_in_set, scan_rtx_reg): Likewise.
(build_def_use): Likewise.
* sched-deps.c (mark_insn_reg_birth, mark_reg_death): Likewise.
(deps_analyze_insn): Likewise.
* sched-rgn.c (check_live_1, update_live_1): Likewise.
* sel-sched.c (count_occurrences_equiv): Likewise.
* valtrack.c (dead_debug_insert_temp): Likewise.
From-SVN: r223337
Richard Sandiford [Tue, 19 May 2015 07:08:49 +0000 (07:08 +0000)]
cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
gcc/
* cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
* dse.c (note_add_store): Likewise.
* ira-lives.c (mark_hard_reg_dead): Likewise.
* loop-invariant.c (mark_reg_store): Likewise.
(mark_reg_death): Likewise.
* postreload.c (reload_combine): Likewise.
(reload_combine_note_store): Likewise.
(reload_combine_note_use): Likewise.
* recog.c (peep2_reg_dead_p): Likewise.
From-SVN: r223336
Alan Modra [Tue, 19 May 2015 06:10:58 +0000 (15:40 +0930)]
predicates.md (gpc_reg_operand): Don't allow all hard registers numbered greater or equal to ARG_POINTER_REGNUM.
* config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
hard registers numbered greater or equal to ARG_POINTER_REGNUM.
(reg_or_neg_short_operand, fix_trunc_dest_operand): Delete
unused predicates.
* config/rs6000/altivec.md (save_vregs_*, restore_vregs_*):
Use altivec_register_operand. Make insn predicate TARGET_ALTIVEC.
* config/rs6000/rs6000.md (extzvdi_internal2): Use cc_reg_operand.
* config/rs6000/vsx.md (vsx_float<VSi><mode>2): Expand comment.
From-SVN: r223335
Prachi Godbole [Tue, 19 May 2015 05:06:03 +0000 (05:06 +0000)]
mips.md (JOIN_MODE): New mode iterator.
gcc/
* config/mips/mips.md (JOIN_MODE): New mode iterator.
(join2_load_Store<JOIN_MODE:mode>): New pattern.
(join2_loadhi): Likewise.
(define_peehole2): Add peephole2 patterns to join 2 HI/SI/SF/DF-mode
load-load and store-stores.
* config/mips/mips.opt (mload-store-pairs): New option.
(TARGET_LOAD_STORE_PAIRS): New macro.
* config/mips/mips.h (ENABLE_LD_ST_PAIRS): Likewise.
* config/mips/mips-protos.h (mips_load_store_bonding_p): New prototype.
* config/mips/mips.c (mips_load_store_bonding_p): New function.
gcc/testsuite/
* gcc.target/mips/p5600-bonding.c : New file.
From-SVN: r223334
Mikhail Maltsev [Tue, 19 May 2015 04:24:31 +0000 (04:24 +0000)]
Use std::swap instead of explicit swaps
gcc/
* bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
explicit swaps.
* dojump.c (do_compare_rtx_and_jump): Likewise.
* expmed.c (emit_store_flag_1): Likewise.
* fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
* final.c (sprint_ul): Use std::reverse for reversing a string.
* fold-const.c (extract_muldiv_1): Use std::swap.
* genmodes.c (emit_mode_int_n): Likewise.
* ifcvt.c (dead_or_predicable): Likewise.
* ira-build.c (ira_merge_live_ranges): Likewise.
(swap_allocno_copy_ends_if_necessary): Likewise.
* ira.c (ira_setup_alts): Likewise.
* loop-iv.c (iv_analyze_expr): Likewise.
(implies_p): Likewise.
(canon_condition): Likewise.
* lra-constraints.c (swap_operands): Likewise.
* lra-lives.c (lra_merge_live_ranges): Likewise.
* omega.c (swap): Remove.
(bswap): Remove.
(omega_unprotect_1): Use std::swap.
(omega_solve_geq): Likewise.
* optabs.c (expand_binop_directly): Likewise.
(expand_binop): Likewise.
(emit_conditional_move): Likewise.
(emit_conditional_add): Likewise.
* postreload.c (reload_cse_simplify_operands): Likewise.
* reg-stack.c (emit_swap_insn): Likewise.
(swap_to_top): Likewise.
(compare_for_stack_reg): Likewise.
(subst_asm_stack_regs): Likewise.
* reload.c (find_reloads): Likewise.
* reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
* sel-sched.c (invoke_reorder_hooks): Likewise.
(create_block_for_bookkeeping): Likewise.
* tree-data-ref.c (lambda_matrix_row_exchange): Remove.
(lambda_matrix_right_hermite): Use std::swap.
* tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
* tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
* tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
* tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
* tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
* tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
* tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
* tree-vrp.c (compare_ranges): Likewise.
* var-tracking.c (add_with_sets): Likewise.
(vt_find_locations): Likewise.
gcc/c/
* c-typeck.c (build_array_ref): Use std::swap instead of explicit
swaps
gcc/cp/
* typeck.c (composite_pointer_type): Use std::swap instead of explicit
swaps.
gcc/c-family/
* c-common.c (shorten_compare): Use std::swap instead of explicit swaps.
gcc/fortran/
* interface.c (compare_actual_formal): Use std::swap instead of
explicit swaps.
* trans-array.c (gfc_trans_scalarized_loop_end): Likewise.
* trans-intrinsic.c (walk_inline_intrinsic_transpose): Likewise.
From-SVN: r223332
GCC Administrator [Tue, 19 May 2015 00:16:14 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r223330
Steven G. Kargl [Mon, 18 May 2015 23:26:38 +0000 (23:26 +0000)]
re PR fortran/66057 (ICE for incomplete generic statement (gfc_match_generic))
2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/66057
* interface.c(gfc_match_end_interface): Enforce F2008 C1202 (R1201).
* match.c(gfc_op2string): Return 'none' for INTRINSIC_NONE.
2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/66057
* gfortran.dg/interface_operator_1.f90: New tests.
From-SVN: r223326
Steven G. Kargl [Mon, 18 May 2015 23:09:49 +0000 (23:09 +0000)]
re PR fortran/66057 (ICE for incomplete generic statement (gfc_match_generic))
2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/66057
* decl.c(gfc_match_generic): Detected a malformed GENERIC statement.
2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/66057
* gfortran.dg/generic_29.f90: New tests.
From-SVN: r223325
Steven G. Kargl [Mon, 18 May 2015 22:52:52 +0000 (22:52 +0000)]
re PR fortran/66052 (Segmentation fault for misplaced protected statement)
2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/66052
* decl.c(gfc_match_protected): Prevent dereference of NULL pointer.
2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/66052
* gfortran.dg/protected_9.f90: New test.
From-SVN: r223324
Steven G. Kargl [Mon, 18 May 2015 22:21:08 +0000 (22:21 +0000)]
re PR fortran/66045 (ICE on incorrect code with null)
2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/66045
* expr.c (gfc_check_assign): Check for assignment of NULL() instead
of the (intended) pointer assignment.
2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/66045
* gfortran.dg/null1.f90: New test.
From-SVN: r223322
Steven G. Kargl [Mon, 18 May 2015 22:06:48 +0000 (22:06 +0000)]
re PR fortran/66044 (ICE on misplaced entry statement)
2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/66044
* decl.c(gfc_match_entry): Change a gfc_internal_error() into
a gfc_error()
2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/66044
* gfortran.dg/entry_21.f90: New test.
From-SVN: r223321
Steven G. Kargl [Mon, 18 May 2015 21:52:03 +0000 (21:52 +0000)]
re PR fortran/66043 (ICE on storage_size of null or output of null array)
2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/66043
* check.c (gfc_check_storage_size): Prevent the direct use of NULL()
in STORAGE_SIZE() reference.
2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/66043
* gfortran.dg/storage_size_6.f90: New tests.
From-SVN: r223320
Steven G. Kargl [Mon, 18 May 2015 21:16:05 +0000 (21:16 +0000)]
re PR fortran/66040 (ICE on misplaced sequence in function)
2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/66040
* parse.c(verify_st_order): Replace a gfc_internal_error with your
generic gfc_error.
2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/66040
* gfortran.dg/misplaced_statement.f90: New test.
From-SVN: r223318
Joseph Myers [Mon, 18 May 2015 21:06:01 +0000 (22:06 +0100)]
* sv.po: Update.
From-SVN: r223316
Steven G. Kargl [Mon, 18 May 2015 21:04:33 +0000 (21:04 +0000)]
re PR fortran/66039 (ICE on incomplete parentheses at rewind, flush, endfile, backspace)
2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/66039
* io.c (match_filepos): Check for incomplete/mangled REWIND, FLUSH,
BACKSPACE, and ENDFILE statements
2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/66039
* gfortran.dg/filepos1.f90: New test
From-SVN: r223315
Jason Merrill [Mon, 18 May 2015 20:22:14 +0000 (16:22 -0400)]
revert: Makefile.in (GCC_WARN_CXXFLAGS): Add -std=c++98.
Revert:
* Makefile.in (GCC_WARN_CXXFLAGS): Add -std=c++98.
From-SVN: r223314
Steven G. Kargl [Mon, 18 May 2015 19:25:49 +0000 (19:25 +0000)]
re PR fortran/64925 (ICE with same names for dummy arg and internal procedure)
2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/64925
* symbol.c(check_conflict): Check for a conflict between a dummy
argument and an internal procedure name.
2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/64925
* gfortran.dg/pr64925.f90: New test.
From-SVN: r223313
Jason Merrill [Mon, 18 May 2015 19:21:54 +0000 (15:21 -0400)]
* Makefile.in (GCC_WARN_CXXFLAGS): Add -std=c++98.
From-SVN: r223312
Steven G. Kargl [Mon, 18 May 2015 18:59:48 +0000 (18:59 +0000)]
pr41521_0.f90: Move INTERFACE statement in program unit.
2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
* gfortran.dg/lto/pr41521_0.f90: Move INTERFACE statement in program
unit.
* gfortran.dg/lto/pr41576_1.f90: Ditto.
From-SVN: r223309
Andreas Tobler [Mon, 18 May 2015 18:37:18 +0000 (20:37 +0200)]
freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build pie executables.
2015-05-18 Andreas Tobler <andreast@gcc.gnu.org>
gcc:
* config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
pie executables.
(FBSD_ENDFILE_SPEC): Likewise.
* config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
config/freebsd-spec.h.
(ENDFILE_SPEC): Likewise.
gcc/testsuite:
* lib/target-supports.exp (check_effective_target_pie): Add *-*-freebsd*
to the family of pie capable targets.
From-SVN: r223308
Jason Merrill [Mon, 18 May 2015 18:08:53 +0000 (14:08 -0400)]
pt.c (retrieve_specialization): Make sure our arguments have gone through strip_typedefs.
* pt.c (retrieve_specialization): Make sure our arguments have
gone through strip_typedefs.
From-SVN: r223305
Jason Merrill [Mon, 18 May 2015 18:08:48 +0000 (14:08 -0400)]
pt.c (tsubst_decl): Call coerce_innermost_template_parms.
* pt.c (tsubst_decl) [VAR_DECL]: Call coerce_innermost_template_parms.
(determine_specialization): Call coerce_template_parms.
From-SVN: r223304
Jason Merrill [Mon, 18 May 2015 17:14:11 +0000 (13:14 -0400)]
DR 1391
DR 1391
* pt.c (type_unification_real): Check convertibility here.
(unify_one_argument): Not here.
From-SVN: r223301
Jason Merrill [Mon, 18 May 2015 17:14:04 +0000 (13:14 -0400)]
tree.c (strip_typedefs_expr): Fix typo.
* tree.c (strip_typedefs_expr) [TRAIT_EXPR]: Fix typo.
(strip_typedefs) [DECLTYPE_TYPE]: Fix typedef of decltype.
[TREE_LIST]: Fix no-change case.
From-SVN: r223300
Jason Merrill [Mon, 18 May 2015 17:13:59 +0000 (13:13 -0400)]
* ptree.c (cxx_print_xnode): Handle TRAIT_EXPR.
From-SVN: r223299
Uros Bizjak [Mon, 18 May 2015 16:34:23 +0000 (18:34 +0200)]
re PR rtl-optimization/57032 (internal compiler error: Max. number of generated reload insns per insn is achieved (90))
PR target/57032
* config/alpha/constraints.md (Q): Rewrite as define_memory_constraint.
Check for a memory location that is not a reference (using an AND)
to an unaligned location here.
* config/alpha/predicates.md (normal_memory_operand): Remove.
Co-Authored-By: Richard Henderson <rth@redhat.com>
From-SVN: r223298
Tom de Vries [Mon, 18 May 2015 15:44:55 +0000 (15:44 +0000)]
check_GNU_style.sh: Don't do 80 char check line by line
2015-05-18 Tom de Vries <tom@codesourcery.com>
* check_GNU_style.sh: Add temp files tmp2 and tmp3.
(cat_with_prefix): New function, using global variable prefix.
(col): Make prefix a global variable. Rewrite to process file at a time
rather than line at a time. Print part longer than 80 chars in red.
From-SVN: r223297
Alex Velenko [Mon, 18 May 2015 14:38:41 +0000 (14:38 +0000)]
arm.md (andsi_not_shiftsi_si_scc): New pattern.
gcc/config
2015-05-18 Alex Velenko <Alex.Velenko@arm.com>
* arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
(andsi_not_shiftsi_si_scc_no_reuse): New pattern.
gcc/testsuite
2015-05-18 Alex Velenko <Alex.Velenko@arm.com>
* gcc.target/arm/bics_1.c : New testcase.
* gcc.target/arm/bics_2.c : New testcase.
* gcc.target/arm/bics_3.c : New testcase.
* gcc.target/arm/bics_4.c : New testcase.
From-SVN: r223295
Robert Suchanek [Mon, 18 May 2015 14:32:19 +0000 (14:32 +0000)]
Fix ICE when both micromips and nomicromips attributes are used.
gcc/ChangeLog:
2015-05-18 Robert Suchanek <robert.suchanek@imgtec.com>
* config/mips/mips.c (micromips_globals): New variable.
(mips_set_compression_mode): Save and reinitialize target-dependent
state for microMIPS.
gcc/testsuite/ChangeLog:
2015-05-18 Robert Suchanek <robert.suchanek@imgtec.com>
* gcc.target/mips/umips-attr.c: New test.
From-SVN: r223294
Martin Liska [Mon, 18 May 2015 09:05:15 +0000 (11:05 +0200)]
IPA ICF: add support for debug counter.
* dbgcnt.def: Add new counter.
* ipa-icf.c (sem_item_optimizer::merge_classes): Use the
counter.
From-SVN: r223288
Martin Liska [Mon, 18 May 2015 09:03:28 +0000 (11:03 +0200)]
dbgcnt: enhance behavior.
* dbgcnt.def: Sort counters.
* opts.c (common_handle_option): Do not compile if
-fdbg-cnt-list is enabled.
From-SVN: r223287
Tom de Vries [Mon, 18 May 2015 08:19:29 +0000 (08:19 +0000)]
Move array-type va_list handling to build_va_arg
2015-05-18 Tom de Vries <tom@codesourcery.com>
* gimplify.c (gimplify_modify_expr): Remove do_deref handling.
(gimplify_va_arg_expr): Remove do_deref handling. Remove adding of
address operator to va_list operand.
* tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand
unconditionally.
* config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
operand.
* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same.
* config/s390/s390.c (s390_gimplify_va_arg): Same.
* config/spu/spu.c (spu_gimplify_va_arg_expr): Same.
* c-common.c (build_va_arg_1): New function.
(build_va_arg): Add address operator to va_list operand if necessary.
From-SVN: r223286
Tom de Vries [Mon, 18 May 2015 08:14:09 +0000 (08:14 +0000)]
Fix whitespace in tree-ssa-tail-merge.c
2015-05-18 Tom de Vries <tom@codesourcery.com>
* tree-ssa-tail-merge.c: Fix whitespace.
From-SVN: r223285
Tom de Vries [Mon, 18 May 2015 07:07:44 +0000 (07:07 +0000)]
check_GNU_style.sh: Don't cat empty file
2015-05-18 Tom de Vries <tom@codesourcery.com>
* check_GNU_style.sh (g, ag, vg): Don't cat empty file.
From-SVN: r223284
Tom de Vries [Mon, 18 May 2015 07:07:36 +0000 (07:07 +0000)]
check_GNU_style.sh: Declare local vars with local
2015-05-18 Tom de Vries <tom@codesourcery.com>
* check_GNU_style.sh (g, ag, vg, col): Declare local vars with local.
From-SVN: r223283