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] |
On Wed, 2004-10-20 at 14:20, Daniel Berlin wrote:
4. If the RHS of a V_MUST_DEF is a PHI node, mark it necessary?1. Do a quick propagation pass in DCE to make sure def-def phis that are used in necessary statements don't die. (at that point, plain def-def renaming will work) 2. Mark the must-def operand as necessary if it's a phi, and the only immediate use of the phi is in the must-def operand (I'm assuming it could appear in a may-def or vuse somewhere else, in which case it's necessary). 3. Use the full renamer, which will simply put the phi back after DCE removes it.
FOR EACH MUSTDEF: If RHS is a phi node and marked unnecessary: add phi node to worklist.
This also catches the mutually recursive phis like: a_1 = phi <a_2, <a_something>> a_2 = phi <a_4, a_1>
Diego.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |