//===- RegisterCoalescer.cpp - Generic Register Coalescing Interface -------==// // // 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 generic RegisterCoalescer interface which // is used as the common interface used by all clients and // implementations of register coalescing. // //===----------------------------------------------------------------------===// #include "llvm/CodeGen/RegisterCoalescer.h" #include "llvm/CodeGen/LiveIntervalAnalysis.h" #include "llvm/CodeGen/MachineInstr.h" #include "llvm/Target/TargetRegisterInfo.h" #include "llvm/Pass.h" using namespace llvm; // Register the RegisterCoalescer interface, providing a nice name to refer to. static RegisterAnalysisGroup Z("Register Coalescer"); char RegisterCoalescer::ID = 0; // RegisterCoalescer destructor: DO NOT move this to the header file // for RegisterCoalescer or else clients of the RegisterCoalescer // class may not depend on the RegisterCoalescer.o file in the current // .a file, causing alias analysis support to not be included in the // tool correctly! // RegisterCoalescer::~RegisterCoalescer() {} // Because of the way .a files work, we must force the SimpleRC // implementation to be pulled in if the RegisterCoalescer classes are // pulled in. Otherwise we run the risk of RegisterCoalescer being // used, but the default implementation not being linked into the tool // that uses it. DEFINING_FILE_FOR(RegisterCoalescer)