2013-06-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to
	UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
	(struct machine_function): Add tbegin_p.
	(s390_canonicalize_comparison): Fold CC mode compares to
	conditional jump if possible.
	(s390_emit_jump): Return the emitted jump.
	(s390_branch_condition_mask, s390_branch_condition_mnemonic):
	Handle CCRAWmode compares.
	(s390_option_override): Default to -mhtm if available.
	(s390_reg_clobbered_rtx): Handle floating point regs as well.
	(s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for
	FPRs instead of df_regs_ever_live_p.
	(s390_optimize_nonescaping_tx): New function.
	(s390_init_frame_layout): Extend clobbered_regs array to cover
	FPRs as well.
	(s390_emit_prologue): Call s390_optimize_nonescaping_tx.
	(s390_expand_tbegin): New function.
	(enum s390_builtin): New enum definition.
	(code_for_builtin): New array definition.
	(s390_init_builtins): New function.
	(s390_expand_builtin): New function.
	(TARGET_INIT_BUILTINS): Define.
	(TARGET_EXPAND_BUILTIN): Define.
	* common/config/s390/s390-common.c (processor_flags_table): Add
	PF_TX.
	* config/s390/predicates.md (s390_comparison): Handle CCRAWmode.
	(s390_alc_comparison): Likewise.
	* config/s390/s390-modes.def: Add CCRAWmode.
	* config/s390/s390.h (processor_flags): Add PF_TX.
	(TARGET_CPU_HTM): Define macro.
	(TARGET_HTM): Define macro.
	(TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm.
	* config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to
	UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
	(UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT)
	(UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum
	values.
	(TBEGIN_MASK, TBEGINC_MASK): New constants.
	("*cc_to_int"): Move up.
	("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer
	constants other than 0.
	("*ccraw_to_int"): New insn and splitter definition.
	("tbegin", "tbegin_nofloat", "tbegin_retry")
	("tbegin_retry_nofloat", "tbeginc", "tend", "tabort")
	("tx_assist"): New expander.
	("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1")
	("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition.
	* config/s390/s390.opt: Add -mhtm option.
	* config/s390/s390-protos.h (s390_emit_jump): Add return type.
	* config/s390/htmxlintrin.h: New file.
	* config/s390/htmintrin.h: New file.
	* config/s390/s390intrin.h: New file.
	* doc/extend.texi: Document htm builtins.
	* config.gcc: Add the new header files to extra_headers.

2013-06-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* gcc.target/s390/htm-1.c: New file.
	* gcc.target/s390/htm-nofloat-1.c: New file.
	* gcc.target/s390/htm-xl-intrin-1.c: New file.

2013-06-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/target.h: Include htmintrin.h.
	(_HTM_ITM_RETRIES): New macro definition.
	(htm_available, htm_init, htm_begin, htm_begin_success)
	(htm_commit, htm_abort, htm_abort_should_retry): New functions.




git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200454 138bc75d-0d04-0410-961f-82ee72b054a4
2013-06-27  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/stl_deque.h (deque<>::insert(iterator,
	const value_type&), deque<>::insert(iterator, value_type&&),
	deque<>::emplace(iterator, _Args&&...)): Adjust C++11 signatures to
	take a const_iterator.
	(deque<>::erase): Simplify.
	* include/bits/stl_list.h: Likewise.
	(_List_iterator<>::_M_const_cast): Add.
	* include/bits/stl_vector.h: Likewise.
	* include/bits/stl_bvector.h: Likewise.
	(_Bit_iterator::_M_const_cast): Add.
	* include/bits/deque.tcc: Adjust definitions.
	* include/bits/list.tcc: Likewise.
	* include/bits/vector.tcc: Likewise.
	* include/bits/stl_iterator.h (__normal_iterator<>::_M_const_cast):
	Define trivial version in C++98 mode.
	* include/ext/vstring.h (__versa_string<>::insert(iterator, _CharT),
	__versa_string<>::replace(iterator, iterator, const __versa_string&),
	__versa_string<>::replace(iterator, iterator, const _CharT*,
	size_type), __versa_string<>::replace(iterator, iterator,
	const _CharT*), __versa_string<>::replace(iterator, iterator,
	size_type, _CharT)): Adjust C++11 signatures to take a pair of
	const_iterators.
	* include/debug/deque: Adjust.
	* include/debug/list: Likewise.
	* include/debug/vector: Likewise.
	* include/profile/deque: Likewise.
	* include/profile/list: Likewise.
	* include/profile/vector: Likewise.
	(vector<>::emplace): Add.
	* testsuite/util/exception/safety.h: Update.
	* testsuite/23_containers/deque/modifiers/emplace/const_iterator.cc:
	New.
	* testsuite/23_containers/deque/modifiers/insert/const_iterator.cc:
	Likewise.
	* testsuite/23_containers/list/modifiers/emplace/const_iterator.cc:
	Likewise.
	* testsuite/23_containers/list/modifiers/insert/const_iterator.cc:
	Likewise.
	* testsuite/23_containers/vector/bool/modifiers/insert/
	const_iterator.cc: Likewise.
	* testsuite/23_containers/vector/modifiers/emplace/const_iterator.cc:
	Likewise.
	* testsuite/23_containers/vector/modifiers/insert/const_iterator.cc:
	Likewise.
	* testsuite/ext/vstring/modifiers/insert/char/const_iterator.cc:
	Likewise.
	* testsuite/ext/vstring/modifiers/insert/wchar_t/const_iterator.cc:
	Likewise.
	* testsuite/ext/vstring/modifiers/replace/char/const_iterator.cc:
	Likewise.
	* testsuite/ext/vstring/modifiers/replace/wchar_t/const_iterator.cc:
	Likewise.

	* testsuite/ext/vstring/modifiers/char/54577.cc: Move to testsuite/
	ext/vstring/modifiers/erase/char/.
	* testsuite/ext/vstring/modifiers/wchar_t/54577.cc: Move to testsuite/
	ext/vstring/modifiers/wchar_t/.
	* testsuite/ext/vstring/modifiers/char/pop_back.cc: Move to testsuite/
	ext/vstring/modifiers/pop_back/char/.
	* testsuite/ext/vstring/modifiers/wchar_t/pop_back.cc: Move to
	testsuite/ext/vstring/modifiers/pop_back/wchar_t/.

	* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
	Adjust dg-error line number.
	* testsuite/23_containers/deque/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/deque/requirements/dr438/
	constructor_2_neg.cc: Likewise.
	* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
	Likewise.
	* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
	Likewise.
	* testsuite/23_containers/list/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/list/requirements/dr438/
	constructor_2_neg.cc: Likewise.
	* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
	Likewise.
	* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
	Likewise.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_2_neg.cc: Likewise.
	* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
	Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200458 138bc75d-0d04-0410-961f-82ee72b054a4
2013-06-27  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/57172
gcc/cp/
	* pt.c (more_specialized_fn): If both arguments are references,
	give priority to an lvalue.

gcc/testsuite/
	* g++.dg/cpp0x/pr57172.C: New testcase.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200463 138bc75d-0d04-0410-961f-82ee72b054a4
2013-06-27  Paolo Carlini  <paolo.carlini@oracle.com>

	* testsuite/21_strings/basic_string/append/*: Move inside
	testsuite/21_strings/basic_string/modifiers/.
	* testsuite/21_strings/basic_string/assign/*: Likewise.
	* testsuite/21_strings/basic_string/insert/*: Likewise.
	* testsuite/21_strings/basic_string/replace/*: Likewise.
	* testsuite/21_strings/basic_string/modifiers/pop_back/char/
	pop_back.cc: Rename to 1.cc.
	* testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t/
	pop_back.cc: Likewise.
	* testsuite/ext/vstring/assign/*: Move inside
	testsuite/ext/vstring/modifiers/.


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

	* config/aarch64/aarch64.c (aarch64_add_offset): Change to pass
	'mode' to aarch64_plus_immediate and gen_rtx_PLUS.


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

	* config/aarch64/aarch64.c (aarch64_force_temporary): Add an extra
	parameter 'mode' of type 'enum machine_mode mode'; change to pass
	'mode' to force_reg.
	(aarch64_add_offset): Update calls to aarch64_force_temporary.
	(aarch64_expand_mov_immediate): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200467 138bc75d-0d04-0410-961f-82ee72b054a4
2013-06-27  Martin Jambor  <mjambor@suse.cz>

	PR lto/57208
	* ipa-ref.h (ipa_maybe_record_reference): Declare.
	* ipa-ref.c (ipa_maybe_record_reference): New function.
	* cgraphclones.c (cgraph_create_virtual_clone): Use it.
	* ipa-cp.c (create_specialized_node): Record potential references from
	aggvals.
	* Makefile.in (ipa-ref.o): Add IPA_REF_H to dependencies.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200468 138bc75d-0d04-0410-961f-82ee72b054a4
2013-06-20  Roland Lutz  <rlutz@hedmen.org>

 	* contrib/aot-compile.in: Fix typo in option list.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200469 138bc75d-0d04-0410-961f-82ee72b054a4
	* tree-vect-stmts.c (vectorizable_store): Move ptr_incr var
	decl before the loop, initialize to NULL.
	(vectorizable_load): Initialize ptr_incr to NULL.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200471 138bc75d-0d04-0410-961f-82ee72b054a4
2013-06-27  Vladimir Makarov  <vmakarov@redhat.com>

	* lra-constraints.c (inherit_in_ebb): Process static hard regs
	too.  Process OP_INOUT regs for splitting too.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200475 138bc75d-0d04-0410-961f-82ee72b054a4
	PR target/57623
	* config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments
	to match RTL canonicalization.  Swap predicates and
	constraints of operand 1 and 2.

	* gcc.target/i386/bmi2-bzhi-1.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200477 138bc75d-0d04-0410-961f-82ee72b054a4
	PR target/57623
	* config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and
	constraints of operand 1 and 2.

	* gcc.target/i386/bmi-bextr-3.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200479 138bc75d-0d04-0410-961f-82ee72b054a4
2013-06-27  Catherine Moore <clm@codesourcery.com>

	* config/mips/mips-tables.opt: Regenerate.
	* config/mips/mips-cpus.def: Add m14ke and m14kec.
	* config/mips/mips.h (BASE_DRIVER_SELF_SPECS): m14ke* implies
	-mdspr2.
	* doc/invoke.texi: Add -m14kc.
 


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200487 138bc75d-0d04-0410-961f-82ee72b054a4
compiler: more consistent error message for [...]T(x)

The message should be similar to the one for "var x [...]T",
not to the message for []T(x...).


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200490 138bc75d-0d04-0410-961f-82ee72b054a4
2013-06-27  Marc Glisse  <marc.glisse@inria.fr>

	PR target/57224
	* config/i386/i386.c (enum ix86_builtins, bdesc_args): Remove
	IX86_BUILTIN_CMPNGTSS and IX86_BUILTIN_CMPNGESS.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200492 138bc75d-0d04-0410-961f-82ee72b054a4
compiler: structs inherit all methods from embedded pointer fields.

Previously if a struct S contained an embedded field *T,
a method with receiver *T would not be promoted to a method
with value receiver S.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200493 138bc75d-0d04-0410-961f-82ee72b054a4
2013-06-27  Marc Glisse  <marc.glisse@inria.fr>

	PR c++/57509

gcc/c-family/
	* c-common.h (c_build_vec_perm_expr): New complain argument.
	* c-common.c (c_build_vec_perm_expr): Likewise.
	Use save_expr also in C++.

gcc/cp/
	* typeck.c (cp_build_vec_perm_expr): New function.
	* cp-tree.h: Declare it.
	* parser.c (cp_parser_postfix_expression): Call it.
	* pt.c (tsubst_copy): Handle VEC_PERM_EXPR.
	(tsubst_copy_and_build): Likewise.

gcc/testsuite/
	* g++.dg/ext/pr57509.C: New file.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200495 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/
	* config.gcc (mips*-mti-elf*, mips*-sde-elf*, mips64r5900-*-elf*)
	(mips64r5900el-*-elf*): Include mips/n32-elf.h.
	* config/mips/sde.h (LOCAL_LABEL_PREFIX, NO_DOLLAR_IN_LABEL)
	(LONG_DOUBLE_TYPE_SIZE, LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Move to...
	* config/mips/n32-elf.h: ...this new file.


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

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

2013-06-27  Meador Inge  <meadori@codesourcery.com>

	* gcc.dg/atomic-flag.c: Add dg-require-effective-target sync_*.
	* g++.dg/simulate-thread/atomics-2.C: Likewise.
	* g++.dg/simulate-thread/atomics-1.C: Likewise.


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