2014-11-10  Richard Biener  <rguenther@suse.de>

	PR middle-end/63798
	* expr.c (expand_expr_real_2): When expanding FMA_EXPRs
	properly treat the embedded multiplication as commutative
	when looking for feeding negates.


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

	PR tree-optimization/63800
	* tree-ssa-pre.c (eliminate_push_avail): Push in a way so
	we can restore the previous availability in after_dom_children.
	(eliminate_dom_walker::after_dom_children): Restore
	previous availability.

	* gcc.dg/torture/pr63800.c: New testcase.


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

	* match.pd: Implement pattern from simplify_mult.
	* tree-ssa-forwprop.c (simplify_mult): Remove.
	(pass_forwprop::execute): Do not call simplify_mult.


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

	* tree-ssa-operands.c (finalize_ssa_uses): Properly put
	released operands on the free list.


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