diff options
| author | Andrew M. B. Boktor <[email protected]> | 2012-05-17 11:11:11 -0800 |
|---|---|---|
| committer | Andrew Boktor <[email protected]> | 2014-08-14 13:47:31 -0700 |
| commit | 5ea6d0d35fe8005da93b796b1ebf43660a236357 (patch) | |
| tree | d83020f084cc0e1a86d4c3de7fc3e787ee65b84b /cuobjdump_to_ptxplus | |
| parent | d32ab26591e6cf466f3e35a5e7fdd43ba1f397a6 (diff) | |
Removing warnings
A bit of cleanup
[git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 12627]
Diffstat (limited to 'cuobjdump_to_ptxplus')
| -rw-r--r-- | cuobjdump_to_ptxplus/Makefile | 136 | ||||
| -rw-r--r-- | cuobjdump_to_ptxplus/cuobjdumpInst.cc | 20 | ||||
| -rw-r--r-- | cuobjdump_to_ptxplus/cuobjdumpInstList.cc | 12 | ||||
| -rw-r--r-- | cuobjdump_to_ptxplus/cuobjdump_to_ptxplus.cc | 62 | ||||
| -rw-r--r-- | cuobjdump_to_ptxplus/elf.l | 2 | ||||
| -rw-r--r-- | cuobjdump_to_ptxplus/header.l | 1 | ||||
| -rw-r--r-- | cuobjdump_to_ptxplus/ptx_parser.h | 83 | ||||
| -rw-r--r-- | cuobjdump_to_ptxplus/sass.l | 1 | ||||
| -rw-r--r-- | cuobjdump_to_ptxplus/sass.y | 2 |
9 files changed, 185 insertions, 134 deletions
diff --git a/cuobjdump_to_ptxplus/Makefile b/cuobjdump_to_ptxplus/Makefile index 03e63c0..fc43027 100644 --- a/cuobjdump_to_ptxplus/Makefile +++ b/cuobjdump_to_ptxplus/Makefile @@ -3,7 +3,7 @@ LEXFLAGS = -B YACC = bison YFLAGS = -t -d -v --report=all CC = gcc -CCFLAGS = -ggdb -fPIC +CCFLAGS = -ggdb -fPIC -Wall CXX = g++ CXXFLAGS = ${CCFLAGS} LD = g++ @@ -87,10 +87,9 @@ cuobjdumpInst.o: /usr/include/bits/typesizes.h /usr/include/libio.h cuobjdumpInst.o: /usr/include/_G_config.h /usr/include/wchar.h cuobjdumpInst.o: /usr/include/bits/stdio_lim.h cuobjdumpInst.o: /usr/include/bits/sys_errlist.h /usr/include/stdlib.h -cuobjdumpInst.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h +cuobjdumpInst.o: /usr/include/sys/types.h /usr/include/time.h cuobjdumpInst.o: /usr/include/endian.h /usr/include/bits/endian.h -cuobjdumpInst.o: /usr/include/bits/byteswap.h /usr/include/sys/types.h -cuobjdumpInst.o: /usr/include/time.h /usr/include/sys/select.h +cuobjdumpInst.o: /usr/include/bits/byteswap.h /usr/include/sys/select.h cuobjdumpInst.o: /usr/include/bits/select.h /usr/include/bits/sigset.h cuobjdumpInst.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h cuobjdumpInst.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h @@ -104,13 +103,11 @@ cuobjdumpInstList.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h cuobjdumpInstList.o: /usr/include/libio.h /usr/include/_G_config.h cuobjdumpInstList.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h cuobjdumpInstList.o: /usr/include/bits/sys_errlist.h /usr/include/stdlib.h -cuobjdumpInstList.o: /usr/include/bits/waitflags.h -cuobjdumpInstList.o: /usr/include/bits/waitstatus.h /usr/include/endian.h -cuobjdumpInstList.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h cuobjdumpInstList.o: /usr/include/sys/types.h /usr/include/time.h -cuobjdumpInstList.o: /usr/include/sys/select.h /usr/include/bits/select.h -cuobjdumpInstList.o: /usr/include/bits/sigset.h /usr/include/bits/time.h -cuobjdumpInstList.o: /usr/include/sys/sysmacros.h +cuobjdumpInstList.o: /usr/include/endian.h /usr/include/bits/endian.h +cuobjdumpInstList.o: /usr/include/bits/byteswap.h /usr/include/sys/select.h +cuobjdumpInstList.o: /usr/include/bits/select.h /usr/include/bits/sigset.h +cuobjdumpInstList.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h cuobjdumpInstList.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h cuobjdumpInstList.o: stringList.h cuobjdump_to_ptxplus.o: /usr/include/stdio.h /usr/include/features.h @@ -123,15 +120,120 @@ cuobjdump_to_ptxplus.o: /usr/include/bits/stdio_lim.h cuobjdump_to_ptxplus.o: /usr/include/bits/sys_errlist.h cuobjdumpInstList.h cuobjdump_to_ptxplus.o: cuobjdumpInst.h /usr/include/string.h cuobjdump_to_ptxplus.o: /usr/include/xlocale.h /usr/include/stdlib.h -cuobjdump_to_ptxplus.o: /usr/include/bits/waitflags.h -cuobjdump_to_ptxplus.o: /usr/include/bits/waitstatus.h /usr/include/endian.h -cuobjdump_to_ptxplus.o: /usr/include/bits/endian.h -cuobjdump_to_ptxplus.o: /usr/include/bits/byteswap.h /usr/include/sys/types.h -cuobjdump_to_ptxplus.o: /usr/include/time.h /usr/include/sys/select.h -cuobjdump_to_ptxplus.o: /usr/include/bits/select.h /usr/include/bits/sigset.h -cuobjdump_to_ptxplus.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h +cuobjdump_to_ptxplus.o: /usr/include/sys/types.h /usr/include/time.h +cuobjdump_to_ptxplus.o: /usr/include/endian.h /usr/include/bits/endian.h +cuobjdump_to_ptxplus.o: /usr/include/bits/byteswap.h +cuobjdump_to_ptxplus.o: /usr/include/sys/select.h /usr/include/bits/select.h +cuobjdump_to_ptxplus.o: /usr/include/bits/sigset.h /usr/include/bits/time.h +cuobjdump_to_ptxplus.o: /usr/include/sys/sysmacros.h cuobjdump_to_ptxplus.o: /usr/include/bits/pthreadtypes.h cuobjdump_to_ptxplus.o: /usr/include/alloca.h stringList.h +elf_lexer.o: /usr/include/stdio.h /usr/include/features.h +elf_lexer.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h +elf_lexer.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h +elf_lexer.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h +elf_lexer.o: /usr/include/libio.h /usr/include/_G_config.h +elf_lexer.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h +elf_lexer.o: /usr/include/bits/sys_errlist.h /usr/include/string.h +elf_lexer.o: /usr/include/xlocale.h /usr/include/errno.h +elf_lexer.o: /usr/include/bits/errno.h /usr/include/linux/errno.h +elf_lexer.o: /usr/include/asm/errno.h /usr/include/asm-generic/errno.h +elf_lexer.o: /usr/include/asm-generic/errno-base.h /usr/include/stdlib.h +elf_lexer.o: /usr/include/sys/types.h /usr/include/time.h +elf_lexer.o: /usr/include/endian.h /usr/include/bits/endian.h +elf_lexer.o: /usr/include/bits/byteswap.h /usr/include/sys/select.h +elf_lexer.o: /usr/include/bits/select.h /usr/include/bits/sigset.h +elf_lexer.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h +elf_lexer.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h +elf_lexer.o: elf_parser.hh /usr/include/unistd.h +elf_lexer.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h +elf_lexer.o: /usr/include/getopt.h +elf_parser.o: /usr/include/stdio.h /usr/include/features.h +elf_parser.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h +elf_parser.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h +elf_parser.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h +elf_parser.o: /usr/include/libio.h /usr/include/_G_config.h +elf_parser.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h +elf_parser.o: /usr/include/bits/sys_errlist.h cuobjdumpInstList.h +elf_parser.o: cuobjdumpInst.h /usr/include/string.h /usr/include/xlocale.h +elf_parser.o: /usr/include/stdlib.h /usr/include/sys/types.h +elf_parser.o: /usr/include/time.h /usr/include/endian.h +elf_parser.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h +elf_parser.o: /usr/include/sys/select.h /usr/include/bits/select.h +elf_parser.o: /usr/include/bits/sigset.h /usr/include/bits/time.h +elf_parser.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h +elf_parser.o: /usr/include/alloca.h stringList.h +header_lexer.o: /usr/include/stdio.h /usr/include/features.h +header_lexer.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h +header_lexer.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h +header_lexer.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h +header_lexer.o: /usr/include/libio.h /usr/include/_G_config.h +header_lexer.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h +header_lexer.o: /usr/include/bits/sys_errlist.h /usr/include/string.h +header_lexer.o: /usr/include/xlocale.h /usr/include/errno.h +header_lexer.o: /usr/include/bits/errno.h /usr/include/linux/errno.h +header_lexer.o: /usr/include/asm/errno.h /usr/include/asm-generic/errno.h +header_lexer.o: /usr/include/asm-generic/errno-base.h /usr/include/stdlib.h +header_lexer.o: /usr/include/sys/types.h /usr/include/time.h +header_lexer.o: /usr/include/endian.h /usr/include/bits/endian.h +header_lexer.o: /usr/include/bits/byteswap.h /usr/include/sys/select.h +header_lexer.o: /usr/include/bits/select.h /usr/include/bits/sigset.h +header_lexer.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h +header_lexer.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h +header_lexer.o: header_parser.hh /usr/include/unistd.h +header_lexer.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h +header_lexer.o: /usr/include/getopt.h +header_parser.o: cuobjdumpInstList.h cuobjdumpInst.h /usr/include/string.h +header_parser.o: /usr/include/features.h /usr/include/sys/cdefs.h +header_parser.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h +header_parser.o: /usr/include/gnu/stubs-64.h /usr/include/xlocale.h +header_parser.o: /usr/include/stdio.h /usr/include/bits/types.h +header_parser.o: /usr/include/bits/typesizes.h /usr/include/libio.h +header_parser.o: /usr/include/_G_config.h /usr/include/wchar.h +header_parser.o: /usr/include/bits/stdio_lim.h +header_parser.o: /usr/include/bits/sys_errlist.h /usr/include/stdlib.h +header_parser.o: /usr/include/sys/types.h /usr/include/time.h +header_parser.o: /usr/include/endian.h /usr/include/bits/endian.h +header_parser.o: /usr/include/bits/byteswap.h /usr/include/sys/select.h +header_parser.o: /usr/include/bits/select.h /usr/include/bits/sigset.h +header_parser.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h +header_parser.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h +header_parser.o: stringList.h +sass_lexer.o: /usr/include/stdio.h /usr/include/features.h +sass_lexer.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h +sass_lexer.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h +sass_lexer.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h +sass_lexer.o: /usr/include/libio.h /usr/include/_G_config.h +sass_lexer.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h +sass_lexer.o: /usr/include/bits/sys_errlist.h /usr/include/string.h +sass_lexer.o: /usr/include/xlocale.h /usr/include/errno.h +sass_lexer.o: /usr/include/bits/errno.h /usr/include/linux/errno.h +sass_lexer.o: /usr/include/asm/errno.h /usr/include/asm-generic/errno.h +sass_lexer.o: /usr/include/asm-generic/errno-base.h /usr/include/stdlib.h +sass_lexer.o: /usr/include/sys/types.h /usr/include/time.h +sass_lexer.o: /usr/include/endian.h /usr/include/bits/endian.h +sass_lexer.o: /usr/include/bits/byteswap.h /usr/include/sys/select.h +sass_lexer.o: /usr/include/bits/select.h /usr/include/bits/sigset.h +sass_lexer.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h +sass_lexer.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h +sass_lexer.o: sass_parser.hh /usr/include/unistd.h +sass_lexer.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h +sass_lexer.o: /usr/include/getopt.h +sass_parser.o: /usr/include/stdio.h /usr/include/features.h +sass_parser.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h +sass_parser.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h +sass_parser.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h +sass_parser.o: /usr/include/libio.h /usr/include/_G_config.h +sass_parser.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h +sass_parser.o: /usr/include/bits/sys_errlist.h cuobjdumpInstList.h +sass_parser.o: cuobjdumpInst.h /usr/include/string.h /usr/include/xlocale.h +sass_parser.o: /usr/include/stdlib.h /usr/include/sys/types.h +sass_parser.o: /usr/include/time.h /usr/include/endian.h +sass_parser.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h +sass_parser.o: /usr/include/sys/select.h /usr/include/bits/select.h +sass_parser.o: /usr/include/bits/sigset.h /usr/include/bits/time.h +sass_parser.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h +sass_parser.o: /usr/include/alloca.h stringList.h stringList.o: stringList.h /usr/include/stdio.h /usr/include/features.h stringList.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h stringList.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h diff --git a/cuobjdump_to_ptxplus/cuobjdumpInst.cc b/cuobjdump_to_ptxplus/cuobjdumpInst.cc index e10acef..6ad3e0c 100644 --- a/cuobjdump_to_ptxplus/cuobjdumpInst.cc +++ b/cuobjdump_to_ptxplus/cuobjdumpInst.cc @@ -269,7 +269,7 @@ void cuobjdumpInst::printCuobjdumpPredicate() const char* modString2 = currentPiece2->stringText; char* modString3 = new char[strlen(currentPiece2->stringText)+1]; - for(int i=0; i<strlen(modString2); i++) + for(unsigned i=0; i<strlen(modString2); i++) { if(modString2[i] >= 'A' && modString2[i] <= 'Z') modString3[i] = modString2[i] + 32; @@ -437,7 +437,7 @@ void cuobjdumpInst::printCuobjdumpBaseModifiers() output("."); std::string modstr = modString; modstr = modstr.substr(1); - for (int i=0; i<modstr.length(); i++){ + for (unsigned i=0; i<modstr.length(); i++){ modstr[i] = tolower(modstr[i]); } output(modstr.c_str()); @@ -485,7 +485,7 @@ void cuobjdumpInst::printCuobjdumpOperand(stringListPiece* currentPiece, std::st mod = currp.substr(1); if(mod.substr(0,2) == "0x") { - unsigned int immValue; + unsigned immValue; std::stringstream hexStringConvert2; hexStringConvert2 << std::hex << mod; hexStringConvert2 >> immValue; @@ -499,7 +499,7 @@ void cuobjdumpInst::printCuobjdumpOperand(stringListPiece* currentPiece, std::st std::string outputhex; outputhex = outputhexstream.str(); output("0x"); - for(int i=8; i > outputhex.length(); i--) + for(unsigned i=8; i > outputhex.length(); i--) { output("0"); } @@ -516,7 +516,7 @@ void cuobjdumpInst::printCuobjdumpOperand(stringListPiece* currentPiece, std::st // Make it lower case if(mod.substr(0,9)!= "constant1") - for(int i=0; i<mod.length(); i++) + for(unsigned i=0; i<mod.length(); i++) { mod[i] = tolower(mod[i]); } @@ -668,7 +668,7 @@ void cuobjdumpInst::printCuobjdumpOperand(stringListPiece* currentPiece, std::st std::stringstream outputhex; outputhex << std::hex << addrValue; output("0x"); - for(int i=4; i > outputhex.str().length(); i--) + for(unsigned i=4; i > outputhex.str().length(); i--) { output("0"); } @@ -699,7 +699,7 @@ void cuobjdumpInst::printCuobjdumpOperand(stringListPiece* currentPiece, std::st std::stringstream outputhex; outputhex << std::hex << addrValue; output("0x"); - for(int i=4; i > outputhex.str().length(); i--) { + for(unsigned i=4; i > outputhex.str().length(); i--) { output("0"); } output(outputhex.str().c_str()); @@ -711,7 +711,7 @@ void cuobjdumpInst::printCuobjdumpOperand(stringListPiece* currentPiece, std::st std::string outputhex; outputhex = mod.substr(2); - for(int i=8; i > outputhex.length(); i--) { + for(unsigned i=8; i > outputhex.length(); i--) { output("0"); } output(outputhex.c_str()); @@ -746,8 +746,6 @@ std::string breaktarget; void cuobjdumpInst::printCuobjdumpPtxPlus(std::list<std::string> labelList, std::list<std::string> texList) { - stringListPiece* currentPiece; - printCuobjdumpLabel(labelList); if(strcmp(m_base, "")==0) @@ -1923,7 +1921,7 @@ void cuobjdumpInst::printCuobjdumpPtxPlus(std::list<std::string> labelList, std: ss << std::hex << tex_id; ss >> tex_id_int; std::list<std::string>::iterator texIter = texList.begin(); - for (int i=0; i<tex_id_int; i++) { + for (unsigned i=0; i<tex_id_int; i++) { assert (texIter!=texList.end()); texIter++; } diff --git a/cuobjdump_to_ptxplus/cuobjdumpInstList.cc b/cuobjdump_to_ptxplus/cuobjdumpInstList.cc index e9b5365..b850298 100644 --- a/cuobjdump_to_ptxplus/cuobjdumpInstList.cc +++ b/cuobjdump_to_ptxplus/cuobjdumpInstList.cc @@ -57,14 +57,14 @@ void cuobjdumpInstList::addTex(std::string tex) // If $tex# tex from cuobjdump, then use index to get real tex name if(tex.substr(0, 4) == "$tex") { tex = tex.substr(4, tex.size()-4); - int texNum = atoi(tex.c_str()); + unsigned texNum = atoi(tex.c_str()); if(texNum >= m_realTexList.size()) { output("ERROR: tex does not exist in real tex list from ptx.\n."); assert(0); } std::list<std::string>::iterator itex = m_realTexList.begin(); - for(int i=0; i<texNum; i++) itex++; + for(unsigned i=0; i<texNum; i++) itex++; origTex = *itex; } // Otherwise, tex from original ptx @@ -261,9 +261,9 @@ void cuobjdumpInstList::printMemory() // Global or entry specific if(i->entryIndex == 0) - sprintf(line, ".const %s constant0[%d] = {", i->type, i->m_constMemory.size()); + sprintf(line, ".const %s constant0[%d] = {", i->type, (int)i->m_constMemory.size()); else - sprintf(line, ".const %s ce%dc%d[%d] = {", i->type, i->entryIndex, i->index, i->m_constMemory.size()); + sprintf(line, ".const %s ce%dc%d[%d] = {", i->type, i->entryIndex, i->index, (int)i->m_constMemory.size()); output(line); @@ -283,7 +283,7 @@ void cuobjdumpInstList::printMemory() char line[1024]; // Global or entry specific - sprintf(line, ".const %s constant1%s[%d] = {", i->type, i->kernel, i->m_constMemory.size()); + sprintf(line, ".const %s constant1%s[%d] = {", i->type, i->kernel, (int)i->m_constMemory.size()); output(line); @@ -368,7 +368,7 @@ void cuobjdumpInstList::addCuobjdumpRegister(std::string reg, bool lo) // add memory operand // memType: 0=constant, 1=shared, 2=global, 3=local -int currconstmem =1; +unsigned currconstmem =1; void cuobjdumpInstList::addCuobjdumpMemoryOperand(std::string mem, int memType) { std::string origMem = mem; bool neg = false; diff --git a/cuobjdump_to_ptxplus/cuobjdump_to_ptxplus.cc b/cuobjdump_to_ptxplus/cuobjdump_to_ptxplus.cc index 570ebf5..d7436e4 100644 --- a/cuobjdump_to_ptxplus/cuobjdump_to_ptxplus.cc +++ b/cuobjdump_to_ptxplus/cuobjdump_to_ptxplus.cc @@ -75,60 +75,20 @@ std::string extractFilename( const std::string& path ) { return path.substr( path.find_last_of( '/' ) +1 ); } + int main(int argc, char* argv[]) { - //TODO: Output to file not yet supported. if(argc != 5) { - cout << "Usage: cuobjdump_to_ptxplus ptxfile sassfile elffile ptxplusfile(output)\n"; + cout << "Usage: " << argv[0] << " ptxfile sassfile elffile ptxplusfile(output)\n"; return 0; } - int result; + string ptxfile = argv[1]; string sassfile = argv[2]; string elffile = argv[3]; string ptxplusfile = argv[4]; - /* - char commandline[1024]; - - snprintf(commandline,1024,"cuobjdump -ptx %s > %s.ptx", exefile.c_str(), basefilename.c_str()); - fflush(stdout); - result = system(commandline); - if (result) {printf("ERROR: could not execute %s\n", commandline); exit(1);} - - - snprintf(commandline,1024,"sed '/arch\\ =\\ sm_20/,/1a$/d' %s.ptx > %s.stripped2.ptx", basefilename.c_str(), basefilename.c_str()); - fflush(stdout); - result = system(commandline); - if (result) {printf("ERROR: could not execute %s\n", commandline); exit(1);} - - snprintf(commandline,1024,"grep -v \"^arch\\ =\\|Fatbin\\ \\|^code\\ version\\|===========\\|producer\\ =\\|host\\ =\\|compile_size\\ =\\|identifier\\ =\" %s.stripped2.ptx > %s.stripped.ptx", basefilename.c_str(), basefilename.c_str()); - fflush(stdout); - result = system(commandline); - if (result) {printf("ERROR: could not execute %s\n", commandline); exit(1);} - - snprintf(commandline,1024,"cuobjdump -sass %s > %s.sass", exefile.c_str(), basefilename.c_str()); - fflush(stdout); - result = system(commandline); - if (result) {printf("ERROR: could not execute %s\n", commandline); exit(1);} - - snprintf(commandline,1024,"sed '/arch\\ =\\ sm_20/,/1a$/d' %s.sass > %s.stripped.sass", basefilename.c_str(), basefilename.c_str()); - fflush(stdout); - result = system(commandline); - if (result) {printf("ERROR: could not execute %s\n", commandline); exit(1);} - - snprintf(commandline,1024,"cuobjdump -elf %s > %s.elf", exefile.c_str(), basefilename.c_str()); - fflush(stdout); - result = system(commandline); - if (result) {printf("ERROR: could not execute %s\n", commandline); exit(1);} - - snprintf(commandline,1024,"sed '/arch\\ =\\ sm_20/,/1a$/d' %s.elf > %s.stripped.elf", basefilename.c_str(), basefilename.c_str()); - fflush(stdout); - result = system(commandline); - if (result) {printf("ERROR: could not execute %s\n", commandline); exit(1);} - */ - sass_in = fopen(sassfile.c_str(), "r" ); ptx_in = fopen(ptxfile.c_str(), "r" ); elf_in = fopen(elffile.c_str(), "r"); @@ -154,9 +114,6 @@ int main(int argc, char* argv[]) // Copy real tex list from ptx to ptxplus instruction list g_instList->setRealTexList(g_headerList->getRealTexList()); - // Insert constant memory from bin file -// g_instList->readConstMemoryFromElfFile(elf); -// g_instList->readOtherConstMemoryFromBinFile(fileToString(binFilename)); // Insert global memory from bin file // g_instList->readGlobalMemoryFromBinFile(fileToString(binFilename)); @@ -165,14 +122,7 @@ int main(int argc, char* argv[]) printf("Parsing .sass file %s\n", sassfile.c_str()); sass_parse(); printf("Finished parsing .sass file %s\n", sassfile.c_str()); - /* - printf("################################################## Instruction List dump\n"); - g_instList->printCuobjdumpInstList(); - printf("################################################## END Instruction List dump\n"); - printf("################################################## Header Instructions Dump\n"); - g_headerList->printCuobjdumpInstList(); - printf("################################################## END Header Instructions Dump\n"); - */ + // Print ptxplus output("//HEADER\n"); g_headerList->printHeaderInstList(); @@ -180,12 +130,10 @@ int main(int argc, char* argv[]) output("//INSTRUCTIONS\n"); g_instList->printCuobjdumpPtxPlusList(g_headerList); output("//END INSTRUCTIONS\n"); - // TODO: remove this. Prints recorded cuobjdump output. -// g_instList->printCuobjdumpInstList(); fclose(sass_in); fclose(ptx_in); -// fclose(bin_in); + fclose(ptxplus_out); printf("DONE. \n"); diff --git a/cuobjdump_to_ptxplus/elf.l b/cuobjdump_to_ptxplus/elf.l index 267bb6b..28c9752 100644 --- a/cuobjdump_to_ptxplus/elf.l +++ b/cuobjdump_to_ptxplus/elf.l @@ -37,9 +37,9 @@ void elf_error(const char*); %} -%option stack %option noyywrap %option yylineno +%option nounput %x cmem %x symtab diff --git a/cuobjdump_to_ptxplus/header.l b/cuobjdump_to_ptxplus/header.l index 170ecf7..83cede7 100644 --- a/cuobjdump_to_ptxplus/header.l +++ b/cuobjdump_to_ptxplus/header.l @@ -30,6 +30,7 @@ %option noyywrap %option yylineno %option prefix="header_" +%option nounput %{ #include <iostream> #include "header_parser.hh" diff --git a/cuobjdump_to_ptxplus/ptx_parser.h b/cuobjdump_to_ptxplus/ptx_parser.h index 590b4b2..6d855f6 100644 --- a/cuobjdump_to_ptxplus/ptx_parser.h +++ b/cuobjdump_to_ptxplus/ptx_parser.h @@ -73,40 +73,40 @@ int g_error_detected; const char *g_filename = ""; int g_func_decl; -void set_symtab( void* a ) {DPRINTF("");} -void end_function() {DPRINTF("");} -void add_directive() {DPRINTF("");} -void add_function_arg() {DPRINTF("");} -void add_instruction() {DPRINTF("");} -void add_file( unsigned a, const char *b ) {DPRINTF("");} -void add_variables() {DPRINTF("");} -void set_variable_type() {DPRINTF("");} -void add_option(int a ) {DPRINTF("");} -void add_array_initializer() {DPRINTF("");} -void add_label( const char *a ) {DPRINTF("");} -void set_return() {DPRINTF("");} -void add_opcode( int a ) {DPRINTF("");} -void add_pred( const char *a, int b, int c ) {DPRINTF("");} +void set_symtab( void* a ) {DPRINTF(" ");} +void end_function() {DPRINTF(" ");} +void add_directive() {DPRINTF(" ");} +void add_function_arg() {DPRINTF(" ");} +void add_instruction() {DPRINTF(" ");} +void add_file( unsigned a, const char *b ) {DPRINTF(" ");} +void add_variables() {DPRINTF(" ");} +void set_variable_type() {DPRINTF(" ");} +void add_option(int a ) {DPRINTF(" ");} +void add_array_initializer() {DPRINTF(" ");} +void add_label( const char *a ) {DPRINTF(" ");} +void set_return() {DPRINTF(" ");} +void add_opcode( int a ) {DPRINTF(" ");} +void add_pred( const char *a, int b, int c ) {DPRINTF(" ");} void add_scalar_operand( const char *a ) {DPRINTF("%s", a);} -void add_neg_pred_operand( const char *a ) {DPRINTF("");} +void add_neg_pred_operand( const char *a ) {DPRINTF(" ");} void add_address_operand( const char *a, int b ) {DPRINTF("%s", a);} -void change_operand_lohi( int a ) {DPRINTF("");} -void change_double_operand_type( int a ) {DPRINTF("");} -void change_operand_neg( ) {DPRINTF("");} -void add_double_operand( const char *a, const char *b ) {DPRINTF("");} -void add_2vector_operand( const char *a, const char *b ) {DPRINTF("");} -void add_3vector_operand( const char *a, const char *b, const char *c ) {DPRINTF("");} -void add_4vector_operand( const char *a, const char *b, const char *c, const char *d ) {DPRINTF("");} -void add_builtin_operand( int a, int b ) {DPRINTF("");} -void add_memory_operand() {DPRINTF("");} -void change_memory_addr_space( const char *a ) {DPRINTF("");} -void add_literal_int( int a ) {DPRINTF("");} -void add_literal_float( float a ) {DPRINTF("");} -void add_literal_double( double a ) {DPRINTF("");} -void add_extern_spec() {DPRINTF("");} -void add_alignment_spec( int ) {DPRINTF("");} -void add_pragma( const char *a ) {DPRINTF("");} -void add_constptr(const char* identifier1, const char* identifier2, int offset) {DPRINTF("");} +void change_operand_lohi( int a ) {DPRINTF(" ");} +void change_double_operand_type( int a ) {DPRINTF(" ");} +void change_operand_neg( ) {DPRINTF(" ");} +void add_double_operand( const char *a, const char *b ) {DPRINTF(" ");} +void add_2vector_operand( const char *a, const char *b ) {DPRINTF(" ");} +void add_3vector_operand( const char *a, const char *b, const char *c ) {DPRINTF(" ");} +void add_4vector_operand( const char *a, const char *b, const char *c, const char *d ) {DPRINTF(" ");} +void add_builtin_operand( int a, int b ) {DPRINTF(" ");} +void add_memory_operand() {DPRINTF(" ");} +void change_memory_addr_space( const char *a ) {DPRINTF(" ");} +void add_literal_int( int a ) {DPRINTF(" ");} +void add_literal_float( float a ) {DPRINTF(" ");} +void add_literal_double( double a ) {DPRINTF(" ");} +void add_extern_spec() {DPRINTF(" ");} +void add_alignment_spec( int ) {DPRINTF(" ");} +void add_pragma( const char *a ) {DPRINTF(" ");} +void add_constptr(const char* identifier1, const char* identifier2, int offset) {DPRINTF(" ");} /*non-dummy stuff below this point*/ @@ -148,7 +148,7 @@ void add_space_spec( enum _memory_space_t spec, int value ) { DPRINTF("spec=%u", spec); cuobjdumpInst *instEntry; - static int constmemindex=1; + //static int constmemindex=1; switch(spec) { case param_space_unclassified: @@ -177,13 +177,15 @@ void add_space_spec( enum _memory_space_t spec, int value ) //g_headerList->addConstMemory(constmemindex++); } break; + default: + break; } } void add_scalar_type_spec( int headerInput ) { - DPRINTF(""); - const char* compareString = g_headerList->getListEnd().getBase(); + DPRINTF(" "); + //const char* compareString = g_headerList->getListEnd().getBase(); if( (inEntryDirective && inParamDirective) || inTexDirective || inConstDirective) { @@ -247,7 +249,7 @@ void add_scalar_type_spec( int headerInput ) //void version_header(double versionNumber) void add_version_info( float versionNumber, unsigned ext) { - DPRINTF(""); + DPRINTF(" "); cuobjdumpInst *instEntry = new cuobjdumpInst(); instEntry->setBase(".version"); g_headerList->add(instEntry); @@ -300,16 +302,15 @@ void target_header3(char* firstTarget, char* secondTarget, char* thirdTarget) void start_function( int a ) { - DPRINTF(""); + DPRINTF(" "); inEntryDirective = true; } void* reset_symtab() { - DPRINTF(""); + DPRINTF(" "); inEntryDirective = false; - void* a; - return a; + return (void*) NULL; } void func_header(const char* headerBase) @@ -329,7 +330,7 @@ void func_header(const char* headerBase) void func_header_info(const char* headerInfo) { DPRINTF("%s", headerInfo); - const char* compareString = g_headerList->getListEnd().getBase(); + //const char* compareString = g_headerList->getListEnd().getBase(); if(inEntryDirective && !inTexDirective) { g_headerList->getListEnd().addOperand(headerInfo); diff --git a/cuobjdump_to_ptxplus/sass.l b/cuobjdump_to_ptxplus/sass.l index bcbb6b8..ebe4897 100644 --- a/cuobjdump_to_ptxplus/sass.l +++ b/cuobjdump_to_ptxplus/sass.l @@ -41,6 +41,7 @@ void sass_error(const char*); %} %option noyywrap %option yylineno +%option nounput /*Regular expresions go here*/ alpha [a-zA-Z] diff --git a/cuobjdump_to_ptxplus/sass.y b/cuobjdump_to_ptxplus/sass.y index 96c86ff..1c67aaf 100644 --- a/cuobjdump_to_ptxplus/sass.y +++ b/cuobjdump_to_ptxplus/sass.y @@ -354,7 +354,7 @@ memorylocation : SMEMLOCATION { printf($1); g_instList->addCuobjdumpMemoryOperan char* input = $1; char* temp = new char[99]; temp[0] = input[1]; - int i=1; + unsigned i=1; while (i < strlen(input)-2) { temp[i] = input[i+2]; i++; |
