[LLVMdev] DAGCombiner: (S|U)REM

Dietmar Ebner ebner at complang.tuwien.ac.at
Thu Jun 14 05:07:26 PDT 2007


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




More information about the llvm-dev mailing list