Fix some bool vs. tree confusion.

	gcc/c/
	* c-parser.c (c_parser_omp_target): Return bool values.
	gcc/cp/
	* parser.c (cp_parser_omp_target): Return bool values.

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

	gcc/
	* gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
	Explicitly enumerate the expected region types.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210852 138bc75d-0d04-0410-961f-82ee72b054a4
Remove duplicated variable initialization.

	gcc/c/
	* c-typeck.c (c_finish_omp_clauses): Remove duplicated variable
	initialization.
	gcc/cp/
	* semantics.c (finish_omp_clauses): Remove duplicated variable
	initialization.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210853 138bc75d-0d04-0410-961f-82ee72b054a4
Just enumerate all GF_OMP_FOR_KIND_* and GF_OMP_TARGET_KIND_*.

	gcc/
	* gimple.h (enum gf_mask): Rewrite "<< 0" shift expressions used
	for GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_KIND_FOR,
	GF_OMP_FOR_KIND_DISTRIBUTE, GF_OMP_FOR_KIND_SIMD,
	GF_OMP_FOR_KIND_CILKSIMD, GF_OMP_TARGET_KIND_MASK,
	GF_OMP_TARGET_KIND_REGION, GF_OMP_TARGET_KIND_DATA,
	GF_OMP_TARGET_KIND_UPDATE.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210854 138bc75d-0d04-0410-961f-82ee72b054a4
GF_OMP_FOR_SIMD: Flag for SIMD variants of OMP_FOR kinds.

	gcc/
	* gimple.h (enum gf_mask): Add and use GF_OMP_FOR_SIMD.
	* omp-low.c: Update accordingly.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210855 138bc75d-0d04-0410-961f-82ee72b054a4
	* varasm.c (output_constructor_bitfield): Fix thinkos in latest change.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210856 138bc75d-0d04-0410-961f-82ee72b054a4
2014-05-23  Paolo Carlini  <paolo.carlini@oracle.com>

	* g++.dg/cpp1y/lambda-init9.C: New.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210857 138bc75d-0d04-0410-961f-82ee72b054a4
Make it easier to diff expand_omp_for_* functions.

	gcc/
	* omp-low.c (expand_omp_for_static_chunk): Rename variable si to
	gsi, and variables v_* to v*.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210858 138bc75d-0d04-0410-961f-82ee72b054a4
	* testsuite/30_threads/async/54297.cc: Remove duplicate dragonfly
	selector.
	* testsuite/30_threads/call_once/60497.cc: Likewise.
	* testsuite/30_threads/condition_variable/54185.cc: Likewise.
	* testsuite/30_threads/condition_variable_any/53830.cc: Likewise.
	* testsuite/30_threads/packaged_task/60564.cc: Likewise.
	* testsuite/30_threads/packaged_task/cons/56492.cc: Likewise.
	* testsuite/30_threads/promise/60966.cc: Likewise.
	* testsuite/30_threads/shared_lock/cons/1.cc: Likewise.
	* testsuite/30_threads/shared_lock/cons/2.cc: Likewise.
	* testsuite/30_threads/shared_lock/cons/3.cc: Likewise.
	* testsuite/30_threads/shared_lock/cons/4.cc: Likewise.
	* testsuite/30_threads/shared_lock/cons/5.cc: Likewise.
	* testsuite/30_threads/shared_lock/cons/6.cc: Likewise.
	* testsuite/30_threads/shared_lock/locking/1.cc: Likewise.
	* testsuite/30_threads/shared_lock/locking/2.cc: Likewise.
	* testsuite/30_threads/shared_lock/locking/3.cc: Likewise.
	* testsuite/30_threads/shared_lock/locking/4.cc: Likewise.
	* testsuite/30_threads/shared_lock/modifiers/1.cc: Likewise.
	* testsuite/30_threads/shared_lock/modifiers/2.cc: Likewise.
	* testsuite/30_threads/shared_timed_mutex/cons/1.cc: Likewise.
	* testsuite/30_threads/shared_timed_mutex/try_lock/1.cc:
	* testsuite/30_threads/shared_timed_mutex/try_lock/2.cc: Likewise.
	* testsuite/30_threads/thread/native_handle/cancel.cc: Likewise.
	* testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210859 138bc75d-0d04-0410-961f-82ee72b054a4
Be a bit less explicit.

	gcc/
	* gimplify.c (omp_notice_variable) <case OMP_CLAUSE_DEFAULT_NONE>:
	Rewrite check for ORT_PARALLEL and ORT_COMBINED_PARALLEL.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210860 138bc75d-0d04-0410-961f-82ee72b054a4
[AARCH64] Support tail indirect function call.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210861 138bc75d-0d04-0410-961f-82ee72b054a4
	* builtins.def: Change SANITIZE_FLOAT_DIVIDE to SANITIZE_NONDEFAULT.
	* gcc.c (sanitize_spec_function): Likewise.
	* convert.c (convert_to_integer): Include "ubsan.h".  Add
	floating-point to integer instrumentation.
	* doc/invoke.texi: Document -fsanitize=float-cast-overflow.
	* flag-types.h (enum sanitize_code): Add SANITIZE_FLOAT_CAST and
	SANITIZE_NONDEFAULT.
	* opts.c (common_handle_option): Handle -fsanitize=float-cast-overflow.
	* sanitizer.def (BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW,
	BUILT_IN_UBSAN_HANDLE_FLOAT_CAST_OVERFLOW_ABORT): Add.
	* ubsan.c: Include "realmpfr.h" and "dfp.h".
	(get_ubsan_type_info_for_type): Handle REAL_TYPEs.
	(ubsan_type_descriptor): Set tkind to 0xffff for types other than
	float/double/long double.
	(ubsan_instrument_float_cast): New function.
	* ubsan.h (ubsan_instrument_float_cast): Declare.
