[LLVMdev] Illegal operations generated in ShrinkDemandedOps()

Ken Dyck Ken.Dyck at onsemi.com
Tue Feb 9 06:19:36 PST 2010


The architecture that I'm targeting with an LLVM back end has SRA
instructions for all its data sizes, but is missing SRL instructions for
some data sizes. 

I'm having trouble with the SelectionDAGISel::ShrinkDemandedOps() pass.
Although it runs after the DAG has been legalized, it replaces legal
SRAs with illegal SRLs, which results in failures in instruction
selection. 

Is there a standard trick to work around this problem?

-Ken




More information about the llvm-dev mailing list