Commit Graph

29557 Commits

Author SHA1 Message Date
Martin Sebor 31c87a433c PR middle-end/78703 - fprintf-return-value floating point handling incorrect in locales with a mulltibyte decimal point
gcc/ChangeLog:
        PR middle-end/78703
        * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
        to accept adjustment as an array.
        (get_int_range): New function.
        (struct directive): Make width and prec arrays.
        (directive::set_width, directive::set_precision): Call get_int_range.
        (format_integer, format_floating): Handle width and precision ranges.
        (format_string, parse_directive): Same.

gcc/testsuite/ChangeLog:
        PR middle-end/78703
        * gcc.dg/tree-ssa/builtin-snprintf-warn-1.c: Update
        * gcc.dg/tree-ssa/builtin-sprintf-warn-9.c: Rename...
        * gcc.dg/tree-ssa/builtin-sprintf-warn-10.c: ...to this.
        * gcc.dg/tree-ssa/builtin-sprintf-warn-9.c: New test.

From-SVN: r244956
2017-01-26 16:07:02 -07:00
Jakub Jelinek b0670cc0eb re PR c++/79129 (ICE with -fdebug-types-section starting with r240578)
PR debug/79129
	* dwarf2out.c (generate_skeleton_bottom_up): For children with
	comdat_type_p set, just clone them, but keep the children in the
	original DIE.

	* g++.dg/debug/dwarf2/pr79129.C: New test.

