Merge pull request #529 from ifilippov/instrument_fix

correction of --instrument option support
This commit is contained in:
Dmitry Babokin
2013-06-25 03:08:02 -07:00
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

@@ -28,7 +28,7 @@
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef INSTRUMENT_H
@@ -36,8 +36,8 @@
#include <stdint.h>
extern "C" {
void ISPCInstrument(const char *fn, const char *note, int line, int mask);
extern "C" {
void ISPCInstrument(const char *fn, const char *note, int line, uint64_t mask);
}
void ISPCPrintInstrument();