This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH, PR 10474] Shedule pass_cprop_hardreg before pass_thread_prologue_and_epilogue


On 04/18/2013 04:09 PM, Martin Jambor wrote:

I did not because I did not think it would be substantially faster
than running the pass as-is twice.
I wasn't looking to improve compile-time performance, but from a standpoint of not losing optimizations. If we can show that a second pass does virtually nothing then this becomes a moot question.


What would very likely be a working alternative for shrink-wrapping is
to have shrink-wrapping preparation invoke copyprop_hardreg_forward_1
on the first BB and the few BBs it tries to move stuff across.  But of
course that would be a bit ugly and so I think we should do it only if
there is a reason not to move the pass (or schedule it twice).
Or a pass to sink just the moves out of the incoming argument registers. From a dataflow standpoint that should be a relatively cheap problem to solve.

For each argument register you need to know the block where it's generated (usually the first block), blocks which clobber and blocks which use.

You then run a latest insertion point algorithm, or a variant thereof to determine the latest safe insertion points.

Jeff


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]