Added ARM::mls for armv6t2.
[oota-llvm.git] / lib / CodeGen / RegisterCoalescer.cpp
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
22 using namespace llvm;
23
24 // Register the RegisterCoalescer interface, providing a nice name to refer to.
25 static RegisterAnalysisGroup<RegisterCoalescer> Z("Register Coalescer");
26 char 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 //
34 RegisterCoalescer::~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.
41 DEFINING_FILE_FOR(RegisterCoalescer)