Merge pull request #529 from ifilippov/instrument_fix
correction of --instrument option support
This commit is contained in:
@@ -45,7 +45,7 @@ for i in range(0, len(data), 1):
|
|||||||
sys.stdout.write("\n")
|
sys.stdout.write("\n")
|
||||||
|
|
||||||
sys.stdout.write("0x00 };\n\n")
|
sys.stdout.write("0x00 };\n\n")
|
||||||
sys.stdout.write("int builtins_bitcode_" + name + "_length = " + str(i+1) + ";\n")
|
sys.stdout.write("int builtins_bitcode_" + name + "_length = " + str(len(data)) + ";\n")
|
||||||
|
|
||||||
as_out.wait()
|
as_out.wait()
|
||||||
|
|
||||||
|
|||||||
8
ctx.cpp
8
ctx.cpp
@@ -1414,7 +1414,7 @@ FunctionEmitContext::ProgramIndexVector(bool is32bits) {
|
|||||||
|
|
||||||
llvm::Value *
|
llvm::Value *
|
||||||
FunctionEmitContext::GetStringPtr(const std::string &str) {
|
FunctionEmitContext::GetStringPtr(const std::string &str) {
|
||||||
llvm::Constant *lstr = llvm::ConstantDataArray::getString(*g->ctx, str);
|
llvm::Constant *lstr = llvm::ConstantDataArray::getString(*g->ctx, str, false);
|
||||||
llvm::GlobalValue::LinkageTypes linkage = llvm::GlobalValue::InternalLinkage;
|
llvm::GlobalValue::LinkageTypes linkage = llvm::GlobalValue::InternalLinkage;
|
||||||
llvm::Value *lstrPtr = new llvm::GlobalVariable(*m->module, lstr->getType(),
|
llvm::Value *lstrPtr = new llvm::GlobalVariable(*m->module, lstr->getType(),
|
||||||
true /*isConst*/,
|
true /*isConst*/,
|
||||||
@@ -1464,11 +1464,13 @@ FunctionEmitContext::I1VecToBoolVec(llvm::Value *b) {
|
|||||||
|
|
||||||
static llvm::Value *
|
static llvm::Value *
|
||||||
lGetStringAsValue(llvm::BasicBlock *bblock, const char *s) {
|
lGetStringAsValue(llvm::BasicBlock *bblock, const char *s) {
|
||||||
llvm::Constant *sConstant = llvm::ConstantDataArray::getString(*g->ctx, s);
|
llvm::Constant *sConstant = llvm::ConstantDataArray::getString(*g->ctx, s, false);
|
||||||
|
std::string var_name = "_";
|
||||||
|
var_name = var_name + s;
|
||||||
llvm::Value *sPtr = new llvm::GlobalVariable(*m->module, sConstant->getType(),
|
llvm::Value *sPtr = new llvm::GlobalVariable(*m->module, sConstant->getType(),
|
||||||
true /* const */,
|
true /* const */,
|
||||||
llvm::GlobalValue::InternalLinkage,
|
llvm::GlobalValue::InternalLinkage,
|
||||||
sConstant, s);
|
sConstant, var_name.c_str());
|
||||||
llvm::Value *indices[2] = { LLVMInt32(0), LLVMInt32(0) };
|
llvm::Value *indices[2] = { LLVMInt32(0), LLVMInt32(0) };
|
||||||
llvm::ArrayRef<llvm::Value *> arrayRef(&indices[0], &indices[2]);
|
llvm::ArrayRef<llvm::Value *> arrayRef(&indices[0], &indices[2]);
|
||||||
return llvm::GetElementPtrInst::Create(sPtr, arrayRef, "sptr", bblock);
|
return llvm::GetElementPtrInst::Create(sPtr, arrayRef, "sptr", bblock);
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ int countbits(int i) {
|
|||||||
// Callback function that ispc compiler emits calls to when --instrument
|
// Callback function that ispc compiler emits calls to when --instrument
|
||||||
// command-line flag is given while compiling.
|
// command-line flag is given while compiling.
|
||||||
void
|
void
|
||||||
ISPCInstrument(const char *fn, const char *note, int line, int mask) {
|
ISPCInstrument(const char *fn, const char *note, int line, uint64_t mask) {
|
||||||
char sline[16];
|
char sline[16];
|
||||||
sprintf(sline, "%04d", line);
|
sprintf(sline, "%04d", line);
|
||||||
std::string s = std::string(fn) + std::string("(") + std::string(sline) +
|
std::string s = std::string(fn) + std::string("(") + std::string(sline) +
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
void ISPCInstrument(const char *fn, const char *note, int line, int mask);
|
void ISPCInstrument(const char *fn, const char *note, int line, uint64_t mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ISPCPrintInstrument();
|
void ISPCPrintInstrument();
|
||||||
|
|||||||
Reference in New Issue
Block a user