[LLVMdev] DAGCombiner: (S|U)REM

Dietmar Ebner
Thu, 14 Jun 2007 12:07:26 -0000

hi,

currently, the DAGCombiner unconditionally converts
(DAGCombiner::visit(U|S)REM) expressions of the form X % C for constants
C into X-X/C*C. this makes sense in certain cases where the div/mul
logic will simplify X/C*X but is counterproductive in general,
especially if the multiply is expensive. also, this doesn't allow
targets to custom lower rem operations. shouldn't this transformation be
left for the legalizer (where it's implemented anyway)?

regards,

-
dietmar