Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool runOnFunction(Function &F) override {
- Module *M = F.getParent();
- LLVMContext &context = M->getContext();
- Function *print_inst = cast<Function>(M->getOrInsertFunction("printOutInstrInfo", Type::getVoidTy(context), Type::getInt8PtrTy(context)));
- Function *print_func = cast<Function>(M->getOrInsertFunction("printOutFuncInfo", Type::getVoidTy(context), Type::getInt8PtrTy(context)));
- Function *print_bb = cast<Function>(M->getOrInsertFunction("printOutBBInfo", Type::getVoidTy(context), Type::getInt8PtrTy(context)));
- for(Function::iterator B = F.begin(), BE = F.end(); B!=BE; ++B) {
- if (F.getName() == "BZ2_hbMakeCodeLengths"){
- IRBuilder<> Builder(&*B);
- Builder.SetInsertPoint(B->getTerminator());
- Builder.CreateCall(print_func, Builder.CreateGlobalStringPtr(F.getName()));
- //Builder.CreateCall(print_bb, Builder.CreateGlobalStringPtr(B->printAsOperand()));
- for(BasicBlock::iterator I = B->begin(), IE = B->end(); I != IE; ++I) {
- Builder.SetInsertPoint(&*I);
- Builder.CreateCall(print_inst, Builder.CreateGlobalStringPtr(I->getOpcodeName()));
- }
- }
- }
- return false;
- }
- terminate called after throwing an instance of 'std::bad_alloc'
- what(): std::bad_alloc
- opt(_ZN4llvm3sys15PrintStackTraceERNS_11raw_ostreamE+0x2a)[0x1dd4ffa]
- opt(_ZN4llvm3sys17RunSignalHandlersEv+0x3e)[0x1dd30ce]
- opt[0x1dd321c]
- /lib/x86_64-linux-gnu/libpthread.so.0(+0x11390)[0x7f1bb8b84390]
- /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x38)[0x7f1bb7d39428]
- /lib/x86_64-linux-gnu/libc.so.6(abort+0x16a)[0x7f1bb7d3b02a]
- /usr/lib/x86_64-linux-gnu/libstdc++.so.6(_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0x16d) [0x7f1bb867c84d]
- /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0x8d6b6)[0x7f1bb867a6b6]
- /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0x8d701)[0x7f1bb867a701]
- /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0x8d919)[0x7f1bb867a919]
- /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0x8debc)[0x7f1bb867aebc]
- opt[0x1803d48]
- opt[0x1804612] opt(_ZN4llvm12ConstantExpr16getGetElementPtrEPNS_4TypeEPNS_8ConstantENS_8ArrayRefIPNS_5ValueEEEbNS_8OptionalIjEES2_+0x306)[0x18055d6]
- build/skeleton/libSkeletonPass.so(_ZN4llvm12ConstantExpr24getInBoundsGetElementPtrEPNS_4TypeEPNS_8ConstantENS_8ArrayRefIPNS_5ValueEEE+0x67)[0x7f1bb7afb056]
- build/skeleton/libSkeletonPass.so(_ZNK4llvm14ConstantFolder27CreateInBoundsGetElementPtrEPNS_4TypeEPNS_8ConstantENS_8ArrayRefIPNS_5ValueEEE+0x40)[0x7f1bb7afb0e2]
- build/skeleton/libSkeletonPass.so(_ZN4llvm9IRBuilderINS_14ConstantFolderENS_24IRBuilderDefaultInserterEE17CreateInBoundsGEPEPNS_4TypeEPNS_5ValueENS_8ArrayRefIS7_EERKNS_5TwineE+0xcc)[0x7f1bb7afce50]
- build/skeleton/libSkeletonPass.so(_ZN4llvm9IRBuilderINS_14ConstantFolderENS_24IRBuilderDefaultInserterEE21CreateGlobalStringPtrENS_9StringRefERKNS_5TwineEj+0xd3)[0x7f1bb7afc685]
- build/skeleton/libSkeletonPass.so(+0xe11c)[0x7f1bb7afa11c]
- opt(_ZN4llvm13FPPassManager13runOnFunctionERNS_8FunctionE+0x28a)[0x188c3ea]
- opt(_ZN4llvm13FPPassManager11runOnModuleERNS_6ModuleE+0x33)[0x188c493]
- opt(_ZN4llvm6legacy15PassManagerImpl3runERNS_6ModuleE+0x304)[0x188bfa4]
- opt(main+0x202d)[0x73addd]
- /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7f1bb7d24830]
- opt(_start+0x29)[0x7cfd99]
- Stack dump:
- 0. Program arguments: opt -load build/skeleton/libSkeletonPass.so -cdi -o 401_inst.bc
- 1. Running pass 'Function Pass Manager' on module '<stdin>'.
- 2. Running pass 'Count Dynamic Instructions' on function '@BZ2_hbMakeCodeLengths'
- Aborted (core dumped)
Add Comment
Please, Sign In to add comment