void TranslationTableInstructionSelectionPass::_lowerBlock(BasicBlock& block)
{
	hydrazine::log("TranslationTableInstructionSelectionPass")
		<< "Running on basic block " << block.name() << "\n";
	
	auto machineModel = compiler::Compiler::getSingleton()->getMachineModel();
	
	BasicBlock::InstructionList loweredInstructions;

	auto translationTable = machineModel->translationTable();
	
	// Parallel for all and final gather
	for(auto instruction : block)
	{
		lowerInstruction(loweredInstructions, instruction, translationTable);
	}

	// Swap out the block contents, deallocate it
	block.clear();

	block.assign(loweredInstructions.begin(), loweredInstructions.end());
}