2014-11-18  Christophe Lyon  <christophe.lyon@linaro.org>

	gcc/
	* config/arm/neon-testgen.ml (emit_prologue): Handle new
	compile_test_optim argument.
	(emit_automatics): Rename to emit_variables. Support variable
	indentation of its output.
	(compile_test_optim): New function.
	(test_intrinsic): Call compile_test_optim.
	* config/arm/neon.ml (features): Add Compiler_optim.
	(ops): Add Compiler_optim feature to Vbic and Vorn.
	(type_in_crypto_only): Replace 'or' by '||'.
	(reinterp): Likewise.
	(reinterpq): Likewise.

	testsuite/
	* gcc.target/arm/neon/vbicQs16.c: Regenerate.
	* gcc.target/arm/neon/vbicQs32.c: Likewise.
	* gcc.target/arm/neon/vbicQs64.c: Likewise.
	* gcc.target/arm/neon/vbicQs8.c: Likewise.
	* gcc.target/arm/neon/vbicQu16.c: Likewise.
	* gcc.target/arm/neon/vbicQu32.c: Likewise.
	* gcc.target/arm/neon/vbicQu64.c: Likewise.
	* gcc.target/arm/neon/vbicQu8.c: Likewise.
	* gcc.target/arm/neon/vbics16.c: Likewise.
	* gcc.target/arm/neon/vbics32.c: Likewise.
	* gcc.target/arm/neon/vbics64.c: Likewise.
	* gcc.target/arm/neon/vbics8.c: Likewise.
	* gcc.target/arm/neon/vbicu16.c: Likewise.
	* gcc.target/arm/neon/vbicu32.c: Likewise.
	* gcc.target/arm/neon/vbicu64.c: Likewise.
	* gcc.target/arm/neon/vbicu8.c: Likewise.
	* gcc.target/arm/neon/vornQs16.c: Likewise.
	* gcc.target/arm/neon/vornQs32.c: Likewise.
	* gcc.target/arm/neon/vornQs64.c: Likewise.
	* gcc.target/arm/neon/vornQs8.c: Likewise.
	* gcc.target/arm/neon/vornQu16.c: Likewise.
	* gcc.target/arm/neon/vornQu32.c: Likewise.
	* gcc.target/arm/neon/vornQu64.c: Likewise.
	* gcc.target/arm/neon/vornQu8.c: Likewise.
	* gcc.target/arm/neon/vorns16.c: Likewise.
	* gcc.target/arm/neon/vorns32.c: Likewise.
	* gcc.target/arm/neon/vorns64.c: Likewise.
	* gcc.target/arm/neon/vorns8.c: Likewise.
	* gcc.target/arm/neon/vornu16.c: Likewise.
	* gcc.target/arm/neon/vornu32.c: Likewise.
	* gcc.target/arm/neon/vornu64.c: Likewise.
	* gcc.target/arm/neon/vornu8.c: Likewise.



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

	PR c++/60771
	* g++.dg/cpp0x/constexpr-ref6.C: New.


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

	PR c++/60245
	* g++.dg/cpp0x/constexpr-60245.C: New.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217709 138bc75d-0d04-0410-961f-82ee72b054a4
Fix header conflicts in nvptx.

	* config/nvptx/nvptx.c: Include <sstream> directly after "config.h".

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

	PR c++/55443
	* g++.dg/cpp0x/noexcept26.C: New.
	* g++.dg/cpp0x/noexcept27.C: Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217711 138bc75d-0d04-0410-961f-82ee72b054a4