From-SVN: r244955
2017-01-26 22:45:57 +01:00
Jakub Jelinek f7c06c0f99 re PR debug/78835 (ICE with -fdebug-types-section and member function)
PR debug/78835
	* dwarf2out.c (prune_unused_types): Mark all functions with DIEs
	which have direct callers with -fvar-tracking-assignments enabled
	in the current TU.
	(resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
	inside of type units.

	* g++.dg/debug/dwarf2/pr78835.C: New test.

From-SVN: r244954
2017-01-26 22:44:49 +01:00
Martin Sebor 5d93da1d11 PR middle-end/78703 -fprintf-return-value floating point handling incorrect in locales with a mulltibyte decimal point
gcc/ChangeLog:
	PR middle-end/78703
	* gimple-ssa-sprintf.c (struct result_range): Add likely and
	unlikely counters.
	(struct format_result): Replace number_chars, number_chars_min,
	and number_chars_max with a single member of struct result_range.
	Remove bounded.
	(format_result::operator+=): Adjust.
	(struct fmtresult): Remove bounded.  Handle likely and unlikely
	counters.
	(fmtresult::adjust_for_width_or_precision): New function.
	(fmtresult:type_max_digits): New function.
	(bytes_remaining): Handle likely and unlikely counters.
	(min_bytes_remaining): Remove.
	(format_percent): Simplify.
	(format_integer, format_floating): Set likely and unlikely counters.
	(get_string_length, format_character, format_string): Same.
	(format_plain, should_warn_p): New function.
	(maybe_warn): Call should_warn_p.  Update diagnostic messages
	and handle those for all directives, including plain strings.
	(format_directive): Handle likely and unlikely counters.
	Remove unnecessary quoting from diagnostics.  Add an informational
	note.
	(add_bytes): Remove.
	(pass_sprintf_length::compute_format_length): Simplify.
	(try_substitute_return_value): Handle likely and unlikely counters.

gcc/testsuite/ChangeLog:

	PR middle-end/78703
	* gcc.dg/format/pr78569.c: Adjust.
	* gcc.dg/tree-ssa/builtin-snprintf-warn-2.c: Same.
	* gcc.dg/tree-ssa/builtin-sprintf-2.c: Same.
	* gcc.dg/tree-ssa/builtin-sprintf-5.c: Same.
	* gcc.dg/tree-ssa/builtin-sprintf-warn-1.c: Same.
	* gcc.dg/tree-ssa/builtin-sprintf-warn-2.c: Same.
	* gcc.dg/tree-ssa/builtin-sprintf-warn-3.c: Same.
	* gcc.dg/tree-ssa/builtin-sprintf-warn-4.c: Same.
	* gcc.dg/tree-ssa/builtin-sprintf-warn-6.c: Same.
	* gcc.dg/tree-ssa/builtin-sprintf-warn-7.c: Same.
	* gcc.dg/tree-ssa/builtin-sprintf-warn-9.c: Same.
	* gcc.dg/tree-ssa/builtin-sprintf.c: Same.

From-SVN: r244953
2017-01-26 14:14:18 -07:00
Jakub Jelinek 905d2812e7 re PR c++/68727 (invalid offsetof expressions accepted)
PR c++/68727
	* cp-tree.def (OFFSETOF_EXPR): Bump number of operands to 2.
	* cp-tree.h (finish_offsetof): Add OBJECT_PTR argument.
	* parser.c (cp_parser_builtin_offsetof): Pass result of
	build_static_cast of null_pointer_node to finish_offsetof.
	* semantics.c (finish_offsetof): Add OBJECT_PTR argument, use
	it for -Winvalid-offsetof pedwarn instead of trying to guess
	original offsetof type from EXPR.  Save OBJECT_PTR as a new
	second operand to OFFSETOF_EXPR.
	* pt.c (tsubst_copy_and_build) <case OFFSETOF_EXPR>: Adjust
	finish_offsetof caller, pass the second operand of OFFSETOF_EXPR
	as OBJECT_PTR.

	* g++.dg/other/offsetof8.C: Add expected error.
	* g++.dg/other/offsetof9.C: New test.

From-SVN: r244949
2017-01-26 20:39:40 +01:00
David Edelsohn b3db8d779a * g++.dg/opt/declone3.C: Require LTO.
From-SVN: r244944
2017-01-26 13:19:39 -05:00
Vladimir Makarov 15961e4a1b re PR target/79131 (ICE: in extract_constrain_insn, at recog.c:2213, big-endian ARM)
2017-01-26  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/79131
	* lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
	endianess for subregs into account.
	* lra-constraints.c (lra_constraints): Do risky transformations
	always on the first iteration.
	* lra-lives.c (check_pseudos_live_through_calls): Add arg
	last_call_used_reg_set.
	(process_bb_lives): Define and use last_call_used_reg_set.
	* lra.c (lra): Always continue after lra_constraints on the first
	iteration.

2017-01-26  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/79131
	* gcc.target/arm/pr79131.c: New.

From-SVN: r244942
2017-01-26 17:08:12 +00:00
Bin Cheng e39dd8029d ldp_vec_64_1.c: Xfail.
gcc/testsuite
	* gcc.target/aarch64/ldp_vec_64_1.c: Xfail.

From-SVN: r244934
2017-01-26 15:04:27 +00:00
Jonathan Wakely bc9efeab61 PR libstdc++/79190 add fallback aligned_alloc implementation
libstdc++-v3:

	PR libstdc++/79190
	* libsupc++/del_opa.cc (operator delete(void*, std::align_val_t))
	[!_GLIBCXX_HAVE_ALIGNED_ALLOC && !_GLIBCXX_HAVE_POSIX_MEMALIGN
	&& !_GLIBCXX_HAVE_MEMALIGN && !_GLIBCXX_HAVE__ALIGNED_MALLOC]:
	Retrieve original pointer value allocated by malloc.
	* libsupc++/new_opa.cc [!_GLIBCXX_HAVE_ALIGNED_ALLOC
	&& !_GLIBCXX_HAVE_POSIX_MEMALIGN && !_GLIBCXX_HAVE_MEMALIGN
	&& !_GLIBCXX_HAVE__ALIGNED_MALLOC] (aligned_alloc(size_t, size_t)):
	Define, adjusting pointer value allocated by malloc and storing for
	retrieval by operator delete.

gcc/testsuite:

	PR libstdc++/79190
	* g++.dg/cpp1z/aligned-new3.C: Replace operator new so behaviour
	matches replaced operator delete.

From-SVN: r244933
2017-01-26 14:30:45 +00:00
Jakub Jelinek b5f75f0b64 avx512fintrin.h (_ktest_mask16_u8, [...]): Move to ...
* config/i386/avx512fintrin.h (_ktest_mask16_u8,
	_ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
	* config/i386/avx512dqintrin.h (_ktest_mask16_u8,
	_ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
	* config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
	__builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
	OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
	* config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
	(kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
testsuite/
	* gcc.target/i386/avx512f-kaddw-1.c: Renamed to ...
	* gcc.target/i386/avx512dq-kaddw-1.c: ... this.  New test.  Replace
	avx512f with avx512dq.
	* gcc.target/i386/avx512f-ktestw-1.c: Renamed to ...
	* gcc.target/i386/avx512dq-ktestw-1.c: ... this.  New test.  Replace
	avx512f with avx512dq.
	* gcc.target/i386/avx512f-ktestw-2.c: Renamed to ...
	* gcc.target/i386/avx512dq-ktestw-2.c: ... this.  New test.  Replace
	avx512f with avx512dq.

From-SVN: r244929
2017-01-26 13:24:58 +01:00
Marek Polacek 0a38b341a8 re PR c/79199 (ICE with -Wduplicated-branches)
PR c/79199
	* fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
	for the third operand.

	* c-c++-common/Wduplicated-branches-13.c: New test.

From-SVN: r244928
2017-01-26 11:37:33 +00:00
David Sherwood ebff5c3f80 re PR middle-end/79212 (internal compiler error: in maybe_lookup_decl_in_outer_ctx, at omp-low.c:4134)
2017-01-26  David Sherwood  <david.sherwood@arm.com>

    gcc/
	PR middle-end/79212
	* gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
	all contexts.

    gcc/testsuite/
	PR middle-end/79212
	* gfortran.dg/gomp/sharing-4.f90: New test.

From-SVN: r244922
2017-01-26 10:41:35 +00:00
Jakub Jelinek 1a27fab1ad re PR target/70465 (Poor code for x87 asm)
PR target/70465
	* reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
	emit fld b; fld a; if possible.

	* gcc.target/i386/pr70465.c: New test.

From-SVN: r244921
2017-01-26 09:46:36 +01:00
Jakub Jelinek e6d55103c3 update-copyright.py: Add libhsail-rt to self.default_dirs and call self.add_dir on it.
contrib/
	* update-copyright.py: Add libhsail-rt to self.default_dirs
	and call self.add_dir on it.  Add Intel Corporation to external
	authors.
gcc/
	* brig-builtins.def: Update copyright years.
	* config/arm/arm_acle_builtins.def: Update copyright years.
gcc/brig/
	Update copyright years.
gcc/testsuite/
	* brig.dg/dg.exp: Update copyright years.
	* lib/brig-dg.exp: Update copyright years.
	* lib/brig.exp: Update copyright years.
libhsail-rt/
	Update copyright years.
libstdc++-v3/
	* libsupc++/eh_atomics.h: Update copyright years.
	* testsuite/20_util/unique_ptr/cons/default.cc: Update copyright years.

From-SVN: r244920
2017-01-26 09:26:48 +01:00
Michael Meissner b5aa1281e1 re PR target/79179 (PowerPC64: -mcpu=power9 creates stxsd with bad offset)
[gcc]
2017-01-25  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/79179
	* config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
	constraint instead of o for the stxsd instruction.

[gcc/testsuite]
2017-01-25  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/79179
	* gcc.target/powerpc/pr79179.c: New test.

From-SVN: r244917
2017-01-26 04:16:11 +00:00
Bill Schmidt 3b5de3cb71 vsx-elemrev-4.c: Change expected code generation to accept D-mode memory accesses.
2017-01-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.target/powerpc/vsx-elemrev-4.c: Change expected code
	generation to accept D-mode memory accesses.

From-SVN: r244916
2017-01-26 03:21:49 +00:00
Martin Sebor dbe81dbe24 ChangeLog only update missed in r244910.
From-SVN: r244911
2017-01-25 16:19:01 -07:00
Jakub Jelinek a25608aa6f re PR c++/78896 ([C++17] Segmentation fault occurs when use variable initialized using structured binding with capture-by-ref lambda)
PR c++/78896
	* decl.c (cp_finish_decomp): Disallow memberwise decomposition of
	lambda expressions.

	* g++.dg/cpp1z/decomp24.C: New test.

From-SVN: r244909
2017-01-25 23:36:18 +01:00
Jakub Jelinek 0e3438689a re PR c++/77914 (Wrong lambda definition accepted)
PR c++/77914
	* parser.c (cp_parser_lambda_declarator_opt): Pedwarn with
	OPT_Wpedantic on lambda templates for -std=c++14 and higher.

	* g++.dg/cpp1y/lambda-generic-77914.C: New test.
	* g++.dg/cpp1y/lambda-generic-dep.C: Add -pedantic to dg-options,
	expect a warning.
	* g++.dg/cpp1y/lambda-generic-x.C: Add -Wpedantic to dg-options,
	expect warnings.
	* g++.dg/cpp1y/lambda-generic-mixed.C: Add empty dg-options.
	* g++.dg/cpp1y/pr59636.C: Likewise.
	* g++.dg/cpp1y/pr60190.C: Likewise.

From-SVN: r244907
2017-01-25 21:51:10 +01:00
Bin Cheng 0d098f4ba1 vect-24.c: Remove xfail on ARM targets.
gcc/testsuite
	* gcc.dg/vect/vect-24.c: Remove xfail on ARM targets.

From-SVN: r244905
2017-01-25 17:07:30 +00:00
Carl Love 5332c89ea0 rs6000-c (altivec_overloaded_builtins): Fix order of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
gcc/ChangeLog:

2017-01-25  Carl Love  <cel@us.ibm.com>

        * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
        of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.

gcc/testsuite/ChangeLog:

2017-01-25  Carl Love  <cel@us.ibm.com>
        * gcc.target/powerpc/builtins-3-p8.c:  Add missing tests for the
        vec_packs built-ins

From-SVN: r244904
2017-01-25 16:23:48 +00:00
Christophe Lyon ed4e59f46f [ARM][testsuite] Force -mcpu=cortex-a57 for vsel* tests.
2017-01-25  Christophe Lyon  <christophe.lyon@linaro.org>

	* gcc.target/arm/vseleqdf.c: Require arm_arch_v8a_ok, add
	-mcpu=cortex-a57.
	* gcc.target/arm/vseleqsf.c: Likewise.
	* gcc.target/arm/vselgedf.c: Likewise.
	* gcc.target/arm/vselgesf.c: Likewise.
	* gcc.target/arm/vselgtdf.c: Likewise.
	* gcc.target/arm/vselgtsf.c: Likewise.
	* gcc.target/arm/vselledf.c: Likewise.
	* gcc.target/arm/vsellesf.c: Likewise.
	* gcc.target/arm/vselltdf.c: Likewise.
	* gcc.target/arm/vselltsf.c: Likewise.
	* gcc.target/arm/vselnedf.c: Likewise.
	* gcc.target/arm/vselnesf.c: Likewise.
	* gcc.target/arm/vselvcdf.c: Likewise.
	* gcc.target/arm/vselvcsf.c: Likewise.
	* gcc.target/arm/vselvsdf.c: Likewise.
	* gcc.target/arm/vselvssf.c: Likewise.

From-SVN: r244903
2017-01-25 16:41:55 +01:00
Richard Biener a5d6927fef re PR testsuite/72850 (FAIL: gcc.dg/tree-ssa/pr69270-3.c scan-tree-dump-times uncprop1 ", 1" 4)
2017-01-25  Richard Biener  <rguenther@suse.de>

	PR testsuite/72850
	* gcc.dg/tree-ssa/pr69270-3.c: Change back expected outcome
	to what we had before adding the threading passes.

From-SVN: r244898
2017-01-25 13:14:41 +00:00
Richard Biener c287389223 re PR target/69264 (ICE building spidermonkey -mcpu=970 -maltivec -O3: rs6000_builtin_vectorization_cost, at config/rs6000/rs6000.c:4350)
2017-01-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69264
	* target.def (vector_alignment_reachable): Improve documentation.
	* doc/tm.texi: Regenerate.
	* targhooks.c (default_builtin_vector_alignment_reachable): Simplify
	and add a comment.
	* tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
	earlier changes with respect to TYPE_USER_ALIGN.
	(vector_alignment_reachable_p): Likewise.  Improve dumping.

	* g++.dg/torture/pr69264.C: New testcase.

From-SVN: r244897
2017-01-25 12:30:41 +00:00
Kyrylo Tkachov 9aa483a2d8 [ARM] PR target/79145 Fix xordi3 expander for immediate operands in iWMMXt
PR target/79145
	* config/arm/arm.md (xordi3): Force constant operand into a register
	for TARGET_IWMMXT.

	* gcc.target/arm/pr79145.c: New test.

From-SVN: r244894
2017-01-25 11:10:30 +00:00
Richard Biener 5c628c3e6f re PR debug/78363 (ICE in in force_type_die, at dwarf2out.c:24864)
2017-01-25  Richard Biener  <rguenther@suse.de>

	PR debug/78363
	* omp-expand.c: Include debug.h.
	(expand_omp_taskreg): Make sure to generate early debug before
	outlining anything from a function.
	(expand_omp_target): Likewise.
	(grid_expand_target_grid_body): Likewise.

	* g++.dg/gomp/pr78363-1.C: New testcase.
	* g++.dg/gomp/pr78363-2.C: Likewise.
	* g++.dg/gomp/pr78363-3.C: Likewise.

From-SVN: r244892
2017-01-25 09:48:10 +00:00
Kyrylo Tkachov 9078cd3665 [testsuite] Require shared effective target for some lto.exp tests
* gcc.dg/lto/pr54709_0.c: Require 'shared' effective target.
	* gcc.dg/lto/pr61526_0.c: Likewise.
	* gcc.dg/lto/pr64415_0.c: Likewise.

From-SVN: r244891
2017-01-25 09:24:49 +00:00
Jakub Jelinek 7cfd79d60b re PR c++/79205 (ICE in create_tmp_var, at gimple-expr.c:473)
PR c++/79205
	* cp-gimplify.c (cp_genericize_r): Add result of
	convert_from_reference on invisiref parm to p_set.

	* g++.dg/cpp1z/decomp22.C: New test.
	* g++.dg/cpp1z/decomp23.C: New test.

From-SVN: r244885
2017-01-24 23:33:41 +01:00
Nathan Sidwell 1d7bc790d7 PR c++/78469 - defaulted ctor and inaccessible dtor
PR c++/78469 - defaulted ctor and inaccessible dtor
	* cp-tree.h (tsubst_flags): Add tf_no_cleanup.
	* init.c (build_new_1): Pass tf_no_cleanup to build_value_init.
	* tree.c (build_target_expr): Check tf_no_cleanup.

	PR c++/78469
	* g++.dg/cpp0x/pr78469.C: New.

From-SVN: r244882
2017-01-24 19:29:44 +00:00
Nathan Sidwell 3e4b91f275 PR c++/79118 - anon-members and constexpr
PR c++/79118 - anon-members and constexpr
	* constexpr.c (cx_check_missing_mem_inits): Caller passes type not
	ctor decl.  Recursively check anonymous members.
	(register_constexpr_fundef): Adjust cx_check_missing_mem_inits
	call.
	(explain_invalid_constexpr_fn): Likewise.


	PR c++/79118
	* g++.dg/cpp0x/pr79118.C: New.

From-SVN: r244881
2017-01-24 19:25:32 +00:00
Eric Botcazou b20ba138ef re PR target/77439 (wrong code for sibcall with longcall, APCS frame and VFP)
PR target/77439
	* config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
	for long calls with APCS frame and VFP.

From-SVN: r244879
2017-01-24 17:15:02 +00:00
David Malcolm c2e8432763 Add "__RTL" to cc1
gcc/c-family/ChangeLog:
	* c-common.c (c_common_reswords): Add "__RTL".
	* c-common.h (enum rid): Add RID_RTL.

gcc/c/ChangeLog:
	* c-parser.c: Include "read-rtl-function.h" and
	"run-rtl-passes.h".
	(c_parser_declaration_or_fndef): Rename "gimple-pass-list" in
	grammar to gimple-or-rtl-pass-list.  Add rtl-function-definition
	production.  Update for renaming of field "gimple_pass" to
	"gimple_or_rtl_pass".  If __RTL was seen, call
	c_parser_parse_rtl_body.  Convert a timevar_push/pop pair
	to an auto_timevar, to cope with early exit.
	(c_parser_declspecs): Update RID_GIMPLE handling for renaming of
	field "gimple_pass" to "gimple_or_rtl_pass", and for renaming of
	c_parser_gimple_pass_list to c_parser_gimple_or_rtl_pass_list.
	Handle RID_RTL.
	(c_parser_parse_rtl_body): New function.
	* c-tree.h (enum c_declspec_word): Add cdw_rtl.
	(struct c_declspecs): Rename field "gimple_pass" to
	"gimple_or_rtl_pass".  Add field "rtl_p".
	* gimple-parser.c (c_parser_gimple_pass_list): Rename to...
	(c_parser_gimple_or_rtl_pass_list): ...this, updating accordingly.
	* gimple-parser.h (c_parser_gimple_pass_list): Rename to...
	(c_parser_gimple_or_rtl_pass_list): ...this.

gcc/ChangeLog:
	* cfg.c (original_copy_tables_initialized_p): New function.
	* cfg.h (original_copy_tables_initialized_p): New decl.
	* cfgrtl.c (relink_block_chain): Guard the call to
	free_original_copy_tables with a call to
	original_copy_tables_initialized_p.
	* cgraph.h (symtab_node::native_rtl_p): New decl.
	* cgraphunit.c (symtab_node::native_rtl_p): New function.
	(symtab_node::needed_p): Don't assert for early assembly output
	for __RTL functions.
	(cgraph_node::finalize_function): Set "force_output" for __RTL
	functions.
	(cgraph_node::analyze): Bail out early for __RTL functions.
	(analyze_functions): Update assertion to support __RTL functions.
	(cgraph_node::expand): Bail out early for __RTL functions.
	* final.c (rest_of_clean_state): Don't call delete_tree_ssa for
	__RTL functions.
	* function.h (struct function): Update comment for field
	"pass_startwith".
	* gimple-expr.c: Include "tree-pass.h".
	(gimple_has_body_p): Return false for __RTL functions.
	* Makefile.in (OBJS): Add run-rtl-passes.o.
	* pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
	accessor.
	(gcc::pass_manager::get_clean_slate): New accessor.
	* passes.c: Include "insn-addr.h".
	(should_skip_pass_p): Add logging.  Update logic for running
	"expand" to be compatible with both __GIMPLE and __RTL.  Guard
	property-provider override so it is only done for gimple passes.
	Don't skip dfinit.
	(skip_pass): New function.
	(execute_one_pass): Call skip_pass when skipping passes.
	* read-md.c (md_reader::read_char): Support filtering
	the input to a subset of line numbers.
	(md_reader::md_reader): Initialize fields
	m_first_line and m_last_line.
	(md_reader::read_file_fragment): New function.
	* read-md.h (md_reader::read_file_fragment): New decl.
	(md_reader::m_first_line): New field.
	(md_reader::m_last_line): New field.
	* read-rtl-function.c (function_reader::create_function): Only
	create cfun if it doesn't already exist.  Set PROP_rtl on cfun's
	curr_properties.  Set DECL_INITIAL to a dummy block.
	(read_rtl_function_body_from_file_range): New function.
	* read-rtl-function.h (read_rtl_function_body_from_file_range):
	New decl.
	* run-rtl-passes.c: New file.
	* run-rtl-passes.h: New file.

gcc/testsuite/ChangeLog:
	* gcc.dg/rtl/aarch64/asr_div1.c: New test case.
	* gcc.dg/rtl/aarch64/pr71779.c: New test case.
	* gcc.dg/rtl/rtl.exp: New file.
	* gcc.dg/rtl/test.c: New file.
	* gcc.dg/rtl/truncated-rtl-file.c: New test case.
	* gcc.dg/rtl/unknown-rtx-code.c: New test case.
	* gcc.dg/rtl/x86_64/dfinit.c: New test case.
	* gcc.dg/rtl/x86_64/different-structs.c: New test case.
	* gcc.dg/rtl/x86_64/final.c: New test case.
	* gcc.dg/rtl/x86_64/into-cfglayout.c: New test case.
	* gcc.dg/rtl/x86_64/ira.c: New test case.
	* gcc.dg/rtl/x86_64/pro_and_epilogue.c: New test case.
	* gcc.dg/rtl/x86_64/test-multiple-fns.c: New test case.
	* gcc.dg/rtl/x86_64/test-return-const.c.after-expand.c: New test case.
	* gcc.dg/rtl/x86_64/test-return-const.c.before-fwprop.c: New test case.
	* gcc.dg/rtl/x86_64/test-rtl.c: New test case.
	* gcc.dg/rtl/x86_64/test_1.h: New file.
	* gcc.dg/rtl/x86_64/times-two.c.after-expand.c: New test case.
	* gcc.dg/rtl/x86_64/times-two.c.before-df.c: New test case.
	* gcc.dg/rtl/x86_64/times-two.h: New file.
	* gcc.dg/rtl/x86_64/vregs.c: New test case.

From-SVN: r244878
2017-01-24 17:07:36 +00:00
Bin Cheng cf8d19de26 re PR tree-optimization/79159 (spurious array-bounds warning)
PR tree-optimization/79159
	* tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
	(record_nonwrapping_iv): Imporve boundary using above function if no
	value range information.

	gcc/testsuite
	PR tree-optimization/79159
	* g++.dg/tree-ssa/pr79159.C: New test.

From-SVN: r244868
2017-01-24 13:09:27 +00:00
Pekka Jääskeläinen 5fd1486ce5 Brig front-end
2017-01-24  Pekka Jääskeläinen <pekka@parmance.com>
	    Martin Jambor  <mjambor@suse.cz>

	* Makefile.def (target_modules): Added libhsail-rt.
	(languages): Added language brig.
	* Makefile.in: Regenerated.
	* configure.ac (TOPLEVEL_CONFIGURE_ARGUMENTS): Added
	tgarget-libhsail-rt.  Make brig unsupported on untested architectures.
	* configure: Regenerated.

gcc/
	* brig-builtins.def: New file.
	* builtins.def (DEF_HSAIL_BUILTIN): New macro.
	(DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
	(DEF_HSAIL_SAT_BUILTIN): Likewise.
	(DEF_HSAIL_INTR_BUILTIN): Likewise.
	(DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
	* builtin-types.def (BT_INT8): New.
	(BT_INT16): Likewise.
	(BT_UINT8): Likewise.
	(BT_UINT16): Likewise.
	(BT_FN_ULONG): Likewise.
	(BT_FN_UINT_INT): Likewise.
	(BT_FN_UINT_ULONG): Likewise.
	(BT_FN_UINT_LONG): Likewise.
	(BT_FN_UINT_PTR): Likewise.
	(BT_FN_ULONG_PTR): Likewise.
	(BT_FN_INT8_FLOAT): Likewise.
	(BT_FN_INT16_FLOAT): Likewise.
	(BT_FN_UINT32_FLOAT): Likewise.
	(BT_FN_UINT16_FLOAT): Likewise.
	(BT_FN_UINT8_FLOAT): Likewise.
	(BT_FN_UINT64_FLOAT): Likewise.
	(BT_FN_UINT16_UINT32): Likewise.
	(BT_FN_UINT32_UINT16): Likewise.
	(BT_FN_UINT16_UINT16_UINT16): Likewise.
	(BT_FN_INT_PTR_INT): Likewise.
	(BT_FN_UINT_PTR_UINT): Likewise.
	(BT_FN_LONG_PTR_LONG): Likewise.
	(BT_FN_ULONG_PTR_ULONG): Likewise.
	(BT_FN_VOID_UINT64_UINT64): Likewise.
	(BT_FN_UINT8_UINT8_UINT8): Likewise.
	(BT_FN_INT8_INT8_INT8): Likewise.
	(BT_FN_INT16_INT16_INT16): Likewise.
	(BT_FN_INT_INT_INT): Likewise.
	(BT_FN_UINT_FLOAT_UINT): Likewise.
	(BT_FN_FLOAT_UINT_UINT): Likewise.
	(BT_FN_ULONG_UINT_UINT): Likewise.
	(BT_FN_ULONG_UINT_PTR): Likewise.
	(BT_FN_ULONG_ULONG_ULONG): Likewise.
	(BT_FN_UINT_UINT_UINT): Likewise.
	(BT_FN_VOID_UINT_PTR): Likewise.
	(BT_FN_UINT_UINT_PTR: Likewise.
	(BT_FN_UINT32_UINT64_PTR): Likewise.
	(BT_FN_INT_INT_UINT_UINT): Likewise.
	(BT_FN_UINT_UINT_UINT_UINT): Likewise.
	(BT_FN_UINT_UINT_UINT_PTR): Likewise.
	(BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
	(BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
	(BT_FN_LONG_LONG_UINT_UINT): Likewise.
	(BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
	(BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
	(BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
	(BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
	(BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
	(BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
	* doc/frontends.texi: List BRIG FE.
	* doc/install.texi (Testing): Add BRIG tesring requirements.
	* doc/invoke.texi (Overall Options): Mention BRIG.
	* doc/standards.texi (Standards): Doucment BRIG HSA version.

gcc/brig/

	* Make-lang.in: New file.
	* brig-builtins.h: Likewise.
	* brig-c.h: Likewise.
	* brig-lang.c: Likewise.
	* brigspec.c: Likewise.
	* config-lang.in: Likewise.
	* lang-specs.h: Likewise.
	* lang.opt: Likewise.
	* brigfrontend/brig-arg-block-handler.cc: Likewise.
	* brigfrontend/brig-atomic-inst-handler.cc: Likewise.
	* brigfrontend/brig-basic-inst-handler.cc: Likewise.
	* brigfrontend/brig-branch-inst-handler.cc: Likewise.
	* brigfrontend/brig-cmp-inst-handler.cc: Likewise.
	* brigfrontend/brig-code-entry-handler.cc: Likewise.
	* brigfrontend/brig-code-entry-handler.h: Likewise.
	* brigfrontend/brig-comment-handler.cc: Likewise.
	* brigfrontend/brig-control-handler.cc: Likewise.
	* brigfrontend/brig-copy-move-inst-handler.cc: Likewise.
	* brigfrontend/brig-cvt-inst-handler.cc: Likewise.
	* brigfrontend/brig-fbarrier-handler.cc: Likewise.
	* brigfrontend/brig-function-handler.cc: Likewise.
	* brigfrontend/brig-function.cc: Likewise.
	* brigfrontend/brig-function.h: Likewise.
	* brigfrontend/brig-inst-mod-handler.cc: Likewise.
	* brigfrontend/brig-label-handler.cc: Likewise.
	* brigfrontend/brig-lane-inst-handler.cc: Likewise.
	* brigfrontend/brig-machine.c: Likewise.
	* brigfrontend/brig-machine.h: Likewise.
	* brigfrontend/brig-mem-inst-handler.cc: Likewise.
	* brigfrontend/brig-module-handler.cc: Likewise.
	* brigfrontend/brig-queue-inst-handler.cc: Likewise.
	* brigfrontend/brig-seg-inst-handler.cc: Likewise.
	* brigfrontend/brig-signal-inst-handler.cc: Likewise.
	* brigfrontend/brig-to-generic.cc: Likewise.
	* brigfrontend/brig-to-generic.h: Likewise.
	* brigfrontend/brig-util.cc: Likewise.
	* brigfrontend/brig-util.h: Likewise.
	* brigfrontend/brig-variable-handler.cc: Likewise.
	* brigfrontend/phsa.h: Likewise.


gcc/testsuite/

	* lib/brig-dg.exp: New file.
	* lib/brig.exp: Likewise.
	* brig.dg/README: Likewise.
	* brig.dg/dg.exp: Likewise.
	* brig.dg/test/gimple/alloca.hsail: Likewise.
	* brig.dg/test/gimple/atomics.hsail: Likewise.
	* brig.dg/test/gimple/branches.hsail: Likewise.
	* brig.dg/test/gimple/fbarrier.hsail: Likewise.
	* brig.dg/test/gimple/function_calls.hsail: Likewise.
	* brig.dg/test/gimple/kernarg.hsail: Likewise.
	* brig.dg/test/gimple/mem.hsail: Likewise.
	* brig.dg/test/gimple/mulhi.hsail: Likewise.
	* brig.dg/test/gimple/packed.hsail: Likewise.
	* brig.dg/test/gimple/smoke_test.hsail: Likewise.
	* brig.dg/test/gimple/variables.hsail: Likewise.
	* brig.dg/test/gimple/vector.hsail: Likewise.

include/

	* hsa.h: Moved here from libgomp/plugin/hsa.h.

libgomp/

	* plugin/hsa.h: Moved to top level include.
	* plugin/plugin-hsa.c: Chanfgd include of hsa.h accordingly.

libhsail-rt/

	* Makefile.am: New file.
	* target-config.h.in: Likewise.
	* configure.ac: Likewise.
	* configure: Likewise.
	* config.h.in: Likewise.
	* aclocal.m4: Likewise.
	* README: Likewise.
	* Makefile.in: Likewise.
	* include/internal/fibers.h: Likewise.
	* include/internal/phsa-queue-interface.h: Likewise.
	* include/internal/phsa-rt.h: Likewise.
	* include/internal/workitems.h: Likewise.
	* rt/arithmetic.c: Likewise.
	* rt/atomics.c: Likewise.
	* rt/bitstring.c: Likewise.
	* rt/fbarrier.c: Likewise.
	* rt/fibers.c: Likewise.
	* rt/fp16.c: Likewise.
	* rt/misc.c: Likewise.
	* rt/multimedia.c: Likewise.
	* rt/queue.c: Likewise.
	* rt/sat_arithmetic.c: Likewise.
	* rt/segment.c: Likewise.
	* rt/workitems.c: Likewise.


Co-Authored-By: Martin Jambor <mjambor@suse.cz>

From-SVN: r244867
2017-01-24 13:45:56 +01:00
Jakub Jelinek c3b3e526fd asan_test.C: Enable on all *-*-linux* targets that support asan...
* g++.dg/asan/asan_test.C: Enable on all *-*-linux* targets that
	support asan, only on i?86/x86_64 require sse2_runtime.

From-SVN: r244856
2017-01-24 09:27:39 +01:00
Kelvin Nilsen 75f921278e re PR rtl-optimization/66669 (FAIL: gcc.dg/loop-8.c)
gcc/testsuite/ChangeLog:

2017-01-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>

	PR target/66669
	* gcc.dg/loop-8.c: Modify dg-skip-if directive to exclude this
	test on powerpc targets.

From-SVN: r244850
2017-01-24 01:26:13 +00:00
Martin Sebor 1a998fa0b7 builtin-sprintf.c: Add test cases.
gcc/testsuite/ChangeLog:
	* gcc.dg/tree-ssa/builtin-sprintf.c: Add test cases.

From-SVN: r244848
2017-01-23 18:12:41 -07:00
Richard Biener 108fdd6d84 re PR tree-optimization/79088 (wrong code at -O2 on x86_64-linux-gnu)
2017-01-23  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/79088
	PR tree-optimization/79188
	* tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
	resetting loop bounds after last path deletion.  Reset loop
	bounds of the target loop, make code match the comments.
	* tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
	Make sure loops need no fixups.

	* gcc.dg/torture/pr79088.c: New testcase.
	* gcc.dg/torture/pr79188.c: Likewise.

From-SVN: r244837
2017-01-23 15:29:17 -07:00
Kelvin Nilsen 28826a66fb scalar-insert-exp-3.c: New test.
gcc/testsuite/ChangeLog:

2017-01-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>

	* gcc.target/powerpc/bfp/scalar-insert-exp-3.c: New test.
	* gcc.target/powerpc/bfp/scalar-insert-exp-4.c: New test.
	* gcc.target/powerpc/bfp/scalar-insert-exp-5.c: New test.
	* gcc.target/powerpc/bfp/scalar-test-data-class-0.c: Adjust return
	type of test function to reflect change in built-in function's
	return type.
	* gcc.target/powerpc/bfp/scalar-test-data-class-1.c: Likewise.
	* gcc.target/powerpc/bfp/scalar-test-data-class-2.c: Likewise.
	* gcc.target/powerpc/bfp/scalar-test-data-class-3.c: Likewise.
	* gcc.target/powerpc/bfp/scalar-test-data-class-4.c: Adjust return
	type and second argument type to reflect change in built-in
	function's type signature.
	* gcc.target/powerpc/bfp/scalar-test-data-class-5.c: Likewise.
	* gcc.target/powerpc/bfp/scalar-test-data-class-6.c: Adjust return
	type of test function to reflect change in built-in function's
	return type.
	* gcc.target/powerpc/bfp/scalar-test-data-class-7.c: Likewise.
	* gcc.target/powerpc/bfp/scalar-test-neg-0.c: Likewise.
	* gcc.target/powerpc/bfp/scalar-test-neg-1.c: Likewise.
	* gcc.target/powerpc/bfp/scalar-test-neg-2.c: Likewise.
	* gcc.target/powerpc/bfp/scalar-test-neg-3.c: Likewise.
	* gcc.target/powerpc/bfp/vec-extract-exp-0.c: Likewise.
	* gcc.target/powerpc/bfp/vec-extract-exp-1.c: Likewise.
	* gcc.target/powerpc/bfp/vec-extract-exp-2.c: Likewise.
	* gcc.target/powerpc/bfp/vec-extract-exp-3.c: Likewise.
	* gcc.target/powerpc/bfp/vec-extract-sig-0.c: Likewise.
	* gcc.target/powerpc/bfp/vec-extract-sig-1.c: Likewise.
	* gcc.target/powerpc/bfp/vec-extract-sig-2.c: Likewise.
	* gcc.target/powerpc/bfp/vec-extract-sig-3.c: Likewise.
	* gcc.target/powerpc/bfp/vec-insert-exp-4.c: New test.
	* gcc.target/powerpc/bfp/vec-insert-exp-5.c: New test.
	* gcc.target/powerpc/bfp/vec-insert-exp-6.c: New test.
	* gcc.target/powerpc/bfp/vec-insert-exp-7.c: New test.
	* gcc.target/powerpc/bfp/vec-test-data-class-0.c: Adjust return
	type of test function to reflect change in built-in function's
	return type.
	* gcc.target/powerpc/bfp/vec-test-data-class-1.c: Likewise.
	* gcc.target/powerpc/bfp/vec-test-data-class-2.c: Likewise.
	* gcc.target/powerpc/bfp/vec-test-data-class-3.c: Likewise.
	* gcc.target/powerpc/bfp/vec-test-data-class-4.c: Likewise.
	* gcc.target/powerpc/bfp/vec-test-data-class-5.c: Likewise.
	* gcc.target/powerpc/bfp/vec-test-data-class-6.c: Adjust types of
	test function's result and second argument to reflect change in
	built-in function's type signature.
	* gcc.target/powerpc/bfp/vec-test-data-class-7.c: Likewise.

gcc/ChangeLog:

2017-01-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>

	* config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
	exponent support with double type for first argument.
	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
	type returned by __builtin_vec_extract_sig,
	__builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
	functions from "vector int" to "vector unsigned int" or from
	"vector long long int" to "vector unsigned long long int".
	Changed type returned by __builtin_vec_extract_exp,
	__builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
	functions from "vector int" to "vector unsigned int" or from
	"vector long long int" to "vector unsigned long long int".
	Changed return type of __builtin_vec_test_data_class,
	__builtin_vec_test_data_class_sp, and
	__builtin_vec_test_data_class_dp from "vector int" to
	"vector bool int" or from "vector long long int" to "vector bool
	long long int" and changed second argument type from "unsigned
	int" to "int".  Added new overloaded function forms "vector float
	__builtin_vec_insert_exp (vector float, vector unsigned int)" and
	"vector float __builtin_vec_insert_exp_sp (vector float, vector
	unsigned int)" and "vector double __builtin_vec_insert_exp (vector
	double, vector unsigned long long int)" and "vector double
	__builtin_vec_insert_exp_dp (vector double, vector unsigned long
	long int)".  Changed return type of
	__builtin_scalar_test_data_class and
	__builtin_scalar_test_data_class_sp and
	__builtin_scalar_test_data_class_dp from "unsigned int" to "bool
	int" and changed second argument from "unsigned int" to "int".
	Changed type returned by __builtin_scalar_test_neg,
	__builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
	from "int" to "bool int".  Added new overloaded function form
	"double __builtin_scalar_insert_exp (double, unsigned long long int)".
	* config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
	exponent double-precision with floating point first argument.
	* doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
	documentation of scalar_test_data_class, scalar_test_neg,
	scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
	vector_extract_exp, vec_extract_sig, vec_insert_exp, and
	vec_test_data_class built-in functions to reflect refinements in
	their type signatures.

From-SVN: r244834
2017-01-23 21:56:58 +00:00
Nathan Sidwell fc7612fd02 PR c++/71710 - template using directive of field
PR c++/71710 - template using directive of field
	* pt.c (tsubst_copy_and_build [COMPONENT_REF]): Move FIELD_DECL
	check earlier.

	PR C++/71710
	* g++.dg/template/pr71710.C: New.

From-SVN: r244833
2017-01-23 20:24:32 +00:00
Nathan Sidwell e6b8075cce PR c++/71406 - ICE with scope-ref'd template id exprs
PR c++/71406 - ICE with scope-ref'd template id exprs
	PR c++/77508
	* typeck.c (finish_class_member_access_expr): Break up SCOPE_REF
	before breaking up TEMPLATE_ID_EXPR.

	PR c++/71406
	PR c++/77508
	* g++.dg/template/pr71406.C: New.

From-SVN: r244832
2017-01-23 20:19:07 +00:00
Thomas Koenig 15b8fd499d arith.c (arith_power): If simplifying integer power expression to zero...
2017-01-23  Thomas Koenig  <tkoenig@netcologne.de>

	* arith.c (arith_power):  If simplifying integer power expression
	to zero, warn if -Winteger-division is given.

2017-01-23  Thomas Koenig  <tkoenig@netcologne.de>

	* gfortran.dg/integer_exponentiation_7.f90:  New test.

From-SVN: r244830
2017-01-23 19:43:28 +00:00
Bernd Schmidt e9c4fbe9c1 re PR rtl-optimization/78634 (30% performance drop after r242832.)
PR rtl-optimization/78634
	* config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
	(TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
	* ifcvt.c (noce_try_cmove): Add missing cost check.

testsuite/
	PR rtl-optimization/78634
	* gcc.target/i386/funcspec-11.c: Also pass -mtune=i686.

From-SVN: r244816
2017-01-23 16:17:33 +00:00
Bin Cheng 8539a302cd re PR tree-optimization/70754 (ICE during predictive commoning)
PR tree-optimization/70754
	* tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
	(reassociate_to_the_same_stmt): New parameter INSERT_BEFORE.  Insert
	combined stmt before it if not NULL.
	(combine_chains): Process refs reversely and compute dominance point
	for root ref.

	gcc/testsuite
	PR tree-optimization/70754
	* gfortran.dg/pr70754.f90: New test.

From-SVN: r244815
2017-01-23 15:59:19 +00:00
Martin Liska f368600fcd Fix strstr folding (PR tree-optimization/79196).
2017-01-23  Martin Liska  <mliska@suse.cz>

	PR tree-optimization/79196
	* tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
	(fold_strstr_to_strncmp): ... this.  Fold the pattern to strncmp
	instead of memcmp.
	(strlen_optimize_stmt): Call the renamed function.
2017-01-23  Martin Liska  <mliska@suse.cz>

	PR tree-optimization/79196
	* gcc.dg/asan/pr79196.c: New test.
	* gcc.dg/strlenopt-30.c: Update scanned pattern.

From-SVN: r244812
2017-01-23 14:57:43 +00:00
Michael Matz d886761fd0 fix pr78384
PR tree-optimization/78384
	* tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.

testsuite/
	PR tree-optimization/78384
	* gcc.dg/pr78384.c: New test.

From-SVN: r244811
2017-01-23 13:57:31 +00:00
Richard Biener cffcafda6a re PR tree-optimization/79186 (ICE on valid code at -O2 and -O3 on x86_64-linux-gnu: Segmentation fault (in VRP))
2017-01-23  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/79186
	* tree-vrp.c (register_new_assert_for): Make sure we've seen
	both incoming edges before moving an assert.

	* gcc.dg/torture/pr79186.c: New testcase.
	* gcc.dg/torture/pr79187.c: Likewise.

From-SVN: r244804
2017-01-23 13:08:44 +00:00
Martin Jambor bda2bc48c2 Fix compute_complex_assign_jump_func
2017-01-23  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.c (load_from_param_1): Removed.
	(load_from_unmodified_param): Bits from load_from_param_1 put back
	here.
	(load_from_param): Removed.
	(compute_complex_assign_jump_func): Removed stmt2 and just replaced it
	with stmt.  Reverted back to use of load_from_unmodified_param.

testsuite/
	* gcc.dg/ipa/vrp8.c: New test.

From-SVN: r244803
2017-01-23 14:05:00 +01:00
Martin Jambor f65f1ae3b9 [PR 79108] Put ipa_node_params to GC memory
2017-01-23  Martin Jambor  <mjambor@suse.cz>

	PR ipa/79108
	* ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
	(ipa_node_params): Annotate with GTY((for_user)).  Make descriptors
	field a pointer to garbage collected vector, mark lattices and
	ipcp_orig_node with GTY((skip)).
	(ipa_get_param_count): Adjust to descriptors being a pointer.
	(ipa_get_param): Likewise.
	(ipa_get_type): Likewise.
	(ipa_get_param_move_cost): Likewise.
	(ipa_set_param_used): Likewise.
	(ipa_get_controlled_uses): Likewise.
	(ipa_set_controlled_uses): Likewise.
	(ipa_is_param_used): Likewise.
	(ipa_node_params_t): Move into garbage collector.  New methods insert
	and remove.
	(ipa_node_params_sum): Annotate wth GTY(()).
	(ipa_check_create_node_params): Adjust to ipa_node_params_sum being
	garbage collected.
	(ipa_load_from_parm_agg): Adjust declaration.
	* ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
	* ipa-profile.c (ipa_profile): Likewise.
	* ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
	(ipa_populate_param_decls): Make descriptors parameter garbage
	collected.
	(ipa_dump_param): Adjust to descriptors being a pointer.
	(ipa_alloc_node_params): Likewise.
	(ipa_initialize_node_params): Likewise.
	(load_from_param_1): Make descriptors parameter garbage collected.
	(load_from_unmodified_param): Likewise.
	(load_from_param): Likewise.
	(ipa_load_from_parm_agg): Likewise.
	(ipa_node_params::~ipa_node_params): Removed.
	(ipa_free_all_node_params): Remove call to delete operator.
	(ipa_node_params_t::insert): New.
	(ipa_node_params_t::remove): Likewise.
	(ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
	copy known_csts and known_contexts vectors.
	(ipa_read_node_info): Adjust to descriptors being a pointer.
	(ipcp_modif_dom_walker): Make m_descriptors field garbage
	collected.
	(ipcp_transform_function): Make descriptors variable garbage
	collected.

testsuite/
	* gfortran.dg/lto/pr79108_0.f90: New test.

From-SVN: r244802
2017-01-23 14:01:31 +01:00
Andrew Senkevich dea061117a Add AVX512 k-mask intrinsics
gcc/
	* config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
	* config/i386/avx512dqintrin.h: Ditto.
	* config/i386/avx512fintrin.h: Ditto.
	* gcc/config/i386/i386.c: Handle new builtins.
	* config/i386/i386-builtin.def: Add new builtins.
	* config/i386/sse.md (ktest<mode>, kortest<mode>): New.
	(UNSPEC_KORTEST, UNSPEC_KTEST): New.

gcc/testsuite/
	* gcc.target/i386/avx512bw-ktestd-1.c: New test.
	* gcc.target/i386/avx512bw-ktestq-1.c: Ditto.
	* gcc.target/i386/avx512dq-ktestb-1.c: Ditto.
	* gcc.target/i386/avx512f-ktestw-1.c: Ditto.
	* gcc.target/i386/avx512bw-kortestd-1.c: Ditto.
	* gcc.target/i386/avx512bw-kortestq-1.c: Ditto.
	* gcc.target/i386/avx512dq-kortestb-1.c: Ditto.
	* gcc.target/i386/avx512f-kortestw-1.c: Ditto.
	* gcc.target/i386/avx512bw-ktestd-2.c: Ditt
	* gcc.target/i386/avx512bw-ktestq-2.c: Ditto.
	* gcc.target/i386/avx512dq-ktestb-2.c: Ditto.
	* gcc.target/i386/avx512f-ktestw-2.c: Ditto.
	* gcc.target/i386/avx512bw-kortestd-2.c: Ditto.
	* gcc.target/i386/avx512bw-kortestq-2.c: Ditto.
	* gcc.target/i386/avx512dq-kortestb-2.c: Ditto.
	* gcc.target/i386/avx512f-kortestw-2.c: Ditto.

From-SVN: r244801
2017-01-23 12:52:39 +00:00