//===---- CGLoopInfo.h - LLVM CodeGen for loop metadata -*- C++ -*---------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // This is the internal state used for llvm translation for loop statement // metadata. // //===----------------------------------------------------------------------===// #ifndef LLVM_CLANG_LIB_CODEGEN_CGLOOPINFO_H #define LLVM_CLANG_LIB_CODEGEN_CGLOOPINFO_H #include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/SmallVector.h" #include "llvm/IR/DebugLoc.h" #include "llvm/IR/Value.h" #include "llvm/Support/Compiler.h" namespace llvm { class BasicBlock; class Instruction; class MDNode; } // end namespace llvm namespace clang { class Attr; class ASTContext; class CodeGenOptions; namespace CodeGen { /// Attributes that may be specified on loops. struct LoopAttributes { … }; /// Information used when generating a structured loop. class LoopInfo { … }; /// A stack of loop information corresponding to loop nesting levels. /// This stack can be used to prepare attributes which are applied when a loop /// is emitted. class LoopInfoStack { … }; } // end namespace CodeGen } // end namespace clang #endif