Hi,

since Jakub has fixed my code and replaced wrong 

            validate_change (uin, DF_REF_LOC (use), newreg, true);

     with correct

           validate_change (uin, DF_REF_REAL_LOC (use), newreg, true);

in split_live_ranges_for_shrink_wrap, we can remove the punting
condition slightly above.  So this patch does that.

Bootstrapped and tested on x86_64-linux.  OK for trunk?

Thanks,

Martin


2014-05-23  Martin Jambor  <mjam...@suse.cz>

        * ira.c (split_live_ranges_for_shrink_wrap): Remove bailout on
        subreg uses.

diff --git a/gcc/ira.c b/gcc/ira.c
index b9caad7..00d95fb 100644
--- a/gcc/ira.c
+++ b/gcc/ira.c
@@ -4979,17 +4979,6 @@ split_live_ranges_for_shrink_wrap (void)
           use;
           use = DF_REF_NEXT_REG (use))
        {
-         if (NONDEBUG_INSN_P (DF_REF_INSN (use))
-             && GET_CODE (DF_REF_REG (use)) == SUBREG)
-           {
-             /* This is necessary to avoid hitting an assert at
-                postreload.c:2294 in libstc++ testcases on x86_64-linux.  I'm
-                not really sure what the probblem actually is there.  */
-             bitmap_clear (&need_new);
-             bitmap_clear (&reachable);
-             return false;
-           }
-
          int ubbi = DF_REF_BB (use)->index;
          if (bitmap_bit_p (&reachable, ubbi))
            bitmap_set_bit (&need_new, ubbi);

Reply via email to