[LLVMdev] Shouldn't DAGCombine insert legal nodes?
Eli Friedman
eli.friedman at gmail.com
Mon Jan 19 20:17:34 PST 2009
On Mon, Jan 19, 2009 at 6:36 PM, Scott Michel <scottm at aero.org> wrote:
> I just ran across something interesting: DAGCombine inserts a 64-bit
> constant as the result of converting a (bitconvert (fabs val)) to a
> (and (bitconvert val), i64const).
>
> The problem: i64 constants have to be legalized for the CellSPU
> platform. DAGCombine is doing the right thing but it's not doing the
> right thing for CellSPU and it's damed difficult to work around this
> "feature". Moreover, the way all of SelectionDAGLegalize and
> DAGCombne's code is written, it's particularly difficult to "re-
> legalize" nodes unless one more legalization pass is invoked after
> DAGCombine.
I don't think DAGCombine should be doing a transform like that
post-legalize; if it is, it's probably a bug.
-Eli
More information about the llvm-dev
mailing list