11#ifndef RUNTIME_DEBUG_BUILDER_H
12#define RUNTIME_DEBUG_BUILDER_H
15#include "llvm/ADT/ArrayRef.h"
16#include "llvm/ADT/StringRef.h"
60 template <
typename... Args>
62 std::vector<llvm::Value *> Vector;
68 template <
typename... Args>
70 std::vector<llvm::Value *> &Values,
71 llvm::Value *Value, Args... args) {
72 Values.push_back(
Value);
77 template <
typename... Args>
79 std::vector<llvm::Value *> &Values,
80 llvm::StringRef String, Args... args) {
86 template <
typename... Args>
88 std::vector<llvm::Value *> &Values,
89 llvm::ArrayRef<llvm::Value *>
Array, Args... args) {
90 Values.insert(Values.end(),
Array.begin(),
Array.end());
96 llvm::ArrayRef<llvm::Value *> Values);
100 llvm::ArrayRef<llvm::Value *> Values);
114 llvm::ArrayRef<llvm::Value *> Values);
polly dump Polly Dump Function
This file contains the declaration of the PolyhedralInfo class, which will provide an interface to ex...
@ Array
MemoryKind::Array: Models a one or multi-dimensional array.
@ Value
MemoryKind::Value: Models an llvm::Value.
llvm::IRBuilder< llvm::ConstantFolder, IRInserter > PollyIRBuilder
Insert function calls that print certain LLVM values at run time.
static void createPrinter(PollyIRBuilder &Builder, std::vector< llvm::Value * > &Values, llvm::StringRef String, Args... args)
Handle StringRefs.
static void createCPUPrinterT(PollyIRBuilder &Builder, llvm::ArrayRef< llvm::Value * > Values)
Print a list of Values on a CPU.
static void createCPUPrinter(PollyIRBuilder &Builder, Args... args)
Print a set of LLVM-IR Values or StringRefs via printf.
static void createPrinter(PollyIRBuilder &Builder, llvm::ArrayRef< llvm::Value * > Values)
Print a list of Values.
static void createPrinter(PollyIRBuilder &Builder, std::vector< llvm::Value * > &Values, llvm::Value *Value, Args... args)
Handle Values.
static void createFlush(PollyIRBuilder &Builder)
Call fflush.
static llvm::Function * getPrintF(PollyIRBuilder &Builder)
Get a reference to the 'printf' function.
static void createPrintF(PollyIRBuilder &Builder, std::string Format, llvm::ArrayRef< llvm::Value * > Values)
Call printf.
static llvm::Function * getVPrintF(PollyIRBuilder &Builder)
Get (and possibly insert) a vprintf declaration into the module.
static bool isPrintable(llvm::Type *Ty)
Return whether an llvm::Value of the type Ty is printable for debugging.
static void createPrinter(PollyIRBuilder &Builder, std::vector< llvm::Value * > &Values, llvm::ArrayRef< llvm::Value * > Array, Args... args)
Handle ArrayRefs.
static llvm::Value * getPrintableString(PollyIRBuilder &Builder, llvm::StringRef Str)
Generate a constant string into the builder's llvm::Module which can be passed to createCPUPrinter().