This is the mail archive of the gcc@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]

Re: How to clean up i386 machine description?


> For example, if you can shift a register by a variable amount or constant, but
> can only shift a memory location by a constant, then I would write two patterns.

OK, this seems to be good idea and one of thinks I plan to do :)
(BTW yesterday I've sent small patch modifing some predicates. It generally
don't split just uses correct predicates IMO (like nonimmediate_operand instead
of general_operand where possible, so it is more readable and surprisingly
seems to improve output code)

I've already split some patterns in way you describe, but I was unsure if
it is good idea. .info says it isn't, because reload can change register
to constant but keep the register version. So it says it is generally
better  to use general addition pattern instead of inc pattern.
Is this still relevant? 
Can you explain me the problem in some detail?
I've for example made the incrementation pattern, since it has different
scheduling parameters, but I've kept the incrementation code in original
pattern too to be sure. May I remove it?

Honza


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