当前位置: 首页>>代码示例>>C++>>正文


C++ VMMethod::parent方法代码示例

本文整理汇总了C++中VMMethod::parent方法的典型用法代码示例。如果您正苦于以下问题:C++ VMMethod::parent方法的具体用法?C++ VMMethod::parent怎么用?C++ VMMethod::parent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在VMMethod的用法示例。


在下文中一共展示了VMMethod::parent方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: find_candidate

  CompiledMethod* LLVMState::find_candidate(CompiledMethod* start, CallFrame* call_frame) {
    if(!config_.jit_inline_generic) {
      return find_first_non_block(call_frame);
    }

    int depth = cInlineMaxDepth;

    if(!start) {
      start = call_frame->cm;
      call_frame = call_frame->previous;
      depth--;
    }

    if(!call_frame || start->backend_method()->total > SMALL_METHOD_SIZE) {
      return start;
    }

    CompiledMethod* caller = start;

    while(depth-- > 0) {
      CompiledMethod* cur = call_frame->cm;
      VMMethod* vmm = cur->backend_method();

      if(call_frame->block_p()
          || vmm->required_args != vmm->total_args // has a splat
          || vmm->call_count < 200 // not called much
          || vmm->jitted() // already jitted
          || vmm->parent() // is a block
        ) return caller;

      CallFrame* next = call_frame->previous;

      if(!next|| cur->backend_method()->total > SMALL_METHOD_SIZE) return cur;

      caller = cur;
      call_frame = next;
    }

    return caller;
  }
开发者ID:rdp,项目名称:rubinius,代码行数:40,代码来源:jit.cpp


注:本文中的VMMethod::parent方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。