------- Comment #16 from uweigand at gcc dot gnu dot org 2010-09-06 16:57 ------- (In reply to comment #15) > Ulrih, I've just wanted to post the following when I found that you already > posted analogous conclusion. I should have been on CC to see your comment > right away. The problem is really fundamental. Code for > merge_assigned_reloads ignores inheritance (and dependencies between reloads > because of inheritance) at all. Here is my post wanted to add.
I just noticed that even in the complete absence of reload inheritance, the allocate_reload_reg routine performs free_for_value_p checks, and therefore implicitly takes reload ordering into account. This seems to imply that even if we'd do merge_assigned_reloads only if no inheritance has taken place, we'd still have a problem. Does anybody have any idea how much merge_assigned_reloads actually contributes to performance on i386, in particular now that we have a bit more post-reload optimizers that potentially clear up duplicate code of the type generated by unmerged reloads? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45312