correction of --instrument option support

This commit is contained in:
Ilia Filippov
2013-06-25 11:51:35 +04:00
parent cba1b3cedd
commit 9fb981e9a0
4 changed files with 10 additions and 8 deletions

View File

@@ -45,7 +45,7 @@ for i in range(0, len(data), 1):
sys.stdout.write("\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()

View File

@@ -1414,7 +1414,7 @@ FunctionEmitContext::ProgramIndexVector(bool is32bits) {
llvm::Value *
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::Value *lstrPtr = new llvm::GlobalVariable(*m->module, lstr->getType(),
true /*isConst*/,
@@ -1464,11 +1464,13 @@ FunctionEmitContext::I1VecToBoolVec(llvm::Value *b) {
static llvm::Value *
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(),
true /* const */,
llvm::GlobalValue::InternalLinkage,
sConstant, s);
sConstant, var_name.c_str());
llvm::Value *indices[2] = { LLVMInt32(0), LLVMInt32(0) };
llvm::ArrayRef<llvm::Value *> arrayRef(&indices[0], &indices[2]);
return llvm::GetElementPtrInst::Create(sPtr, arrayRef, "sptr", bblock);

View File

@@ -60,7 +60,7 @@ int countbits(int i) {
// Callback function that ispc compiler emits calls to when --instrument
// command-line flag is given while compiling.
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];
sprintf(sline, "%04d", line);
std::string s = std::string(fn) + std::string("(") + std::string(sline) +

View File

@@ -37,7 +37,7 @@
#include <stdint.h>
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();