gcc.git
9 years agoAdd missing declaration.
Robert Suchanek [Wed, 20 May 2015 10:35:21 +0000 (10:35 +0000)]
Add missing declaration.

gcc/
* config/mips/mips.h (micromips_globals): Declare.

From-SVN: r223438

9 years agoc-pragma.c: Use VAR_OR_FUNCTION_DECL_P throughout.
Marek Polacek [Wed, 20 May 2015 10:10:07 +0000 (10:10 +0000)]
c-pragma.c: Use VAR_OR_FUNCTION_DECL_P throughout.

* c-pragma.c: Use VAR_OR_FUNCTION_DECL_P throughout.
* c-common.c: Likewise.

* c-decl.c: Use VAR_OR_FUNCTION_DECL_P throughout.
* c-typeck.c: Likewise.

From-SVN: r223437

9 years agoIntroduce TV_INITIALIZE_RTL
David Malcolm [Wed, 20 May 2015 09:23:36 +0000 (09:23 +0000)]
Introduce TV_INITIALIZE_RTL

gcc/ChangeLog:
* timevar.def (TV_INITIALIZE_RTL): New.
* toplev.c (initialize_rtl): Use an auto_timevar to account this
function's time to TV_INITIALIZE_RTL.

From-SVN: r223436

9 years agolibcpp: Eliminate most of the non-const/reference-returning inline fns
David Malcolm [Wed, 20 May 2015 09:13:19 +0000 (09:13 +0000)]
libcpp: Eliminate most of the non-const/reference-returning inline fns

gcc/java/ChangeLog:
* jcf-parse.c (set_source_filename): Replace write through
ORDINARY_MAP_FILE_NAME with direct access to "to_file".

libcpp/ChangeLog:
* include/line-map.h (MAP_START_LOCATION): Eliminate the non-const
variant, and tweak comment for the const variant.
(ORDINARY_MAP_STARTING_LINE_NUMBER): Drop the non-const variant.
(ORDINARY_MAP_INCLUDER_FILE_INDEX): Likewise.
(ORDINARY_MAP_IN_SYSTEM_HEADER_P): Likewise.
(SET_ORDINARY_MAP_NUMBER_OF_COLUMN_BITS): Delete.
(ORDINARY_MAP_FILE_NAME): Drop the non-const variant.
(MACRO_MAP_MACRO): Likewise.
(MACRO_MAP_NUM_MACRO_TOKENS): Likewise.
(MACRO_MAP_LOCATIONS): Likewise.
(MACRO_MAP_EXPANSION_POINT_LOCATION): Likewise.
* line-map.c (linemap_add): Replace writes through macros with
direct field accesses.
(linemap_enter_macro): Likewise.
(linemap_line_start): Likewise.

From-SVN: r223435

9 years agotree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless gimple_build_nop...
Ilya Enkovich [Wed, 20 May 2015 08:23:00 +0000 (08:23 +0000)]
tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless gimple_build_nop calls.

* tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless
gimple_build_nop calls.
(chkp_find_bounds_for_elem): Likewise.
(chkp_get_zero_bounds): Likewise.
(chkp_get_none_bounds): Likewise.
(chkp_get_bounds_by_definition): Likewise.
(chkp_generate_extern_var_bounds): Likewise.
(chkp_get_bounds_for_decl_addr): Likewise.
(chkp_get_bounds_for_string_cst): Likewise.

From-SVN: r223434

9 years agore PR tree-optimization/65447 (AArch64: iv-opt causes bad addressing)
Bin Cheng [Wed, 20 May 2015 05:15:56 +0000 (05:15 +0000)]
re PR tree-optimization/65447 (AArch64: iv-opt causes bad addressing)

PR tree-optimization/65447
* tree-ssa-loop-ivopts.c (struct iv_use): New fields.
(dump_use, dump_uses): Support to dump sub use.
(record_use): New parameters to support sub use.  Remove call to
dump_use.
(record_sub_use, record_group_use): New functions.
(compute_max_addr_offset, split_all_small_groups): New functions.
(group_address_uses, rewrite_use_address): New functions.
(strip_offset): New declaration.
(find_interesting_uses_address): Call record_group_use.
(add_candidate): New assertion.
(infinite_cost_p): Move definition forward.
(add_costs): Check INFTY cost and return immediately.
(get_computation_cost_at): Clear setup cost and dependent bitmap
for sub uses.
(determine_use_iv_cost_address): Compute cost for sub uses.
(rewrite_use_address_1): Rename from old rewrite_use_address.
(free_loop_data): Free sub uses.
(tree_ssa_iv_optimize_loop): Call group_address_uses.

gcc/testsuite
PR tree-optimization/65447
* gcc.dg/tree-ssa/pr65447.c: New test.

From-SVN: r223433

9 years agoaarch-common-protos.h (struct mem_cost_table): Added new fields loadv and storev.
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

9 years agotree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread instead of open...
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

9 years agore PR c++/65954 (gcc segfaults on the following input with a syntax error)
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

9 years agors6000.c (rs6000_emit_allocate_stack): Return stack adjusting insn.
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

9 years agors6000-common.c (TARGET_SUPPORTS_SPLIT_STACK): Define.
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

9 years agors6000.c (struct rs6000_stack): Correct comments.
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

