Module Name: src Committed By: christos Date: Thu May 19 20:27:36 UTC 2016
Modified Files: src/external/gpl3/gcc/dist/gcc: alias.c var-tracking.c Log Message: Fix infinite recursion when building i386 -fPIE in src/external/mit/xorg/lib/libxcb/xkb. https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=231599 PR debug/67355 * var-tracking.c (reverse_op): Don't add dummy zero to reverse ops that simplify back to the original value. * alias.c (refs_newer_value_p): Cut off recursion for expressions containing the original value. To generate a diff of this commit: cvs rdiff -u -r1.1.1.5 -r1.2 src/external/gpl3/gcc/dist/gcc/alias.c \ src/external/gpl3/gcc/dist/gcc/var-tracking.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/external/gpl3/gcc/dist/gcc/alias.c diff -u src/external/gpl3/gcc/dist/gcc/alias.c:1.1.1.5 src/external/gpl3/gcc/dist/gcc/alias.c:1.2 --- src/external/gpl3/gcc/dist/gcc/alias.c:1.1.1.5 Sun Jan 24 01:06:09 2016 +++ src/external/gpl3/gcc/dist/gcc/alias.c Thu May 19 16:27:36 2016 @@ -1880,7 +1880,7 @@ base_alias_check (rtx x, rtx x_base, rtx } /* Return TRUE if EXPR refers to a VALUE whose uid is greater than - that of V. */ + (or equal to) that of V. */ static bool refs_newer_value_p (const_rtx expr, rtx v) @@ -1888,7 +1888,7 @@ refs_newer_value_p (const_rtx expr, rtx int minuid = CSELIB_VAL_PTR (v)->uid; subrtx_iterator::array_type array; FOR_EACH_SUBRTX (iter, array, expr, NONCONST) - if (GET_CODE (*iter) == VALUE && CSELIB_VAL_PTR (*iter)->uid > minuid) + if (GET_CODE (*iter) == VALUE && CSELIB_VAL_PTR (*iter)->uid >= minuid) return true; return false; } Index: src/external/gpl3/gcc/dist/gcc/var-tracking.c diff -u src/external/gpl3/gcc/dist/gcc/var-tracking.c:1.1.1.5 src/external/gpl3/gcc/dist/gcc/var-tracking.c:1.2 --- src/external/gpl3/gcc/dist/gcc/var-tracking.c:1.1.1.5 Sun Jan 24 01:06:10 2016 +++ src/external/gpl3/gcc/dist/gcc/var-tracking.c Thu May 19 16:27:36 2016 @@ -5833,11 +5833,6 @@ reverse_op (rtx val, const_rtx expr, rtx return; } ret = simplify_gen_binary (code, GET_MODE (val), val, arg); - if (ret == val) - /* Ensure ret isn't VALUE itself (which can happen e.g. for - (plus (reg1) (reg2)) when reg2 is known to be 0), as that - breaks a lot of routines during var-tracking. */ - ret = gen_rtx_fmt_ee (PLUS, GET_MODE (val), val, const0_rtx); break; default: gcc_unreachable ();