本文整理汇总了C++中WorkList::add方法的典型用法代码示例。如果您正苦于以下问题:C++ WorkList::add方法的具体用法?C++ WorkList::add怎么用?C++ WorkList::add使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WorkList
的用法示例。
在下文中一共展示了WorkList::add方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: addInstrUsers
/**
* helper - add the users of the Defs of a given
* instruction to the passed worklist.
*
* This encapsulates several nontrivial pieces of logic:
* 1. Skip use instructions that haven't been reached yet.
* 2. Skip over dead arms of constant conditionals.
* 3. Jump the call-site gap between block delims.
* (goto -> label, cond -> arm)
* 4. When reaching a block the first time, mark all its instructions reached
* *and* enque them, because they could have been previously skipped.
*/
void SCCP::addInstrUsers(Instr* instr) {
for (AllUsesRange u(instr); !u.empty(); u.popFront()) {
Instr* use_instr = user(u.front());
if (mark.get(use_instr->id))
ssawork.add(use_instr);
}
}
示例2: WorkItem
EXTERN_C int worklist_add( const long rpcmsg,
const ccs_pipe_t pipe,
const k5_ipc_stream stream,
const time_t serverStartTime) {
return worklist.add(new WorkItem(stream, pipe, rpcmsg, serverStartTime) );
}
示例3: addBlock
/**
* Enque the block. If it is already visited, just enqueu it.
* Otherwise, mark it reached and enque all the instructions in the block.
*/
void SCCP::addBlock(BlockStartInstr* block) {
if (!mark.get(block->id))
cfgwork.push(block);
else
ssawork.add(block);
}