2014-11-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/63914
	* tree-ssa-ccp.c (canonicalize_value): Remove float value
	canonicalization.
	(valid_lattice_transition): Allow (partial) transition
	from NaN to non-NaN if !HONOR_NANS.
	(set_lattice_value): Check for valid lattice transitions
	only when checking is enabled.

	* gcc.dg/pr63914.c: New testcase.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217712 138bc75d-0d04-0410-961f-82ee72b054a4
	PR c++/58102
	* typeck2.c (store_init_value): Set it.
	* cp-tree.h (CONSTRUCTOR_MUTABLE_POISON): New.
	* constexpr.c (cxx_eval_outermost_constant_expr): Check it.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217713 138bc75d-0d04-0410-961f-82ee72b054a4
	* tree.c (warn_deprecated_use): Show declaration with inform.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217714 138bc75d-0d04-0410-961f-82ee72b054a4
	* pt.c (instantiate_template_1): Use tsubst_aggr_type for context.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217716 138bc75d-0d04-0410-961f-82ee72b054a4
       * config/aarch64/aarch64.c (doloop_end): New pattern.
       * config/aarch64/aarch64.md (TARGET_CAN_USE_DOLOOP_P): Implement.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217717 138bc75d-0d04-0410-961f-82ee72b054a4
	PR sanitizer/63866
	* asan.c (asan_global_struct): Create a TYPE_DECL for "__asan_global",
	put it into TYPE_NAME and TYPE_STUB_DECL.
	* ubsan.c (ubsan_type_descriptor_type): New variable.
	Function renamed to ...
	(ubsan_get_type_descriptor_type): ... this.  Cache
	return value in ubsan_type_descriptor_type variable.
	Create a TYPE_DECL for "__ubsan_type_descriptor", put it into
	TYPE_NAME and TYPE_STUB_DECL.
	(ubsan_get_source_location_type): Create a TYPE_DECL for
	"__ubsan_source_location", put it into TYPE_NAME and TYPE_STUB_DECL.
	(ubsan_type_descriptor, ubsan_create_data): Call
	ubsan_get_type_descriptor_type instead of ubsan_type_descriptor_type.
	Create a TYPE_DECL for name, put it into TYPE_NAME and TYPE_STUB_DECL.

	* c-c++-common/ubsan/pr63866.c: New test.


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

	PR c++/55942
	* g++.dg/cpp0x/constexpr-55942.C: New.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217719 138bc75d-0d04-0410-961f-82ee72b054a4
New template fibonacci_heap class introduced.

	* fibonacci_heap.h: New file.
	(fibonacci_heap::insert): Created from fibheap_insert.
	(fibonacci_heap::empty): Created from fibheap_empty.
	(fibonacci_heap::nodes): Created from fibheap_nodes.
	(fibonacci_heap::min_key): Created from fibheap_min_key.
	(fibonacci_heap::decrease_key): Created from fibheap_replace_key.
	(fibonacci_heap::replace_key_data): Created from fibheap_replace_key_data.
	(fibonacci_heap::extract_min): Created from fibheap_extract_min.
	(fibonacci_heap::min): Created from fibheap_min.
	(fibonacci_heap::replace_data): Created from fibheap_replace_data.
	(fibonacci_heap::delete_node): Created from fibheap_delete_node.
	(fibonacci_heap::union_with): Created from fibheap_union.
	* ipa-inline.c (update_edge_key): New heap API is used.
	(update_caller_keys): Likewise.
	(update_callee_keys): Likewise.
	(lookup_recursive_calls): Likewise.
	(recursive_inlining): Likewise.
	(add_new_edges_to_heap): Likewise.
	(heap_edge_removal_hook): Likewise.
	(inline_small_functions): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217720 138bc75d-0d04-0410-961f-82ee72b054a4
fibonacci_heap is used for bb-reoder purpose.

	* bb-reorder.c (mark_bb_visited): New fibonacci_heap is used.
	(find_traces): Likewise.
	(find_traces_1_round): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217721 138bc75d-0d04-0410-961f-82ee72b054a4
tracer ported to new fibonacci_heap data structure.

	* tracer.c (tail_duplicate): New fibonacci_heap class is used.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217722 138bc75d-0d04-0410-961f-82ee72b054a4
bt-load is ported to fibonacci_heap.

	* bt-load.c (add_btr_def): New fibonacci_heap is used.
	(migrate_btr_defs): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217723 138bc75d-0d04-0410-961f-82ee72b054a4
fibonacci_heap is used for var-tracking.

	* var-tracking.c (vt_find_locations): New fibonacci_node is used.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217724 138bc75d-0d04-0410-961f-82ee72b054a4
[ARM/AArch64] Improve modeled latency between FP operations and FP->GP register moves

	* config/arm/cortex-a15-neon.md (cortex_a15_vfp_to_from_gp):
	Split into...
	(cortex_a15_gp_to_vfp): ...This.
	(cortex_a15_fp_to_gp): ...And this.
	Define and comment bypass from vfp operations to fp->gp moves.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217725 138bc75d-0d04-0410-961f-82ee72b054a4
	* gcc.dg/atomic/c11-atomic-exec-5.c (dg-timeout-factor): New
	setting.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217726 138bc75d-0d04-0410-961f-82ee72b054a4
	* gcc/config/mips/mips.md (*jump_absolute): Use a branch when in
	range, a jump otherwise.


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