//===-- TwoAddressInstructionPass.cpp - Two-Address instruction pass ------===////// The LLVM Compiler Infrastructure//// This file is distributed under the University of Illinois Open Source// License. See LICENSE.TXT for details.////===----------------------------------------------------------------------===////// This file implements the TwoAddress instruction pass which is used// by most register allocators. Two-Address instructions are rewritten// from://// A = B op C//// to://// A = B// A op= C//// Note that if a register allocator chooses to use this pass, that it// has to be capable of handling the non-SSA nature of these rewritten// virtual registers.//// It is also worth noting that the duplicate operand of the two// address instruction is removed.////===----------------------------------------------------------------------===//#define DEBUG_TYPE "twoaddrinstr"#include"llvm/CodeGen/Passes.h"#include"llvm/Function.h"#include"llvm/CodeGen/LiveVariables.h"#include"llvm/CodeGen/MachineFunctionPass.h"#include