We have the MachineConstantPoolValue to allow the target to customize the lowering of the constant. But when we are trying to create the Constant Pool from SelectionDAG, target has no way to customize it with MachineConstantPoolValue. So, propose a new hook inside SelectionDAGTargetInfo so that, target could customize the lower of constant pool. Also, add a new interface so that, we won't assume that, the result value of DAG.getConstantPool() must be ConstantPoolSDNode which is not always true if target customizes the lower of constant pool.