void RuntimeDebugBuilder::createStrPrinter(PollyIRBuilder &Builder, const std::string &String) { Value *StringValue = Builder.CreateGlobalStringPtr(String); Builder.CreateCall(getPrintF(Builder), StringValue); createFlush(Builder); }
void RuntimeDebugBuilder::createValuePrinter(PollyIRBuilder &Builder, Value *V) { const char *Format = nullptr; Type *Ty = V->getType(); if (Ty->isIntegerTy()) Format = "%ld"; else if (Ty->isFloatingPointTy()) Format = "%lf"; else if (Ty->isPointerTy()) Format = "%p"; assert(Format && Ty->getPrimitiveSizeInBits() <= 64 && "Bad type to print."); Value *FormatString = Builder.CreateGlobalStringPtr(Format); Builder.CreateCall2(getPrintF(Builder), FormatString, V); createFlush(Builder); }