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


C++ VectorSet::test_set方法代码示例

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


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

示例1: set_next_call

//------------------------------set_next_call----------------------------------
void Block::set_next_call( Node *n, VectorSet &next_call, Block_Array &bbs ) {
  if( next_call.test_set(n->_idx) ) return;
  for( uint i=0; i<n->len(); i++ ) {
    Node *m = n->in(i);
    if( !m ) continue;  // must see all nodes in block that precede call
    if( bbs[m->_idx] == this ) 
      set_next_call( m, next_call, bbs );
  }
}
开发者ID:fatman2021,项目名称:myforthprocessor,代码行数:10,代码来源:lcm.cpp

示例2: set_next_call

//------------------------------set_next_call----------------------------------
void PhaseCFG::set_next_call(Block* block, Node* n, VectorSet& next_call) {
  if( next_call.test_set(n->_idx) ) return;
  for( uint i=0; i<n->len(); i++ ) {
    Node *m = n->in(i);
    if( !m ) continue;  // must see all nodes in block that precede call
    if (get_block_for_node(m) == block) {
      set_next_call(block, m, next_call);
    }
  }
}
开发者ID:dain,项目名称:graal,代码行数:11,代码来源:lcm.cpp

示例3: add_to_worklist

 // Put node on worklist if it is (or was) not there.
 inline void add_to_worklist(PointsToNode* pt) {
   PointsToNode* ptf = pt;
   uint pidx_bias = 0;
   if (PointsToNode::is_base_use(pt)) {
     // Create a separate entry in _in_worklist for a marked base edge
     // because _worklist may have an entry for a normal edge pointing
     // to the same node. To separate them use _next_pidx as bias.
     ptf = PointsToNode::get_use_node(pt)->as_Field();
     pidx_bias = _next_pidx;
   }
   if (!_in_worklist.test_set(ptf->pidx() + pidx_bias)) {
     _worklist.append(pt);
   }
 }
开发者ID:campolake,项目名称:openjdk9,代码行数:15,代码来源:escape.hpp

示例4: expand_recur

//------------------------------expand_recur----------------------------
static void expand_recur( Node *n, VectorSet &visited, Node_List &worklist ) {
    if( !n ) return;
    if( visited.test_set(n->_idx) ) return;
    switch (n->class_id()) {
    case Node::Class_Allocate:    // We use millicode instead of inline allocation
    case Node::Class_AllocateArray:
    case Node::Class_Lock:
    case Node::Class_Unlock:
    case Node::Class_SafePoint:
//  case Node::Class_GetKlass:
        worklist.push(n);
    }
    for(uint i=0; i<n->req(); i++)
        expand_recur(n->in(i),visited,worklist);
}
开发者ID:GregBowyer,项目名称:ManagedRuntimeInitiative,代码行数:16,代码来源:macro.cpp

示例5: _dump_cfg

void PhaseCFG::_dump_cfg( const Node *end, VectorSet &visited  ) const {
  const Node *x = end->is_block_proj();
  assert( x, "not a CFG" );

  // Do not visit this block again
  if( visited.test_set(x->_idx) ) return;

  // Skip through this block
  const Node *p = x;
  do {
    p = p->in(0);               // Move control forward
    assert( !p->is_block_proj() || p->is_Root(), "not a CFG" );
  } while( !p->is_block_start() );

  // Recursively visit
  for( uint i=1; i<p->req(); i++ )
    _dump_cfg(p->in(i),visited);

  // Dump the block
  _bbs[p->_idx]->dump(&_bbs);
}
开发者ID:GregBowyer,项目名称:ManagedRuntimeInitiative,代码行数:21,代码来源:block.cpp


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