r174508 - in /trunk/gcc: ChangeLog cselib.c dwa...

jakub@gcc.gnu.org jakub@gcc.gnu.org
Tue May 31 19:14:00 GMT 2011


Author: jakub
Date: Tue May 31 19:14:21 2011
New Revision: 174508

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=174508
Log:
	* cselib.c (promote_debug_loc): Allow l->next non-NULL for
	cselib_preserve_constants.
	(cselib_lookup_1): If cselib_preserve_constants,
	a new VALUE is being created for REG and there is a VALUE for the
	same register in wider mode, add another loc with lowpart SUBREG of
	the wider VALUE.
	(cselib_subst_to_values): Handle ENTRY_VALUE.
	* var-tracking.c  (replace_expr_with_values): Return NULL for
	ENTRY_VALUE too.
	* dwarf2out.c (convert_descriptor_to_signed): New function.
	(mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
	instead of two shifts.
	(mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
	the right mode if needed.
	(mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
	(mem_loc_descriptor) <case UNSIGNED_FIX>: Use
	convert_descriptor_to_signed.
	(mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
	BSWAP, ROTATE, ROTATERT>: Handle these rtls.

	* gcc.dg/guality/bswaptest.c: New test.
	* gcc.dg/guality/clztest.c: New test.
	* gcc.dg/guality/ctztest.c: New test.
	* gcc.dg/guality/rotatetest.c: New test.

Added:
    trunk/gcc/testsuite/gcc.dg/guality/bswaptest.c
    trunk/gcc/testsuite/gcc.dg/guality/clztest.c
    trunk/gcc/testsuite/gcc.dg/guality/ctztest.c
    trunk/gcc/testsuite/gcc.dg/guality/rotatetest.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/cselib.c
    trunk/gcc/dwarf2out.c
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/var-tracking.c



More information about the Gcc-cvs mailing list