RegisterCoalescer.cpp revision 193323
1//===- RegisterCoalescer.cpp - Generic Register Coalescing Interface -------==// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9// 10// This file implements the generic RegisterCoalescer interface which 11// is used as the common interface used by all clients and 12// implementations of register coalescing. 13// 14//===----------------------------------------------------------------------===// 15 16#include "llvm/CodeGen/RegisterCoalescer.h" 17#include "llvm/CodeGen/LiveIntervalAnalysis.h" 18#include "llvm/CodeGen/MachineInstr.h" 19#include "llvm/Target/TargetRegisterInfo.h" 20#include "llvm/Pass.h" 21 22using namespace llvm; 23 24// Register the RegisterCoalescer interface, providing a nice name to refer to. 25static RegisterAnalysisGroup<RegisterCoalescer> Z("Register Coalescer"); 26char RegisterCoalescer::ID = 0; 27 28// RegisterCoalescer destructor: DO NOT move this to the header file 29// for RegisterCoalescer or else clients of the RegisterCoalescer 30// class may not depend on the RegisterCoalescer.o file in the current 31// .a file, causing alias analysis support to not be included in the 32// tool correctly! 33// 34RegisterCoalescer::~RegisterCoalescer() {} 35 36// Because of the way .a files work, we must force the SimpleRC 37// implementation to be pulled in if the RegisterCoalescer classes are 38// pulled in. Otherwise we run the risk of RegisterCoalescer being 39// used, but the default implementation not being linked into the tool 40// that uses it. 41DEFINING_FILE_FOR(RegisterCoalescer) 42