1. 17 Jul, 2015 20 commits
    • re PR fortran/52846 ([F2008] Support submodules) · 3d91b817
      2015-07-17  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/52846
      	* decl.c (gfc_match_end): Pick out declared submodule name from
      	the composite identifier.
      	* gfortran.h : Add 'submodule_name' to gfc_use_list structure.
      	* module.c (gfc_match_submodule): Define submodule_name and add
      	static 'submodule_name'.
      	(gfc_match_submodule): Build up submodule filenames, using '@'
      	as a delimiter. Store the output filename in 'submodule_name'.
      	Similarly, the submodule identifier is built using '.' as an
      	identifier.
      	(gfc_dump_module): If current state is COMP_SUBMODULE, write
      	to file 'submodule_name', using SUBMODULE_EXTENSION.
      	(gfc_use_module): Similarly, use the 'submodule_name' field in
      	the gfc_use_list structure and SUBMODULE_EXTENSION to read the
      	implicitly used submodule files.
      
      2015-07-17  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/52846
      	* lib/fortran-modules.exp (proc cleanup-submodules): New
      	procedure.
      	* gfortran.dg/submodule_1.f08: Change extension and clean up
      	the submodule files.
      	* gfortran.dg/submodule_2.f08: ditto
      	* gfortran.dg/submodule_6.f08: ditto
      	* gfortran.dg/submodule_7.f08: ditto
      	* gfortran.dg/submodule_8.f08: New test
      	* gfortran.dg/submodule_9.f08: New test
      
      From-SVN: r225947
      Paul Thomas committed
    • re PR fortran/52846 ([F2008] Support submodules) · 09155f69
      2015-07-17  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/52846
      	* decl.c (gfc_match_end): Pick out declared submodule name from
      	the composite identifier.
      	* gfortran.h : Add 'submodule_name' to gfc_use_list structure.
      	* module.c (gfc_match_submodule): Define submodule_name and add
      	static 'submodule_name'.
      	(gfc_match_submodule): Build up submodule filenames, using '@'
      	as a delimiter. Store the output filename in 'submodule_name'.
      	Similarly, the submodule identifier is built using '.' as an
      	identifier.
      	(gfc_dump_module): If current state is COMP_SUBMODULE, write
      	to file 'submodule_name', using SUBMODULE_EXTENSION.
      	(gfc_use_module): Similarly, use the 'submodule_name' field in
      	the gfc_use_list structure and SUBMODULE_EXTENSION to read the
      	implicitly used submodule files.
      
      2015-07-17  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/52846
      	* lib/fortran-modules.exp (proc cleanup-submodules): New
      	procedure.
      	* gfortran.dg/submodule_1.f08: Change extension and clean up
      	the submodule files.
      	* gfortran.dg/submodule_2.f08: ditto
      	* gfortran.dg/submodule_6.f08: ditto
      	* gfortran.dg/submodule_7.f08: ditto
      	* gfortran.dg/submodule_8.f08: New test
      	* gfortran.dg/submodule_9.f08: New test
      
      From-SVN: r225946
      Paul Thomas committed
    • re PR fortran/52846 ([F2008] Support submodules) · 3d5dc929
      2015-07-17  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/52846
      	* decl.c (gfc_match_end): Pick out declared submodule name from
      	the composite identifier.
      	* gfortran.h : Add 'submodule_name' to gfc_use_list structure.
      	* module.c (gfc_match_submodule): Define submodule_name and add
      	static 'submodule_name'.
      	(gfc_match_submodule): Build up submodule filenames, using '@'
      	as a delimiter. Store the output filename in 'submodule_name'.
      	Similarly, the submodule identifier is built using '.' as an
      	identifier.
      	(gfc_dump_module): If current state is COMP_SUBMODULE, write
      	to file 'submodule_name', using SUBMODULE_EXTENSION.
      	(gfc_use_module): Similarly, use the 'submodule_name' field in
      	the gfc_use_list structure and SUBMODULE_EXTENSION to read the
      	implicitly used submodule files.
      
      2015-07-17  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/52846
      	* lib/fortran-modules.exp (proc cleanup-submodules): New
      	procedure.
      	* gfortran.dg/submodule_1.f08: Change extension and clean up
      	the submodule files.
      	* gfortran.dg/submodule_2.f08: ditto
      	* gfortran.dg/submodule_6.f08: ditto
      	* gfortran.dg/submodule_7.f08: ditto
      	* gfortran.dg/submodule_8.f08: New test
      	* gfortran.dg/submodule_9.f08: New test
      
      From-SVN: r225945
      Paul Thomas committed
    • target.c (GOMP_offload_register): Use int for device type arg. · 896c28a7
      	* target.c (GOMP_offload_register): Use int for device type arg.
      	(GOMP_offload_unregister): Likewise.
      
      From-SVN: r225944
      Nathan Sidwell committed
    • mkoffload.c (process): Constify host data. · ebe4a560
      	gcc/
      	* config/nvptx/mkoffload.c (process): Constify host data.
      	* config/i386/intelmic-mkoffload.c (generate_target_descr_file):
      	Constify host data.
      	(generate_host_descr_file): Likewise.
      
      	libgomp/
      	* target.c (struct_offload_image_descr): Constify host_table.
      	(gomp_offload_image_to_device): Likewise.
      	(GOMP_offload_register, GOMP_offload_unregister): Likewise.
      
      	libgcc/
      	* offloadstuff.c: Constify host data.
      
      From-SVN: r225943
      Nathan Sidwell committed
    • [graphite] fix pr61929 · 24757752
      This fixes bootstrap of GCC with BOOT_CFLAGS="-g -O2 -fgraphite-identity
      -floop-nest-optimize -floop-block -floop-interchange -floop-strip-mine".  It
      passes regstrap on amd64-linux.  A previous change
      (https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=213816), replaced
      isl_int with isl_val because isl_int would be deprecated. Since isl_val has
      stricter checks, it exposed the bug.  In the test case (isl_set_max_val) would
      return infinity which would remain unchecked.  We now check if the value
      returned is an integer or not, and bail out if it isn't.  The other problem was
      that we were allowing all kinds of data-refs in a scop.  Now we discard a scop
      if it has any date-ref other than (ARRAY_REF, MEM_REF, COMPONENT_REF).
      
      	PR middle-end/61929
      	* graphite-dependences.c (add_pdr_constraints): Renamed
      	pdr->extent to pdr->subscript_sizes.
      	* graphite-interchange.c (build_linearized_memory_access): Add
      	back all gcc_assert's that the "isl_int to isl_val conversion"
      	patch has removed.  Refactored.
      	(pdr_stride_in_loop): Renamed pdr->extent to pdr->subscript_sizes.
      	* graphite-poly.c (new_poly_dr): Same.
      	(free_poly_dr): Same.
      	* graphite-poly.h (struct poly_dr): Same.
      	* graphite-scop-detection.c (stmt_has_simple_data_refs_p): Ignore
      	all data references other than ARRAY_REF, MEM_REF, and COMPONENT_REF.
      	* graphite-scop-detection.h: Fix space.
      	* graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Add
      	back all gcc_assert's removed by a previous patch.
      	(wrap): Remove the_isl_ctx global variable that the same patch has
      	added.
      	(build_loop_iteration_domains): Same.
      	(add_param_constraints): Same.
      	(pdr_add_data_dimensions): Same.  Refactored.
      	(build_poly_dr): Renamed extent to subscript_sizes.
      
      testsuite/
      	PR middle-end/61929
      	* gcc.dg/graphite/pr61929.c: New.
      
      Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
      
      From-SVN: r225942
      Aditya Kumar committed
    • status_cxx2011.xml: Add caveats for native_handle. · 9298e25f
      	* doc/xml/manual/status_cxx2011.xml: Add caveats for native_handle.
      	* doc/html/manual/status.html: Regenerate.
      
      From-SVN: r225939
      Jonathan Wakely committed
    • fold-const.c (fold_binary_loc): Move A - (A & B) into ~B & A ... · f7b7b0aa
      	* fold-const.c (fold_binary_loc): Move A - (A & B) into ~B & A ...
      	* match.pd: ... here.
      
      	* gcc.dg/fold-minus-7.c: New test.
      
      From-SVN: r225938
      Marek Polacek committed
    • mkoffload.c (process): Constify target data. · afb2d80b
      	gcc/
      	* config/nvptx/mkoffload.c (process): Constify target data.
      	* config/i386/intelmic-mkoffload.c (generate_target_descr_file):
      	Constify target data.
      	(generate_target_offloadend_file): Likewise.
      
      	libgomp/
      	* libgomp.h (gomp_device_descr): Constify target data arguments.
      	* target.c (struct offload_image_descr): Constify target_data.
      	(gomp_offload_image_to_device): Likewise.
      	(GOMP_offload_register): Likewise.
      	(GOMP_offload_unrefister): Likewise.
      	* plugin/plugin-host.c (GOMP_OFFLOAD_load_image,
      	GOMP_OFFLOAD_unload_image): Constify target data.
      	* plugin/plugin-nvptx.c (struct ptx_image_data): Constify target data.
      	(GOMP_OFFLOAD_load_image, GOMP_OFFLOAD_unload_image): Likewise.
      
      	liboffloadmic/
      	* plugin/libgomp-plugin-intelmic.cpp (ImgDevAddrMap): Constify.
      	(offload_image, GOMP_OFFLOAD_load_image,
      	OMP_OFFLOAD_unload_image): Constify target data.
      
      From-SVN: r225936
      Nathan Sidwell committed
    • Fix fortran double address operator with co_reduce · 996d027a
      gcc/fortran/
      2015-07-17  Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>
      
      	* trans-intrinsic.c (conv_co_collective): Remove redundant address
      	operator in the generated code.
      
      gcc/testsuite/
      2015-07-17  Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>
      
      	* gfortran.dg/co_reduce_1.f90: New file.
      
      From-SVN: r225930
      Alessandro Fanfarillo committed
    • Add a testcase for PR target/66824 · c92f5b13
      	PR target/66824
      	* gcc.target/i386/pr66824.c:
      
      From-SVN: r225929
      H.J. Lu committed
    • re PR fortran/66035 (gfortran ICE segfault) · 255388b8
      gcc/fortran/ChangeLog:
      
      2015-07-17  Andre Vehreschild  <vehre@gcc.gnu.org>
      
      	PR fortran/66035
      	* trans-expr.c (alloc_scalar_allocatable_for_subcomponent_assignment):
      	Compute the size to allocate for class and derived type objects
      	correclty.
      	(gfc_trans_subcomponent_assign): Only allocate memory for a
      	component when the object to assign is not an allocatable class
      	object (the memory is already present for allocatable class objects).
      	Furthermore use copy_class_to_class for assigning the rhs to the
      	component (may happen for dummy class objects on the rhs).
      
      
      gcc/testsuite/ChangeLog:
      
      2015-07-17  Andre Vehreschild  <vehre@gcc.gnu.org>
      
      	PR fortran/66035
      	* gfortran.dg/structure_constructor_13.f03: New test.
      
      From-SVN: r225928
      Andre Vehreschild committed
    • Fix PR61831: Side-effect variable component deallocation · 0e1f8c6a
      gcc/fortran/
      2015-07-17  Mikael Morin  <mikael@gcc.gnu.org>
      	    Dominique d'Humieres  <dominiq@lps.ens.fr>
      
      	PR fortran/61831
      	* trans-array.c (gfc_conv_array_parameter): Guard allocatable
      	component deallocation code generation with descriptorless
      	calling convention flag.
      	* trans-expr.c (gfc_conv_expr_reference): Remove allocatable
      	component deallocation code generation from revision 212329.
      	(expr_may_alias_variables): New function.
      	(gfc_conv_procedure_call): New boolean elemental_proc to factor
      	check for procedure elemental-ness.  Rename boolean f to nodesc_arg
      	and declare it in the outer scope.  Use expr_may_alias_variables,
      	elemental_proc and nodesc_arg to decide whether generate allocatable
      	component deallocation code.
      	(gfc_trans_subarray_assign): Set deep copy flag.
      
      gcc/testsuite/
      2015-07-17  Mikael Morin  <mikael@gcc.gnu.org>
      
      	PR fortran/61831
      	* gfortran.dg/alloc_comp_auto_array_3.f90: Count the number
      	of generated while loops in the tree dump.
      	* gfortran.dg/derived_constructor_comps_6.f90: New file.
      
      
      Co-Authored-By: Dominique d'Humieres <dominiq@lps.ens.fr>
      
      From-SVN: r225926
      Mikael Morin committed
    • tree-vect-loop-manip.c (rename_variables_in_bb): Add argument to allow renaming… · a6c51a12
      tree-vect-loop-manip.c (rename_variables_in_bb): Add argument to allow renaming of PHI arguments on edges incoming from outer...
      
      gcc/
      
      	* tree-vect-loop-manip.c (rename_variables_in_bb): Add argument
      	to allow renaming of PHI arguments on edges incoming from outer
      	loop header, add corresponding check before start PHI iterator.
      	(slpeel_tree_duplicate_loop_to_edge_cfg): Introduce new bool
      	variable DUPLICATE_OUTER_LOOP and set it to true for outer loops
      	with true force_vectorize.  Set-up dominator for outer loop too.
      	Pass DUPLICATE_OUTER_LOOP as argument to rename_variables_in_bb.
      	(slpeel_can_duplicate_loop_p): Allow duplicate of outer loop if it
      	was marked with force_vectorize and has restricted cfg.
      	(slpeel_tree_peel_loop_to_edge): Do not rename exit PHI uses in
      	inner loop.
      	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
      	do peeling for outer loops.
      
      gcc/testsuite/
      
      	* gcc.dg/vect/vect-outer-simd-2.c: New test.
      
      From-SVN: r225923
      Yuri Rumyantsev committed
    • configure.ac: Move AC_ARG_WITH checks for native-system-header-dir... · 54b710be
      2015-07-17  Yvan Roux  <yvan.roux@linaro.org>
      	    Matthias Klose  <doko@ubuntu.com>
      
      	* configure.ac: Move AC_ARG_WITH checks for native-system-header-dir,
      	build-sysroot, sysroot from the `Miscenalleous configure options' to
      	the `Directories' section and strip trailing `/' from with_sysroot.
      	(gcc_gxx_include_dir): Don't strip a `/' sysroot value.
      	* configure: Regenerated.
      
      
      Co-Authored-By: Matthias Klose <doko@ubuntu.com>
      
      From-SVN: r225921
      Yvan Roux committed
    • libgcc: fix build with older make · 180744c0
      Make up to 3.80 (documented as minimal permitted version) doesn't
      support "else if...".
      
      2015-07-17  Jan Beulich  <jbeulich@suse.com>
      
      	* config/t-softfp: Split up "else ifneq".
      
      From-SVN: r225920
      Jan Beulich committed
    • re PR target/66824 (-miamcu doesn't load FP constant into register directly) · 5fa578f0
      	PR target/66824
      	* config/i386/i386.h (TARGET_HARD_SF_REGS): New define.
      	(TARGET_HARD_DF_REGS): Ditto.
      	(TARGET_HARD_XF_REGS): Ditto.
      	* config/i386/i386.md (*movxf_internal): Add alternatives 9 and 10.
      	Enable alternatives 9 and 10 only for !TARGET_HARD_XF_REG target.
      	(*movdf_internal): Add alternatives 22, 23, 24 and 25. Enable
      	alternatives 22, 23, 24 and 25 only for !TARGET_HARD_DF_REG target.
      	(*movsf_internal): Add alternatives 16 and 17. Enable
      	alternatives 16 and 17 only for !TARGET_HARD_SF_REG target.
      
      From-SVN: r225919
      Uros Bizjak committed
    • re PR rtl-optimization/66891 (ICE in expand_call, at calls.c:3407) · 5ba53785
      	PR rtl-optimization/66891
      	* calls.c (expand_call): Wrap precompute_register_parameters with
      	NO_DEFER_POP/OK_DEFER_POP to prevent deferred pops.
      
      testsuite/ChangeLog:
      
      	PR target/66891
      	* gcc.target/i386/pr66891.c: New test.
      
      From-SVN: r225918
      Uros Bizjak committed
    • Daily bump. · 92d30ce6
      From-SVN: r225916
      GCC Administrator committed
    • re PR fortran/66724 (ICE on input/output statements with wrong specifier data) · 1a6872a2
      2015-07-16  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/66724
      	PR fortran/66724
      	* io.c (is_char_type): Call gfc_resolve_expr ().
      	(match_open_element, match_dt_element, match_inquire_element): Fix
      	ASYNCHRONOUS case.
      
      From-SVN: r225913
      Steven G. Kargl committed
  2. 16 Jul, 2015 20 commits
    • jit: Add guide for submitting patches to jit docs · 1470e75f
      gcc/jit/ChangeLog:
      	* docs/internals/index.rst (Overview of code structure): Add note
      	that the implementation is in C++, despite the .c extension.
      	(Submitting patches): New subsection.
      
      From-SVN: r225905
      David Malcolm committed
    • stl_algobase.h (__miter_base): Move... · 5bc1c07c
      2015-07-16  François Dumont  <fdumont@gcc.gnu.org>
      
      	* include/bits/stl_algobase.h (__miter_base): Move...
      	* include/bits/cpp_type_traits.h: ...here.
      	* include/debug/functions.h (__foreign_iterator_aux): Use latter.
      	* testsuite/23_containers/vector/debug/insert7_neg.cc: New.
      
      From-SVN: r225902
      François Dumont committed
    • plugin-nvptx.c (link_ptx): Constify string argument. · a4cb876d
      	libgomp/
      	* plugin/plugin-nvptx.c (link_ptx): Constify string argument.
      	Workaround driver library const error.
      	(struct nvptx_tdata, nvptx_tdata_t): New.
      	(GOMP_OFFLOAD_load_image): Use struct for target_data's real
      	type.
      
      	gcc/
      	* config/nvptx/mkoffload.c (process): Constify mapping variables.
      	Define target data struct and initialize it.
      
      From-SVN: r225897
      Nathan Sidwell committed
    • [ARM][testsuite] Do not override -mcpu in no-volatile-in-it.c · 38ef5e6a
          * gcc.target/arm/no-volatile-in-it.c: Skip if -mcpu is overriden.
      
      From-SVN: r225892
      Kyrylo Tkachov committed
    • re PR rtl-optimization/66626 (gcc.dg/torture/stackalign/non-local-goto-5.c… · b81a2f0d
      re PR rtl-optimization/66626 (gcc.dg/torture/stackalign/non-local-goto-5.c segfaults w/ -mregparm=3 or -miamcu)
      
      2015-07-16  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR rtl-optimization/66626
      	* ira.h (emit-rtl.h): Include.
      	(non_spilled_static_chain_regno_p): New.
      	* ira-color.c (setup_profitable_hard_regs): Clear profitable regs
      	unless it is non spilled static chain pseudo.
      	(assign_hard_rego): Spill memory profitable allocno unless it is
      	non spilled static chain pseudo.
      	(allocno_spill_priority_compare): Put non spilled static chain
      	pseudo at the end of sorted array.
      	(improve_allocation): Do nothing if we have static chain and
      	non-local goto.
      	(allocno__priority_compare_func): Put non spilled static chain
      	pseudo at the beginning of sorted array.
      	(move_spill_restore): Ignore non spilled static chain pseudo.
      	* ira-costs.c (find_costs_and_classes): Don't assign class NO_REGS
      	to non spilled static chain pseudo.
      	* lra-assigns.c (pseudo_compare_func): Put non spilled static chain
      	pseudo at the beginning of sorted array.
      	(spill_for): Spill non spilled static chain pseudo last.
      	* lra-constraints.c (lra_constraints): Remove static chain pseudo
      	check for equivalence.
      
      2015-07-16  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR rtl-optimization/66626
      	* gcc.target/i386/pr66626-2.c: New.
      
      From-SVN: r225891
      Vladimir Makarov committed
    • re PR ipa/66896 (ipa-prop.c:2479 runtime error: member call on null pointer of… · a7d1f3fe
      re PR ipa/66896 (ipa-prop.c:2479 runtime error: member call on null pointer of type 'struct ipa_polymorphic_call_context')
      
      Fix PR ipa/66896.
      
      	* g++.dg/ipa/pr66896.c: New test.
      	PR ipa/66896.
      	* ipa-prop.c (update_jump_functions_after_inlining): Create properly
      	dst_ctx if it does not exist.
      
      From-SVN: r225887
      Martin Liska committed
    • hash_set: add iterator and remove method. · ce7bc090
      	* hash-set.h (remove): New function.
      	(iterator): New iteration class for hash_set.
      
      From-SVN: r225885
      Martin Liska committed
    • genattrtab.c (make_canonical): Add a file_location parameter. · 281e728b
      gcc/
      	* genattrtab.c (make_canonical): Add a file_location parameter.
      	Use fatal_at rather than fatal.
      	(get_attr_value): Likewise.  Update call to make_canonical.
      	(fill_attr, make_length_attrs, optimize_attrs, gen_attr)
      	(make_internal_attr): Update calls accordingly.
      
      From-SVN: r225884
      Richard Sandiford committed
    • read-md.h (message_with_line, [...]): Delete. · 5d2d3e43
      gcc/
      	* read-md.h (message_with_line, error_with_line): Delete.
      	* read-md.c (message_with_line, error_with_line): Delete.
      	* gensupport.h: Include read-md.h.
      	(md_rtx_info): New structure.
      	(read_md_rtx): Use it.  Return a bool success value.
      	* gensupport.c (read_md_rtx): Likewise.
      	* genattr-common.c (gen_attr): Take an md_rtx_info rather than an rtx.
      	(main): Update after interface changes.
      	* genattr.c (gen_attr): Take an md_rtx_info rather than an rtx.
      	(main): Update after interface changes.
      	* genattrtab.c (insn_code_number): Delete.
      	(optimize_attrs): Add a max_insn_code parameter and use it instead
      	of insn_code_number.
      	(gen_attr): Take an md_rtx_info rather than an rtx and lineno.
      	Use *_at rather than *_with_line functions.
      	(gen_insn): Likewise.
      	(gen_delay): Likewise.
      	(gen_insn_reserv): Likewise.
      	(gen_bypass): Take an md_rtx_info rather than an rtx.
      	(main): Update after interface changes.  Use a local max_insn_code
      	variable instead of insn_code_number.
      	* genautomata.c (gen_cpu_unit): Take an md_rtx_info rather than
      	an rtx.  Use fatal_at rather than fatal.
      	(gen_query_cpu_unit, gen_bypass, gen_excl_set)
      	(gen_presence_absence_set, gen_presence_set, gen_final_presence_set)
      	(gen_absence_set, gen_final_absence_set, gen_automaton)
      	(gen_automata_option, gen_reserv, gen_insn_reserv): Likewise.
      	(main): Update after interface changes.
      	* gencodes.c (gen_insn): Take an md_rtx_info rather than an rtx
      	and code number.
      	(main): Update after interface changes.
      	* genconditions.c (main): Use new read_md_rtx interface.
      	* genconfig.c (gen_insn): Take an md_rtx_info rather than an rtx.
      	(gen_expand, gen_split, gen_peephole, gen_peephole2): Likewise.
      	(main): Update after interface changes.
      	* genemit.c (insn_code_number, insn_index_number): Delete.
      	(gen_insn): Take an md_rtx_info rather than an rtx and lineno.
      	Use fatal_at rather than fatal.
      	(gen_expand): Take an md_rtx_info rather than an rtx.  Use fatal_at
      	rather than fatal.
      	(gen_split): Likewise.
      	(main): Update after interface changes.
      	* genextract.c (line_no): Delete.
      	(gen_insn): Take an md_rtx_info rather than an rtx and lineno.
      	Update call to walk_rtx.
      	(VEC_safe_set_locstr): Add an md_rtx_info argument.  Use message_at
      	rather than message_with_line.
      	(walk_rtx): Add an md_rtx_info argument.  Update call to
      	VEC_safe_set_locstr.
      	(main): Update after interface changes.
      	* genflags.c (gen_insn): Take an md_rtx_info rather than an rtx
      	and lineno.  Use error_at rather than separate message_with_line
      	calls and have_error assignments.
      	(main): Update after interface changes.
      	* genmddump.c (main): Use new read_md_rtx interface.
      	* genopinit.c (insn): Take an md_rtx_info rather than an rtx.
      	(main): Update after interface changes.
      	* genoutput.c (next_code_number): Delete.
      	(gen_insn): Take an md_rtx_info rather than an rtx and lineno.
      	(gen_peephole, gen_expand, gen_split): Likewise.
      	(note_constraint): Likewise.  Use *_at rather than *_with_line
      	functions.
      	(main): Update after interface changes.
      	* genpeep.c (gen_peephole): Take an md_rtx_info rather than an
      	rtx and lineno.
      	(main): Update after interface changes.
      	* genpreds.c (process_define_predicate): Take an md_rtx_info rather
      	than an rtx and lineno.
      	(process_define_constraint): Likewise.
      	(process_define_register_constraint): Likewise.
      	(main): Update after interface changes.
      	* genrecog.c (next_insn_code, pattern_lineno): Delete.
      	(validate_pattern): Replace top-level rtx with an md_rtx_info.
      	Use *_at rather than *_with_line functions.
      	(match_pattern_2): Likewise.
      	(match_pattern_1, match_pattern): Add an md_rtx_info parameter.
      	(get_peephole2_pattern): Take an md_rtx_info rather than an rtvec.
      	Use *_at rather than *_with_line functions.
      	* gentarget-def.c (add_insn): New function.
      	(main): Use it.  Use new read_md_rtx interface.
      
      From-SVN: r225883
      Richard Sandiford committed
    • gensupport.h (compute_test_codes): Take a file_location rather than a line number. · c9f84f2e
      gcc/
      	* gensupport.h (compute_test_codes): Take a file_location rather
      	than a line number.
      	* gensupport.c (compute_test_codes): Likewise.  Use *_at functions
      	rather than *_with_line functions.
      	(process_define_predicate): Update call to compute_test_codes.
      	* genpreds.c (validate_exp): Take a file_location rather than a
      	line number.  Use *_at functions rather than *_with_line functions.
      	(process_define_predicate): Update call to validate_exp.
      	(constraint_data): Replace lineno field with a file_location.
      	(add_constraint): Take a file_location rather than a line number.
      	Use *_at functions rather than *_with_line functions.  Fix error
      	message for address constraints.  Update after changes to
      	validate_exp, constraint_data and compute_test_codes.
      	(process_define_constraint): Update accordingly.
      	(process_define_register_constraint): Likewise.
      
      From-SVN: r225882
      Richard Sandiford committed
    • genoutput.c (data): Use a file_location to record the source position. · ca018d3c
      gcc/
      	* genoutput.c (data): Use a file_location to record the source
      	position.
      	(nothing): Delete.
      	(idata, idata_end): Remove initialization.
      	(constraint_data): Replace lineno with a file_location.
      	(output_insn_data): Update after changes to data.
      	(gen_insn, gen_peephole, gen_expand, gen_split): Likewise.
      	(scan_operands): Likewise, using *_at rather than *_with_line
      	functions.
      	(process_template): Likewise.
      	(validate_insn_alternatives): Likewise.
      	(validate_insn_operands): Likewise.
      	(validate_optab_operands): Likewise.
      	(init_insn_for_nothing): Initialize idata and idata_end.
      	(note_constraint): Update after changes to constraint_data,
      	using at rather than with_line functions.
      	(mdep_constraint_len): Take a file_location rather than a
      	line number.  Use at rather than with_line functions.
      
      From-SVN: r225881
      Richard Sandiford committed
    • read-md.h (fatal_at): Declare. · 8f246310
      gcc/
      	* read-md.h (fatal_at): Declare.
      	* read-md.c (fatal_at): New function.
      	* genattrtab.c (insn_def, attr_desc, delay_desc): Use a file_location
      	to record the source position.
      	(check_attr_test): Take a file_location instead of a line number.
      	Use fatal_at instead of fatal.
      	(check_attr_value): Update after above changes, using "at"
      	rather than "with_line" reporting functions.
      	(convert_set_attr_alternative): Likewise.
      	(gen_attr): Likewise.
      	(check_defs): Likewise.  Don't assign to read_md_filename.
      	(gen_insn): Update initialization after above changes.
      	(gen_delay): Likewise.
      	(write_insn_cases): Print the filename for a define_peephole.
      	(gen_insn_reserv): Take a line number as argument and update
      	the call to check_attr_test.
      	(main): Pass a line number to gen_insn_reserv.
      
      From-SVN: r225880
      Richard Sandiford committed
    • read-md.h (file_location): New structure. · cc472607
      gcc/
      	* read-md.h (file_location): New structure.
      	(directive_handler_t): Take a file_location rather than a line number.
      	(message_at, error_at): Declare.
      	(read_skip_construct): Delete.
      	* read-md.c (message_with_line_1): Replace with...
      	(message_at_1): ...this new function.
      	(message_at, error_at): New functions.
      	(message_with_line, error_with_line): Update to use message_at_1.
      	(handle_enum): Take a file_location rather than a line number
      	and use error_at for error reporting.
      	(handle_include): Likewise.
      	(read_skip_construct): Likewise.  Make static.
      	(handle_file): Update after above changes.  Pass a file_location
      	rather than a line number to handle_directive.
      	* gensupport.c (queue_elem): Replace separate filename and lineno
      	with a file_location.
      	(queue_pattern): Replace filename and lineno arguments with a
      	file_location.  Update after change to queue_elem.
      	(process_define_predicate): Replace lineno argument with a
      	file_location and use error_at for error reporting.  Update
      	after above changes.
      	(process_rtx): Likewise.
      	(subst_pattern_match): Likewise.
      	(get_alternatives_number): Likewise.
      	(alter_predicate_for_insn): Likewise.
      	(rtx_handle_directive): Likewise.
      	(is_predicable): Update after above changes, using error_at rather
      	than error_with_line.
      	(has_subst_attribute): Likewise.
      	(identify_predicable_attribute): Likewise.
      	(alter_attrs_for_subst_insn): Likewise.
      	(process_one_cond_exec): Likewise.
      	(process_substs_on_one_elem): Likewise.
      	(process_define_subst): Likewise.
      	(check_define_attr_duplicates): Likewise.
      	(read_md_rtx): Update after change to queue_elem.
      
      From-SVN: r225879
      Richard Sandiford committed
    • genoutput.c (next_index_number): Delete. · 1e2e5efa
      gcc/
      	* genoutput.c (next_index_number): Delete.
      	(data): Remove index_number.
      	(gen_insn, gen_peephole, gen_expand, gen_split): Update accordingly.
      	(main): Remove manipulation of next_index_number.
      
      From-SVN: r225876
      Richard Sandiford committed
    • genattrtab.c (check_attr_value): Remove handling of null attrs. · 5839708b
      gcc/
      	* genattrtab.c (check_attr_value): Remove handling of null attrs.
      	(make_canonical): Likewise.
      
      From-SVN: r225875
      Richard Sandiford committed
    • sparc.md (save_stack_nonlocal): Use adjust_address instead of adjust_address_nv. · ce967e93
      	* config/sparc/sparc.md (save_stack_nonlocal): Use adjust_address
      	instead of adjust_address_nv.
      	(restore_stack_nonlocal): Likewise.
      	(nonlocal_goto): Likewise.
      
      From-SVN: r225874
      Eric Botcazou committed
    • Handle exit phi without header phi in create_parallel_loop · 7781d262
      2015-07-16  Tom de Vries  <tom@codesourcery.com>
      
      	* tree-parloops.c (create_parallel_loop): Handle case that exit phi does
      	not have a corresponding loop header phi.
      
      From-SVN: r225873
      Tom de Vries committed
    • Handle unused reduction in create_loads_for_reductions · 79855460
      2015-07-16  Tom de Vries  <tom@codesourcery.com>
      
      	* tree-parloops.c (create_loads_for_reductions): Handle case that
      	reduction is unused.
      
      From-SVN: r225872
      Tom de Vries committed
    • re PR tree-optimization/66894 (wrong code at -Os and above on x86_64-linux-gnu) · ef3b59ac
      2015-07-16  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/66894
      	* tree-vrp.c (register_edge_assert_for_2): Fix bad assumption
      	about deriving NE_EXPR from truncated values.
      
      	* gcc.dg/torture/pr66894.c: New testcase.
      
      From-SVN: r225870
      Richard Biener committed
    • Add new object_allocator and clean-up allocator usage. · fb0b2914
      	* c-format.c (static void check_format_info_main): Use
      	object_allocator instead of pool_allocator.
      	(check_format_arg): Likewise.
      	(check_format_info_main): Likewise.
      	* alloc-pool.h
      	(object_allocator): Add new class.
      	(pool_allocator::initialize): Use the underlying class.
      	(pool_allocator::allocate): Likewise.
      	(pool_allocator::remove): Likewise.
      	(operator new): A new generic allocator.
      	* asan.c (struct asan_mem_ref): Remove unused members.
      	(asan_mem_ref_new): Replace new operator with
      	object_allocator::allocate.
      	(free_mem_ref_resources): Change deallocation.
      	* cfg.c (initialize_original_copy_tables): Replace pool_allocator
      	with object_allocator.
      	* config/sh/sh.c (add_constant): Replace new operator with
      	object_allocator::allocate.
      	(sh_reorg): Change call to a release method.
      	* cselib.c (struct elt_list): Remove unused members.
      	(new_elt_list): Replace new operator with
      	object_allocator::allocate.
      	(new_elt_loc_list): Likewise.
      	(new_cselib_val): Likewise.
      	(unchain_one_elt_list): Change delete operator with remove method.
      	(unchain_one_elt_loc_list): Likewise.
      	(unchain_one_value): Likewise.
      	(cselib_finish): Release newly added static allocators.
      	* cselib.h (struct cselib_val): Remove unused members.
      	(struct elt_loc_list): Likewise.
      	* df-problems.c (df_chain_alloc): Replace pool_allocator with
      	object_allocator.
      	* df-scan.c (struct df_scan_problem_data): Likewise.
      	(df_scan_alloc): Likewise.
      	* df.h (struct dataflow): Likewise.
      	* dse.c (struct read_info_type): Likewise.
      	(struct insn_info_type): Likewise.
      	(struct dse_bb_info_type): Likewise.
      	(struct group_info): Likewise.
      	(struct deferred_change): Likewise.
      	(get_group_info): Likewise.
      	(delete_dead_store_insn): Likewise.
      	(free_read_records): Likewise.
      	(replace_read): Likewise.
      	(check_mem_read_rtx): Likewise.
      	(scan_insn): Likewise.
      	(dse_step1): Likewise.
      	(dse_step7): Likewise.
      	* et-forest.c (struct et_occ): Remove unused members.
      	(et_new_occ): Use allocate instead of new operator.
      	(et_new_tree): Likewise.
      	(et_free_tree): Call release method explicitly.
      	(et_free_tree_force): Likewise.
      	(et_free_pools): Likewise.
      	(et_split): Use remove instead of delete operator.
      	* et-forest.h (struct et_node): Remove unused members.
      	* ipa-cp.c: Change pool_allocator to object_allocator.
      	* ipa-inline-analysis.c: Likewise.
      	* ipa-profile.c: Likewise.
      	* ipa-prop.c: Likewise.
      	* ipa-prop.h: Likewise.
      	* ira-build.c (initiate_cost_vectors): Cast return value.
      	(ira_allocate_cost_vector): Likewise.
      	* ira-color.c (struct update_cost_record): Remove unused members.
      	* lra-int.h (struct lra_live_range): Likewise.
      	(struct lra_copy): Likewise.
      	(struct lra_insn_reg): Likewise.
      	* lra-lives.c (lra_live_ranges_finish): Release new static allocator.
      	* lra.c (new_insn_reg): Replace new operator with allocate method.
      	(free_insn_regs): Same for operator delete.
      	(finish_insn_regs): Release new static allocator.
      	(finish_insn_recog_data): Likewise.
      	(lra_free_copies): Replace delete operator with remove method.
      	(lra_create_copy): Replace operator new with allocate method.
      	(invalidate_insn_data_regno_info): Same for remove method.
      	* regcprop.c (struct queued_debug_insn_change): Remove unused members.
      	(free_debug_insn_changes): Replace delete operator with remove method.
      	(replace_oldest_value_reg): Replace operator new with allocate method.
      	(pass_cprop_hardreg::execute): Release new static variable.
      	* sched-deps.c (sched_deps_init): Change pool_allocator to
      	object_allocator.
      	* sel-sched-ir.c: Likewise.
      	* sel-sched-ir.h: Likewise.
      	* stmt.c (expand_case): Likewise.
      	(expand_sjlj_dispatch_table): Likewise.
      	* tree-sra.c (struct access): Remove unused members.
      	(struct assign_link): Likewise.
      	(sra_deinitialize): Release newly added static pools.
      	(create_access_1):Replace operator new with allocate method.
      	(build_accesses_from_assign): Likewise.
      	(create_artificial_child_access): Likewise.
      	* tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Change
      	pool_allocator to object_allocator.
      	* tree-ssa-pre.c: Likewise.
      	* tree-ssa-reassoc.c: Likewise.
      	* tree-ssa-sccvn.c (allocate_vn_table): Likewise.
      	* tree-ssa-strlen.c: Likewise.
      	* tree-ssa-structalias.c: Likewise.
      	* var-tracking.c (onepart_pool_allocate): New function.
      	(unshare_variable): Use the newly added function.
      	(variable_merge_over_cur): Likewise.
      	(variable_from_dropped): Likewise.
      	(variable_was_changed): Likewise.
      	(set_slot_part): Likewise.
      	(emit_notes_for_differences_1): Likewise.
      	(vt_finalize): Release newly added static pools.
      
      From-SVN: r225869
      Martin Liska committed