1 //===- SimplifyInstructions.h - Remove redundant instructions ---*- 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 // 10 // This is a utility pass used for testing the InstructionSimplify analysis. 11 // The analysis is applied to every instruction, and if it simplifies then the 12 // instruction is replaced by the simplification. If you are looking for a pass 13 // that performs serious instruction folding, use the instcombine pass instead. 14 // 15 //===----------------------------------------------------------------------===// 16 17 #ifndef LLVM_TRANSFORMS_UTILS_SIMPLIFYINSTRUCTIONS_H 18 #define LLVM_TRANSFORMS_UTILS_SIMPLIFYINSTRUCTIONS_H 19 20 #include "llvm/IR/PassManager.h" 21 22 namespace llvm { 23 24 /// This pass removes redundant instructions. 25 class InstSimplifierPass : public PassInfoMixin<InstSimplifierPass> { 26 public: 27 PreservedAnalyses run(Function &F, AnalysisManager<Function> &AM); 28 }; 29 } // end namespace llvm 30 31 #endif // LLVM_TRANSFORMS_UTILS_SIMPLIFYINSTRUCTIONS_H 32