#pragma once // // This file is distributed under the MIT License. See LICENSE.md for details. // %GeneratedNotice% #include "llvm/ADT/DenseMap.h" #include "llvm/IR/BasicBlock.h" #include "llvm/IR/Instruction.h" #include "llvm/IR/Value.h" #include "revng/ABI/RegisterState.h" #include "revng/BasicAnalyses/GeneratedCodeBasicInfo.h" #include "revng/EarlyFunctionAnalysis/Common.h" #include "revng/EarlyFunctionAnalysis/EarlyFunctionAnalysis.h" #include "revng/MFP/MFP.h" #include "revng/Model/Binary.h" namespace ABIAnalyses::%LatticeName% { using namespace ABIAnalyses; using Register = model::Register::Values; using State = abi::RegisterState::Values; struct CoreLattice { %LatticeElement% static const LatticeElement ExtremalLatticeElement = %ExtremalLatticeElement%; using TransferFunction = ABIAnalyses::TransferKind; static %isLessOrEqual% static %combineValues% static %transfer% }; } // namespace ABIAnalyses::%LatticeName%