The IntegerMultiplyDecomposer [1] is an optimization in the x86 backend to strength-reduce integer multiplies into cheaper forms and leveraging LEA instructions as much as possible. This code has not been updated much at all in the past 20 years despite significant evolution in Intel and AMD architectures and varying recommendations on the use of LEA instructions in certain circumstances.
This code should be revisited and its optimization decisions reconsidered in the context of modern Intel and AMD microarchitectures.
The IntegerMultiplyDecomposer [1] is an optimization in the x86 backend to strength-reduce integer multiplies into cheaper forms and leveraging LEA instructions as much as possible. This code has not been updated much at all in the past 20 years despite significant evolution in Intel and AMD architectures and varying recommendations on the use of LEA instructions in certain circumstances.
This code should be revisited and its optimization decisions reconsidered in the context of modern Intel and AMD microarchitectures.
[1] https://github.com/eclipse/omr/blob/master/compiler/x/codegen/IntegerMultiplyDecomposer.cpp