#ifndef INCLUDE_UNIT_LICM_H
#defineINCLUDE_UNIT_LICM_H#include"llvm/IR/PassManager.h"
namespace llvm {
class Function;}
using namespace llvm;
namespace ece479k{/// Loop Invariant Code Motion Optimization Pass
///
/// Implements the relaxed-case:
/// - We move pure expressions even if they don't dominate all exits
/// - We move expressions with side effects if they dominate all exits
struct UnitLICM : PassInfoMixin<UnitLICM>{
PreservedAnalyses run(Function &F, FunctionAnalysisManager &FAM);};}// namespace
#endif// INCLUDE_UNIT_LICM_H