9 years agors6000.c (rs6000_stack_info): Don't zero offsets when not saving registers.
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

9 years agofixup hash table descriptor in winnt.c
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

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

From-SVN: r223422

9 years agoconfig.gcc [...]: Allow --enable-targets=all to build a biarch toolchain again.
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

9 years agopr64366.c: Remove -m4 -ml from dg-options.
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

9 years agostl_list.h (_M_resize_pos(size_type&)): Declare.
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

9 years agoipa-devirt.c (type_in_anonymous_namespace_p): Return true or implicit declarations.
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

9 years ago* c-typeck.c (start_init): Use AGGREGATE_TYPE_P.
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

9 years ago66055.cc: Add constructor invocations.
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

9 years agoMakefile.in (LIBUNWIND): Move dependency for shared libgcc.
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

9 years agostor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
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

9 years agoS/390 Invalid vector binary ops
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

9 years agoS/390 vector types are only 8 byte aligned.
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

9 years agoloop-invariant.c (create_new_invariant): Don't calculate address cost if mode is...
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

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

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

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

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

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

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

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

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

9 years agotree.c (verify_type_variant): Fix #undef.
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

9 years agore PR middle-end/66199 (lastprivate/linear clause issues on combined constructs)
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

9 years agovqshrun_n.c: New file.
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

9 years agovqshrn_n.c: New file.
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

9 years agovqshlu_n.c: New file.
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

9 years agocris.c (cris_expand_prologue): Use gen_raw_REG instead of gen_rtx_raw_REG.
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

9 years agovqshl_n.c: New file.
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

9 years agovqshl.c: New file.
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

9 years agovqrshrun_n.c: New file.
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

9 years agovqrshrn_n.c: New file.
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

9 years agovqrshl.c: New file.
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

9 years agovqrdmulh_n.c: New file.
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

9 years agovqrdmulh_lane.c: New file.
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

9 years agovqrdmulh.c: New file.
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

9 years agovqmovun.c: New file.
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

9 years agovqmovn.c: New file.
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

9 years ago* config/alpha/alpha.c (alpha_legitimize_reload_address)
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

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

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

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

9 years agore PR rtl-optimization/66187 (wrong code at -O1, -O2 and -O3 on x86_64-linux-gnu)
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

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

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

9 years agore PR rtl-optimization/66156 ([msp430] wrong code generated with -O2 -mlarge (zero...
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

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

9 years agoplugin-nvptx.c (nvptx_get_num_devices): Return zero on cuInit failure.
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

9 years agore PR tree-optimization/66165 (vect_transform_slp_perm_load: vec out of range ?)
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

9 years agoinsn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
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

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

9 years agore PR target/54236 ([SH] Improve addc and subc insn utilization)
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

9 years agobitmap.c (bitmap_set_range): Handle count==1 specially.
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

9 years agoregs.h (END_HARD_REGNO): Delete.
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

9 years agortl.h (reg_info): Add an nregs field.
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

9 years agortl.h (PUT_MODE_RAW): New macro.
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

9 years agocaller-save.c (init_caller_save): Use word_mode and FIRST_PSEUDO_REGISTER when creati...
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

9 years agortl.def (REG): Change format to "r".
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

9 years agodf.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
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

9 years agortl.h (REG_NREGS): New macro
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

9 years agocfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
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

9 years agopredicates.md (gpc_reg_operand): Don't allow all hard registers numbered greater...
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

9 years agomips.md (JOIN_MODE): New mode iterator.
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

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

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

From-SVN: r223330

9 years agore PR fortran/66057 (ICE for incomplete generic statement (gfc_match_generic))
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

9 years agore PR fortran/66057 (ICE for incomplete generic statement (gfc_match_generic))
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

9 years agore PR fortran/66052 (Segmentation fault for misplaced protected statement)
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

9 years agore PR fortran/66045 (ICE on incorrect code with null)
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

9 years agore PR fortran/66044 (ICE on misplaced entry statement)
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

9 years agore PR fortran/66043 (ICE on storage_size of null or output of null array)
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

9 years agore PR fortran/66040 (ICE on misplaced sequence in function)
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

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

From-SVN: r223316

9 years agore PR fortran/66039 (ICE on incomplete parentheses at rewind, flush, endfile, backspace)
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

9 years agorevert: Makefile.in (GCC_WARN_CXXFLAGS): Add -std=c++98.
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

9 years agore PR fortran/64925 (ICE with same names for dummy arg and internal procedure)
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

9 years ago* Makefile.in (GCC_WARN_CXXFLAGS): Add -std=c++98.
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

9 years agopr41521_0.f90: Move INTERFACE statement in program unit.
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

9 years agofreebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build pie executables.
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

9 years agopt.c (retrieve_specialization): Make sure our arguments have gone through strip_typedefs.
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

9 years agopt.c (tsubst_decl): Call coerce_innermost_template_parms.
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

9 years agoDR 1391
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

9 years agotree.c (strip_typedefs_expr): Fix typo.
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

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

From-SVN: r223299

9 years agore PR rtl-optimization/57032 (internal compiler error: Max. number of generated reloa...
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

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

9 years agoarm.md (andsi_not_shiftsi_si_scc): New pattern.
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

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