UnitLICM.h
#ifndef INCLUDE_UNIT_LICM_H
#define INCLUDE_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