#include "llvm/Frontend/OpenMP/OMP.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/Demangle/Demangle.h"
#include "llvm/Frontend/OpenMP/OMPIRBuilder.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/StringSaver.h"
#include <algorithm>
#include <cstdio>
#include <iterator>
#include <string>
#include <type_traits>
usingnamespacellvm;
usingnamespacellvm::omp;
#define GEN_DIRECTIVES_IMPL
#include "llvm/Frontend/OpenMP/OMP.inc"
static iterator_range<ArrayRef<Directive>::iterator>
getFirstCompositeRange(iterator_range<ArrayRef<Directive>::iterator> Leafs) { … }
namespace llvm::omp {
ArrayRef<Directive> getLeafConstructs(Directive D) { … }
ArrayRef<Directive> getLeafConstructsOrSelf(Directive D) { … }
ArrayRef<Directive>
getLeafOrCompositeConstructs(Directive D, SmallVectorImpl<Directive> &Output) { … }
Directive getCompoundConstruct(ArrayRef<Directive> Parts) { … }
bool isLeafConstruct(Directive D) { … }
bool isCompositeConstruct(Directive D) { … }
bool isCombinedConstruct(Directive D) { … }
std::string prettifyFunctionName(StringRef FunctionName) { … }
std::string deconstructOpenMPKernelName(StringRef KernelName,
unsigned &LineNo) { … }
}