testsuite/
	* c-c++-common/ubsan/float-cast-overflow-1.c: New test.
	* c-c++-common/ubsan/float-cast-overflow-10.c: New test.
	* c-c++-common/ubsan/float-cast-overflow-2.c: New test.
	* c-c++-common/ubsan/float-cast-overflow-3.c: New test.
	* c-c++-common/ubsan/float-cast-overflow-4.c: New test.
	* c-c++-common/ubsan/float-cast-overflow-5.c: New test.
	* c-c++-common/ubsan/float-cast-overflow-6.c: New test.
	* c-c++-common/ubsan/float-cast-overflow-7.c: New test.
	* c-c++-common/ubsan/float-cast-overflow-7.h: New file.
	* c-c++-common/ubsan/float-cast-overflow-8.c: New test.
	* c-c++-common/ubsan/float-cast-overflow-9.c: New test.
	* c-c++-common/ubsan/float-cast.h: New file.
	* g++.dg/ubsan/float-cast-overflow-bf.C: New test.
	* gcc.dg/ubsan/float-cast-overflow-bf.c: New test.
libsanitizer/
	* ubsan/ubsan_value.cc (getFloatValue): Handle 96-bit
	floating-point types.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210862 138bc75d-0d04-0410-961f-82ee72b054a4
2014-05-23  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/61215
	* gcc.target/i386/pr61215.c: New.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210863 138bc75d-0d04-0410-961f-82ee72b054a4
2014-05-23  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/53787
	* params.def (PARAM_IPA_MAX_AA_STEPS): New param.
	* ipa-prop.h (ipa_node_params): Rename uses_analysis_done to
	analysis_done, update all uses.
	* ipa-prop.c: Include domwalk.h
	(param_analysis_info): Removed.
	(param_aa_status): New type.
	(ipa_bb_info): Likewise.
	(func_body_info): Likewise.
	(ipa_get_bb_info): New function.
	(aa_overwalked): Likewise.
	(find_dominating_aa_status): Likewise.
	(parm_bb_aa_status_for_bb): Likewise.
	(parm_preserved_before_stmt_p): Changed to use new param AA info.
	(load_from_unmodified_param): Accept func_body_info as a parameter
	instead of parms_ainfo.
	(parm_ref_data_preserved_p): Changed to use new param AA info.
	(parm_ref_data_pass_through_p): Likewise.
	(ipa_load_from_parm_agg_1): Likewise.  Update callers.
	(compute_complex_assign_jump_func): Changed to use new param AA info.
	(compute_complex_ancestor_jump_func): Likewise.
	(ipa_compute_jump_functions_for_edge): Likewise.
	(ipa_compute_jump_functions): Removed.
	(ipa_compute_jump_functions_for_bb): New function.
	(ipa_analyze_indirect_call_uses): Likewise, moved variable
	declarations down.
	(ipa_analyze_virtual_call_uses): Accept func_body_info instead of node
	and info, moved variable declarations down.
	(ipa_analyze_call_uses): Accept and pass on func_body_info instead of
	node and info.
	(ipa_analyze_stmt_uses): Likewise.
	(ipa_analyze_params_uses): Removed.
	(ipa_analyze_params_uses_in_bb): New function.
	(ipa_analyze_controlled_uses): Likewise.
	(free_ipa_bb_info): Likewise.
	(analysis_dom_walker): New class.
	(ipa_analyze_node): Handle node-specific forbidden analysis,
	initialize and free func_body_info, use dominator walker.
	(ipcp_modif_dom_walker): New class.
	(ipcp_transform_function): Create and free func_body_info, use
	ipcp_modif_dom_walker, moved a lot of functionality there.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210864 138bc75d-0d04-0410-961f-82ee72b054a4
[PATCH 1/9] rs6000: Clean up the "type" attribute

Get rid of the one huge line.  Group and order things a bit.  Further
changes will follow so this doesn't try to make it perfect.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210865 138bc75d-0d04-0410-961f-82ee72b054a4
rs6000: New type attribute value "halfmul"

This is for the legacy integer multiply-accumulate instructions.
Quite a mouthful, and "mulhw" is also a terrible name since we already
have a machine instruction called exactly that.  Hence "halfmul".

Also fixes the titan automaton description for this.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210866 138bc75d-0d04-0410-961f-82ee72b054a4
rs6000: Make all multiply instructions one type

This uses the attributes "size" and "dot" to specify the differences:

	imul3 -> mul size=8
	imul2 -> mul size=16
	imul -> mul size=32
	lmul -> mul size=64
	imul_compare -> mul size=32 dot=yes
	lmul_compare -> mul size=64 dot=yes


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210867 138bc75d-0d04-0410-961f-82ee72b054a4
rs6000: Make all insert instructions one type

This uses the attribute "size" to specify the differences:

	insert_word  -> insert size=32
	insert_dword -> insert size=64

It could use "dot" as well, but the current code doesn't handle that.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210868 138bc75d-0d04-0410-961f-82ee72b054a4
rs6000: Make all divide instructions one type

This uses the attribute "size" to specify the differences:

	idiv -> div size=32
	ldiv -> div size=64

It could use "dot" as well, but the current code doesn't handle that.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@210869 138bc75d-0d04-0410-961f-82ee72b054a4
rs6000: Make all shift instructions one type

This uses the attributes "var_shift" and "dot" to specify the differences:

	var_shift_rotate    -> shift var_shift=yes
	delayed_compare     -> shift var_shift=no  dot=yes
	var_delayed_compare -> shift var_shift=yes dot=yes


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