This is the mail archive of the
mailing list for the GCC project.
Question on calculating register pressure before ira pass
- From: "Bin.Cheng" <amker dot cheng at gmail dot com>
- To: gcc at gcc dot gnu dot org
- Cc: Vladimir Makarov <vmakarov at redhat dot com>
- Date: Mon, 20 Aug 2012 17:00:24 +0800
- Subject: Question on calculating register pressure before ira pass
Currently I am working on improving hoist pass by calculating register
pressure and using the info to guide hoist process. It works well and
I will send a patch once I finish it.
In this work I reused codes in loop-invariant and called
ira_set_pseudo_classes function to calculate register pressure. The
problem is that ira_set_pseudo_classes sets pseudo_classes_defined_p
to TRUE, which causes function find_costs_and_classes scans
instructions only once to find the best reg class to use for each
In my understanding, these part of codes is introduced for calculating
reg pressure in schedulor and loop-invariant. What I do not understand
is why we make IRA behave differently when register pressure is
calculated before IRA pass?
In the work of hoist, I found bigger regression in code size causes by
the changed behavior of IRA.
My questions are:
1. could somebody give some explanation on this.
2. Is it possible to calculate register pressure by reusing existing
code while do not change behavior of IRA?
I am not familiar with IRA so please forgive If I am wrong.
Thanks very much.