LLVM  3.7.0
InstCombine.h
Go to the documentation of this file.
1 //===- InstCombine.h - InstCombine pass -------------------------*- C++ -*-===//
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 /// \file
10 ///
11 /// This file provides the primary interface to the instcombine pass. This pass
12 /// is suitable for use in the new pass manager. For a pass that works with the
13 /// legacy pass manager, please look for \c createInstructionCombiningPass() in
14 /// Scalar.h.
15 ///
16 //===----------------------------------------------------------------------===//
17 
18 #ifndef LLVM_TRANSFORMS_INSTCOMBINE_INSTCOMBINE_H
19 #define LLVM_TRANSFORMS_INSTCOMBINE_INSTCOMBINE_H
20 
21 #include "llvm/IR/Function.h"
22 #include "llvm/IR/PassManager.h"
24 
25 namespace llvm {
26 
28  InstCombineWorklist Worklist;
29 
30 public:
31  static StringRef name() { return "InstCombinePass"; }
32 
33  // Explicitly define constructors for MSVC.
35  InstCombinePass(InstCombinePass &&Arg) : Worklist(std::move(Arg.Worklist)) {}
37  Worklist = std::move(RHS.Worklist);
38  return *this;
39  }
40 
42 };
43 
44 }
45 
46 #endif
InstCombinePass & operator=(InstCombinePass &&RHS)
Definition: InstCombine.h:36
F(f)
An abstract set of preserved analyses following a transformation pass run.
Definition: PassManager.h:69
InstCombinePass(InstCombinePass &&Arg)
Definition: InstCombine.h:35
InstCombineWorklist - This is the worklist management logic for InstCombine.
static StringRef name()
Definition: InstCombine.h:31
PreservedAnalyses run(Function &F, AnalysisManager< Function > *AM)
StringRef - Represent a constant reference to a string, i.e.
Definition: StringRef.h:40
A generic analysis pass manager with lazy running and caching of results.
This header defines various interfaces for pass management in LLVM.