Generating libcalls and operation legalization

I understand why SelectionDAGLegalize is a completely hidden class (but does it really need to be completely hidden?) However, if a target backend has to generate a libcall, shouldn't there be an exposed API to do this? Or should there be another bit added to the Legal/Custom/Expand/Promote enum to force generation of a libcall?

I'm trying to avoid duplicating work already done in the SelectionDAGLegalize source (ExpandLibCall) and want to make sure that both the call and the callseq_end are properly legalzed.