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