platform/upstream/linaro-gcc.git
9 years agoThese testcases require disabling hardware vector support on S/390.
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223400 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoS/390 Add zvector testcases.
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223399 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoS/390 zvector builtin support.
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223398 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoS/390 Add vector scalar instruction support.
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223397 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoS/390: Vector base support - testcases
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223396 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoS/390 Vector base support.
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223395 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoS/390 Add -march/-mtune=z13 option.
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223393 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoS/390: Make shift_count_or_setmem_operand predicate to check for mode.
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223392 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * tree.c (verify_type_variant): Fix #undef.
hubicka [Tue, 19 May 2015 17:17:21 +0000 (17:17 +0000)]
* 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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223391 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR middle-end/66199
jakub [Tue, 19 May 2015 16:16:15 +0000 (16:16 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223387 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2015-05-19 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Tue, 19 May 2015 15:56:35 +0000 (15:56 +0000)]
2015-05-19  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vqshrun_n.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223386 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2015-05-19 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Tue, 19 May 2015 15:55:19 +0000 (15:55 +0000)]
2015-05-19  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vqshrn_n.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223385 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2015-05-19 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Tue, 19 May 2015 15:53:46 +0000 (15:53 +0000)]
2015-05-19  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vqshlu_n.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223384 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Tue, 19 May 2015 15:52:28 +0000 (15:52 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223383 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2015-05-19 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Tue, 19 May 2015 15:52:01 +0000 (15:52 +0000)]
2015-05-19  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vqshl_n.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223382 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2015-05-19 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Tue, 19 May 2015 15:50:39 +0000 (15:50 +0000)]
2015-05-19  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vqshl.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223381 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2015-05-19 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Tue, 19 May 2015 15:49:29 +0000 (15:49 +0000)]
2015-05-19  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vqrshrun_n.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223380 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2015-05-19 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Tue, 19 May 2015 15:48:15 +0000 (15:48 +0000)]
2015-05-19  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vqrshrn_n.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223379 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2015-05-19 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Tue, 19 May 2015 15:46:48 +0000 (15:46 +0000)]
2015-05-19  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vqrshl.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223377 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2015-05-19 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Tue, 19 May 2015 15:45:15 +0000 (15:45 +0000)]
2015-05-19  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vqrdmulh_n.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223376 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2015-05-19 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Tue, 19 May 2015 15:43:58 +0000 (15:43 +0000)]
2015-05-19  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vqrdmulh_lane.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223375 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2015-05-19 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Tue, 19 May 2015 15:42:33 +0000 (15:42 +0000)]
2015-05-19  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vqrdmulh.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223374 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2015-05-19 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Tue, 19 May 2015 15:40:35 +0000 (15:40 +0000)]
2015-05-19  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vqmovun.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223373 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2015-05-19 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Tue, 19 May 2015 15:38:59 +0000 (15:38 +0000)]
2015-05-19  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vqmovn.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223372 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * config/alpha/alpha.c (alpha_legitimize_reload_address)
uros [Tue, 19 May 2015 15:09:09 +0000 (15:09 +0000)]
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223371 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agooptabs: Fix vec_perm -> V16QI middle end lowering.
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223369 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoS/390 Fix secondary reload issue with store/load relative operands.
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223368 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agorecog: Increase max number of alternatives.
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223367 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR tree-optimization/66187
jakub [Tue, 19 May 2015 13:54:32 +0000 (13:54 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223366 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoReplace line_map union with C++ class hierarchy
dmalcolm [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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223365 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoAdd cpu_defines.h for ARM.
ramana [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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223361 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR target/66156
nickc [Tue, 19 May 2015 11:42:44 +0000 (11:42 +0000)]
PR target/66156
* config/msp430/msp430.md (zero_extendhisi2): Add support for
separate source and destination registers.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223354 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoFix gcc.dg/vect/bb-slp-35.c on SPARC
ro [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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223353 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * plugin/plugin-nvptx.c (nvptx_get_num_devices): Return zero
jules [Tue, 19 May 2015 11:06:31 +0000 (11:06 +0000)]
* plugin/plugin-nvptx.c (nvptx_get_num_devices): Return zero
on cuInit failure.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223352 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2015-05-19 Richard Biener <rguenther@suse.de>
rguenth [Tue, 19 May 2015 09:36:35 +0000 (09:36 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223349 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
ebotcazou [Tue, 19 May 2015 09:33:27 +0000 (09:33 +0000)]
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223348 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[calls.c] Remove #ifdef checks on STACK_GROWS_DOWNWARD
ktkachov [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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223347 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
olegendo [Tue, 19 May 2015 08:00:41 +0000 (08:00 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223346 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Tue, 19 May 2015 07:11:37 +0000 (07:11 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223344 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Tue, 19 May 2015 07:11:18 +0000 (07:11 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223343 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Tue, 19 May 2015 07:10:42 +0000 (07:10 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223342 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Tue, 19 May 2015 07:10:30 +0000 (07:10 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223341 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Tue, 19 May 2015 07:10:15 +0000 (07:10 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223340 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Tue, 19 May 2015 07:09:42 +0000 (07:09 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223339 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Tue, 19 May 2015 07:09:23 +0000 (07:09 +0000)]
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 ",".

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223338 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Tue, 19 May 2015 07:09:06 +0000 (07:09 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223337 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Tue, 19 May 2015 07:08:49 +0000 (07:08 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223336 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
amodra [Tue, 19 May 2015 06:10:58 +0000 (06:10 +0000)]
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223335 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
prachigodbole [Tue, 19 May 2015 05:06:03 +0000 (05:06 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223334 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoUse std::swap instead of explicit swaps
miyuki [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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223332 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoDaily bump.
gccadmin [Tue, 19 May 2015 00:16:14 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223330 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
kargl [Mon, 18 May 2015 23:26:38 +0000 (23:26 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223326 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
kargl [Mon, 18 May 2015 23:09:49 +0000 (23:09 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223325 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
kargl [Mon, 18 May 2015 22:52:52 +0000 (22:52 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223324 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
kargl [Mon, 18 May 2015 22:21:08 +0000 (22:21 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223322 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
kargl [Mon, 18 May 2015 22:06:48 +0000 (22:06 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223321 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
kargl [Mon, 18 May 2015 21:52:03 +0000 (21:52 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223320 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
kargl [Mon, 18 May 2015 21:16:05 +0000 (21:16 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223318 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * sv.po: Update.
jsm28 [Mon, 18 May 2015 21:06:01 +0000 (21:06 +0000)]
* sv.po: Update.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223316 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
kargl [Mon, 18 May 2015 21:04:33 +0000 (21:04 +0000)]
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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223315 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoRevert:
jason [Mon, 18 May 2015 20:22:14 +0000 (20:22 +0000)]
Revert:
* Makefile.in (GCC_WARN_CXXFLAGS): Add -std=c++98.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223314 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
kargl [Mon, 18 May 2015 19:25:49 +0000 (19:25 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223313 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * Makefile.in (GCC_WARN_CXXFLAGS): Add -std=c++98.
jason [Mon, 18 May 2015 19:21:54 +0000 (19:21 +0000)]
* Makefile.in (GCC_WARN_CXXFLAGS): Add -std=c++98.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223312 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
kargl [Mon, 18 May 2015 18:59:48 +0000 (18:59 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223309 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2015-05-18 Andreas Tobler <andreast@gcc.gnu.org>
andreast [Mon, 18 May 2015 18:37:18 +0000 (18:37 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223308 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * pt.c (retrieve_specialization): Make sure our arguments have
jason [Mon, 18 May 2015 18:08:53 +0000 (18:08 +0000)]
* pt.c (retrieve_specialization): Make sure our arguments have
gone through strip_typedefs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223305 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * pt.c (tsubst_decl) [VAR_DECL]: Call coerce_innermost_template_parms.
jason [Mon, 18 May 2015 18:08:48 +0000 (18:08 +0000)]
* pt.c (tsubst_decl) [VAR_DECL]: Call coerce_innermost_template_parms.
(determine_specialization): Call coerce_template_parms.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223304 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago DR 1391
jason [Mon, 18 May 2015 17:14:11 +0000 (17:14 +0000)]
DR 1391
* pt.c (type_unification_real): Check convertibility here.
(unify_one_argument): Not here.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223301 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * tree.c (strip_typedefs_expr) [TRAIT_EXPR]: Fix typo.
jason [Mon, 18 May 2015 17:14:04 +0000 (17:14 +0000)]
* tree.c (strip_typedefs_expr) [TRAIT_EXPR]: Fix typo.
(strip_typedefs) [DECLTYPE_TYPE]: Fix typedef of decltype.
[TREE_LIST]: Fix no-change case.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223300 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * ptree.c (cxx_print_xnode): Handle TRAIT_EXPR.
jason [Mon, 18 May 2015 17:13:59 +0000 (17:13 +0000)]
* ptree.c (cxx_print_xnode): Handle TRAIT_EXPR.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223299 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR target/57032
uros [Mon, 18 May 2015 16:34:23 +0000 (16:34 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223298 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agocheck_GNU_style.sh: Don't do 80 char check line by line
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223297 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/config
avelenko [Mon, 18 May 2015 14:38:41 +0000 (14:38 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223295 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoFix ICE when both micromips and nomicromips attributes are used.
rts [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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223294 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoIPA ICF: add support for debug counter.
marxin [Mon, 18 May 2015 09:05:15 +0000 (09:05 +0000)]
IPA ICF: add support for debug counter.

* dbgcnt.def: Add new counter.
* ipa-icf.c (sem_item_optimizer::merge_classes): Use the
counter.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223288 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agodbgcnt: enhance behavior.
marxin [Mon, 18 May 2015 09:03:28 +0000 (09:03 +0000)]
dbgcnt: enhance behavior.

* dbgcnt.def: Sort counters.
* opts.c (common_handle_option): Do not compile if
-fdbg-cnt-list is enabled.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223287 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoMove array-type va_list handling to build_va_arg
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223286 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoFix whitespace in tree-ssa-tail-merge.c
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223285 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agocheck_GNU_style.sh: Don't cat empty file
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223284 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agocheck_GNU_style.sh: Declare local vars with local
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223283 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agocheck_GNU_style.sh: Improve readability function calls
vries [Mon, 18 May 2015 07:07:27 +0000 (07:07 +0000)]
check_GNU_style.sh: Improve readability function calls

2015-05-18  Tom de Vries  <tom@codesourcery.com>

* check_GNU_style.sh: Improve readability function calls.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223282 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
wilson [Mon, 18 May 2015 03:14:54 +0000 (03:14 +0000)]
gcc/
* doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
cortex-a17, and cortex-a17.cortex-a7.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223281 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoDaily bump.
gccadmin [Mon, 18 May 2015 00:16:20 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223280 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * gcc.dg/20150120-1.c (dg-final): Cleanup original tree dump.
uros [Sun, 17 May 2015 21:49:19 +0000 (21:49 +0000)]
* gcc.dg/20150120-1.c (dg-final): Cleanup original tree dump.
* gcc.dg/20150120-2.c (dg-final): Ditto.
* gcc.dg/20150120-2.c (dg-final): Ditto.
* gfortran.dg/inline_matmul_1.f90 (dg-final): Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223276 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * gcc.target/i386/pr66174.c: New test.
uros [Sun, 17 May 2015 21:45:40 +0000 (21:45 +0000)]
* gcc.target/i386/pr66174.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223275 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
olegendo [Sun, 17 May 2015 21:01:29 +0000 (21:01 +0000)]
gcc/
PR target/54236
* config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223274 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2015-05-17 François Dumont <fdumont@gcc.gnu.org>
fdumont [Sun, 17 May 2015 20:14:53 +0000 (20:14 +0000)]
2015-05-17  François Dumont  <fdumont@gcc.gnu.org>

* include/bits/unordered_map.h (unordered_map, unordered_multimap): Add
missing constructors.
* include/bits/unordered_set.h (unordered_set, unordered_multiset):
Likewise.
* include/debug/unordered_map (unordered_map, unordered_multimap): Add
missing constructors.
* include/debug/unordered_set (unordered_set, unordered_multiset):
Likewise.
* include/profile/unordered_map (unordered_map, unordered_multimap): Add
missing constructors.
* include/profile/unordered_set (unordered_set, unordered_multiset):
Likewise.
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223273 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR target/66174
uros [Sun, 17 May 2015 15:08:16 +0000 (15:08 +0000)]
PR target/66174
* config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
QImode inner modes for TARGET_AVX512BW.  Force mask operand
to a register for AVX512F modes.

testsuite/ChangeLog:

PR target/66174
* gcc.target/i386/pr66174.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223269 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2015-05-17 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Sun, 17 May 2015 13:45:07 +0000 (13:45 +0000)]
2015-05-17  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/37131
* gfortran.dg/matmul_bounds_6.f90:  New test.
* gfortran.dg/matmul_bounds_7.f90:  New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223268 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoDaily bump.
gccadmin [Sun, 17 May 2015 00:16:20 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223265 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoFT32 target added. Approved by Jeff Law [law@redhat.com]
jamesbowman [Sat, 16 May 2015 23:49:08 +0000 (23:49 +0000)]
FT32 target added. Approved by Jeff Law [law@redhat.com]

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223261 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * toplev.c (emit_debug_global_declarations): Do not output debug info
hubicka [Sat, 16 May 2015 23:20:49 +0000 (23:20 +0000)]
* toplev.c (emit_debug_global_declarations): Do not output debug info
when doing slim LTO objects.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223260 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
hubicka [Sat, 16 May 2015 23:19:23 +0000 (23:19 +0000)]
* ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
odr_types_equivalent_p): Declare.
(odr_type_p): Use gcc_checking_assert.
(type_in_anonymous_namespace_p) Declare.
(type_with_linkage_p): Declare.
* common.opt (Wlto-type-mismatch): New warning.
* ipa-devirt.c (compound_type_base): New function.
(odr_or_derived_type_p): New function.
(odr_types_equivalent_p): New function.
(add_type_duplicate): Simplify.
(type_with_linkage_p): Add hack to prevent false positives on C types
(type_in_anonymous_namespace_p): Likewise.
* tree.c (need_assembler_name_p): Use type_with_linkage.
* tree.h (type_in_anonymous_namespace_p): Remove.
* doc/invoke.texi (-Wlto-type-mismatch): Document

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223259 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
hubicka [Sat, 16 May 2015 23:18:29 +0000 (23:18 +0000)]
* ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
odr_types_equivalent_p): Declare.
(odr_type_p): Use gcc_checking_assert.
(type_in_anonymous_namespace_p) Declare.
(type_with_linkage_p): Declare.
* common.opt (Wlto-type-mismatch): New warning.
* ipa-devirt.c (compound_type_base): New function.
(odr_or_derived_type_p): New function.
(odr_types_equivalent_p): New function.
(add_type_duplicate): Simplify.
(type_with_linkage_p): Add hack to prevent false positives on C types
(type_in_anonymous_namespace_p): Likewise.
* tree.c (need_assembler_name_p): Use type_with_linkage.
* tree.h (type_in_anonymous_namespace_p): Remove.
* doc/invoke.texi (-Wlto-type-mismatch): Document

* lto-symtab.c (warn_type_compatibility_p): Break out from ...;
compare ODR types (if available) and function types.
(lto_symtab_merge): ... here; output ODR violation warnings
and call warn_types_mismatch.

* gfortran.dg/lto/20091028-2_1.c: Fix return value.
* gfortran.dg/lto/pr41576_1.f90: Add interface.
* gfortran.dg/lto/pr41521_0.f90: Disable lto-type-mismatch
* gfortran.dg/lto/pr60635_0.f90: Disable lto-type-mismatch.
* gfortran.dg/lto/20091028-1_1.c: Fix return type.
* gcc.dg/lto/20120723_0.c: Disbale lto-type-mismatch.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223258 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * tree.c (verify_type_variant): Verify tree_base and type_common flags.
hubicka [Sat, 16 May 2015 20:51:50 +0000 (20:51 +0000)]
* tree.c (verify_type_variant): Verify tree_base and type_common flags.
(verify_type): Verify STRING_FLAG.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223252 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2015-05-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
jvdelisle [Sat, 16 May 2015 17:51:41 +0000 (17:51 +0000)]
2015-05-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/65903
* gfortran.dg/continuation_13.f90: Update test.
* gfortran.dg/pr65903.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223249 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2015-05-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
jvdelisle [Sat, 16 May 2015 17:44:15 +0000 (17:44 +0000)]
2015-05-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/65903
* io.c (format_lex): Change to NONSTRING when checking for
possible doubled quote.
* scanner.c (gfc_next_char_literal): Revert change from 64506
and add a check for quotes and return.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223248 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agolibiberty/ChangeLog:
ibuclaw [Sat, 16 May 2015 16:50:30 +0000 (16:50 +0000)]
libiberty/ChangeLog:

2015-05-16  Iain Buclaw  <ibuclaw@gdcproject.org>

* d-demangle.c (dlang_symbol_kinds): New enum.
(dlang_parse_symbol): Update signature.  Handle an ambiguity between
pascal functions and template value arguments.  Only check for a type
if parsing a function, or at the top level.  Return failure if the
entire symbol was not successfully demangled.
(dlang_identifier): Update signature.  Handle an ambiguity between two
adjacent digits in a mangled symbol string.
(dlang_type): Update call to dlang_parse_symbol.
(dlang_template_args): Likewise.
(dlang_parse_template): Likewise.
(dlang_demangle): Likewise.
* testsuite/d-demangle-expected: Fix bad tests found, and add problematic
examples to the unittests.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223247 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agolibiberty/ChangeLog:
ibuclaw [Sat, 16 May 2015 16:50:19 +0000 (16:50 +0000)]
libiberty/ChangeLog:

2015-05-16  Iain Buclaw  <ibuclaw@gdcproject.org>

* d-demangle.c (dlang_template_args): Skip over specialized template
parameters in mangled symbol.
* testsuite/d-demangle-expected: Add coverage and unittest for specialized
template parameters.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223246 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agolibiberty/ChangeLog:
ibuclaw [Sat, 16 May 2015 16:50:08 +0000 (16:50 +0000)]
libiberty/ChangeLog:

2015-05-16  Iain Buclaw  <ibuclaw@gdcproject.org>

* d-demangle.c (dlang_type): Handle cent and ucent types.
* testsuite/d-demangle-expected: Add coverage tests for cent and ucent.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@223245 138bc75d-0d04-0410-961f-82ee72b054a4