SelectionDAGISel::runOnMachineFunction();
SelectionDAGISel::SelectAllBasicBlocks();
SelectionDAGISel::LowerArguments();
XXXTargetLowering::LowerFormalArguments();
// Select each basic block of current function
SelectionDAGISel::SelectBasicBlock();
SelectionDAGBuilder::visit(const Instruction&);
XXXTargetlowering::lowerCallTo();
XXXTargetlowering::lowerCall();
// DAG has been build for current basic block
SelectionDAGISel::CodeGenAndEmitDAG();
SelectionDAG::Combine();
SelectionDAG::LegalizeTypes();
SelectionDAG::Combine();
SelectionDAG::LegalizeVectors();
SelectionDAG::LegalizeTypes();
SelectionDAG::Combine();
SelectionDAG::Legalize();
SelectionDAGLegalize::LegalizeOp(SDNode*);
XXXTargetlowering::LowerOperation(SDValue, DAG);
SelectionDAG::Combine();
SelectionDAGISel::DoInstructionSelection();
SelectionDAGISel::PreprocessISelDAG();
SelectionDAGISel::Select(SDNode*);
XXXSelectionDAGISel::SelectCode(SDNode*); // autogen in XXXGenDAGISel.inc
SelectionDAGISel::PostprocessISelDAG();
ScheduleDAGSDNodes::Run();
ScheduleDAGSDNodes::EmitSchedule();
// This time we have a linear machine instructions in machine basic block