本文整理汇总了C++中CompiledCode::start_line方法的典型用法代码示例。如果您正苦于以下问题:C++ CompiledCode::start_line方法的具体用法?C++ CompiledCode::start_line怎么用?C++ CompiledCode::start_line使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CompiledCode
的用法示例。
在下文中一共展示了CompiledCode::start_line方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: compile_method
void Compiler::compile_method(BackgroundCompileRequest* req) {
CompiledCode* code = req->method();
if(ctx_->llvm_state()->config().jit_inline_debug) {
struct timeval tv;
gettimeofday(&tv, NULL);
ctx_->llvm_state()->log() << "JIT: compiling "
<< ctx_->llvm_state()->enclosure_name(code)
<< "#"
<< ctx_->llvm_state()->symbol_debug_str(code->name())
<< " (" << tv.tv_sec << "." << tv.tv_usec << ")\n";
}
#ifdef HAVE_DTRACE
if(RUBINIUS_JIT_FUNCTION_BEGIN_ENABLED()) {
RBX_DTRACE_CONST char* class_name =
const_cast<RBX_DTRACE_CONST char*>(
ctx_->llvm_state()->enclosure_name(code).c_str());
RBX_DTRACE_CONST char* method_name =
const_cast<RBX_DTRACE_CONST char*>(
ctx_->llvm_state()->symbol_debug_str(code->name()).c_str());
RBX_DTRACE_CONST char* file_name =
const_cast<RBX_DTRACE_CONST char*>(
ctx_->llvm_state()->symbol_debug_str(code->file()).c_str());
int line = code->start_line();
RUBINIUS_JIT_FUNCTION_BEGIN(class_name, method_name, file_name, line);
}
#endif
JITMethodInfo info(ctx_, code, code->machine_code());
info.is_block = false;
info.hits = req->hits();
if(Class* cls = req->receiver_class()) {
info.set_self_class(cls);
}
ctx_->set_root(&info);
jit::MethodBuilder work(ctx_, info);
work.setup();
compile_builder(info, work);
ctx_->set_root(NULL);
#ifdef HAVE_DTRACE
if(RUBINIUS_JIT_FUNCTION_END_ENABLED()) {
RBX_DTRACE_CONST char* class_name =
const_cast<RBX_DTRACE_CONST char*>(
ctx_->llvm_state()->enclosure_name(code).c_str());
RBX_DTRACE_CONST char* method_name =
const_cast<RBX_DTRACE_CONST char*>(
ctx_->llvm_state()->symbol_debug_str(code->name()).c_str());
RBX_DTRACE_CONST char* file_name =
const_cast<RBX_DTRACE_CONST char*>(
ctx_->llvm_state()->symbol_debug_str(code->file()).c_str());
int line = code->start_line();
RUBINIUS_JIT_FUNCTION_END(class_name, method_name, file_name, line);
}
#endif
}