The problem is that to use the modern approach you need another description of insns (with one pattern - one machine insn relation) in tree representation with given cost for the tree. And it is a huge work to rewrite current machine descriptions even only for this.

This is not really necessary. I have a stripped down version of NONA working on RTL. It is possible to build the tree using a mechanism similar to subst in combine, simplify the resulting expression, and use NONA (which is actually the same algorithms as iburg) to split it.

I tried to do this 7 years ago without a success. I am glad that you are sucessfull. Thank you for doing this, Paolo. I never thought that this code created 15 year ago can be used somewhere else besides one internal production compiler.

I never said I finished. :-) In particular, my code does not do combine-style simplifications.

Most current machine description only have a one pattern - one machine insn relation post reload, which can be a problem. However, current RTX_COSTS are much more precise than 7 years ago to the point that combine actually uses them, and this somewhat offsets the problem.

Paolo

Reply via email to