1 //===- RegisterCoalescer.cpp - Generic Register Coalescing Interface -------==//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
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.
14 //===----------------------------------------------------------------------===//
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"
24 // Register the RegisterCoalescer interface, providing a nice name to refer to.
25 static RegisterAnalysisGroup
<RegisterCoalescer
> Z("Register Coalescer");
26 char RegisterCoalescer::ID
= 0;
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
34 RegisterCoalescer::~RegisterCoalescer() {}
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
41 DEFINING_FILE_FOR(RegisterCoalescer
)