r249128 - in /trunk/gcc: ChangeLog combine.c

rsandifo@gcc.gnu.org rsandifo@gcc.gnu.org
Mon Jun 12 16:06:00 GMT 2017


Author: rsandifo
Date: Mon Jun 12 16:06:38 2017
New Revision: 249128

URL: https://gcc.gnu.org/viewcvs?rev=249128&root=gcc&view=rev
Log:
Fix pessimistic DImode handling in combine.c:make_field_assignment

The make_field_assignment code:

      src = force_to_mode (src, mode,
		       GET_MODE_PRECISION (mode) >= HOST_BITS_PER_WIDE_INT
		       ? HOST_WIDE_INT_M1U
		       : (HOST_WIDE_INT_1U << len) - 1,
		       0);

would ignore the field length len for DImode, even though DImode can be
handled using HWIs.  I think the code should be testing len instead.

2017-06-12  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
	* combine.c (make_field_assignment): Check len rather than the mode
	precision when calling force_to_mode.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/combine.c



More information about the Gcc-cvs mailing list