Fw: Question about 4.5.x register allocation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



William Mahoney <wmahoney@xxxxxxxxxxxxxxxx> writes:

> I have moved the pass so that it is immediately after pass_ira - no 
> difference, I still see register 75 (and 74). Also, df.c doesn't appear 
to 
> be in my source - I assume it is now df-core.c which does have quite the 


> documentation and I will take a look. Are you basically saying that 
after 
> the hard assignments the live sets are not necessarily valid any more? 
> That would be .. oh, the word that comes to mind is "bad"!

As far as I know the live sets should be valid provided you call
df_live_add_problem and df_analyze.

Ian



Resolved; and Ian, FYI you're right but the issue is that in the new IRA 
code, it does not do the df_live... and df_analyze steps unless you are 
optimizing. This makes sense because there's no use wasting the time - 
except that in my case I need the live-in sets to be accurate even if 
you're not optimizing. Interestingly, it does do at least a minimal amount 

even with no optimization because the original problem was that rax was 
live but not marked as such. Regardless, this does the trick in ira.c:

  df_finish_pass (true);
  /* if (optimize > 1) -- Bill was here */
       df_live_add_problem ();
  df_scan_alloc (NULL);
  df_scan_blocks ();

  /* if (optimize) -- Bill was here */
      df_analyze ();

Kudos to Vladimir for pointing that out.

Bill





[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux