2013-05-14  Marc Glisse  <marc.glisse@inria.fr>

gcc/
	* fold-const.c (fold_negate_expr): Handle vectors.
	(fold_truth_not_expr): Make it static.
	(fold_invert_truthvalue): New static function.
	(invert_truthvalue_loc): Handle vectors. Do not call
	fold_truth_not_expr directly.
	(fold_unary_loc) <BIT_NOT_EXPR>: Handle comparisons.
	<TRUTH_NOT_EXPR>: Do not cast to boolean.
	(fold_comparison): Handle vector constants.
	(fold_binary_loc) <TRUTH_XOR_EXPR>: Remove redundant code.
	(fold_ternary_loc) <VEC_COND_EXPR>: Adapt more COND_EXPR optimizations.
	* tree.h (fold_truth_not_expr): Remove declaration.

gcc/testsuite/
	* g++.dg/ext/vector22.C: New testcase.
	* gcc.dg/binop-xor3.c: Remove xfail.



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

	* rtl.h (next_label, skip_consecutive_labels, link_cc0_insns):
	Remove prototypes.
	* emit-rtl.c (next_label): Remove unused function.
	(skip_consecutive_labels, link_cc0_insns): Move to ...
	* reorg.c (skip_consecutive_labels, link_cc0_insns): ... here, the
	only place where these functions are used, and make them static.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198894 138bc75d-0d04-0410-961f-82ee72b054a4
	* resource.h (struct resources): Remove unch_memory member.
	(CLEAR_RESOURCE): Don't clear unch_memory.
	* resource.c (mark_referenced_resources): Don't set it.
	(mark_set_resources): Likewise.
	(mark_target_live_regs): Don't clear it.
	(init_resource_info): Likewise.
	* reorg.c (resource_conflicts_p): Don't compare it.
	(redundant_insn): Don't set it.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198895 138bc75d-0d04-0410-961f-82ee72b054a4
	* web.c (union_match_dups): Also check DF_REF_REAL_LOC.


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