On Tue, Aug 23, 2011 at 11:35:07AM +0200, Bernd Schmidt wrote: > > cse_process_notes_1 > > perhaps could be changed for VOIDmode new_rtx to try to > > simplify_replace_rtx it... > > Is this where the problem came from? Sounds like it's worth a try.
In this case, yes. But there are many other places all around the compiler that need to disallow unary op with VOIDmode operand. In cse.c alone e.g. fold_rtx (twice), in combine.c e.g. in do_SUBST, subst, etc. Do we want to special case all those 7 unary ops there too? Is it really worth it to save one subreg or truncate in the md patterns for rarely used rtxes? > Wasn't Richard S. working on a patch to give constants modes? I don't think this is achievable for 4.7... Jakub