Searched refs:phi (Results 1 - 9 of 9) sorted by relevance

/art/compiler/sea_ir/debug/
H A Ddot_gen.cc165 void DotGenerationVisitor::Visit(PhiInstructionNode* phi) { argument
166 dot_text_ += "// PhiInstruction: \n" + phi->StringId() +
167 " [label=\"[" + phi->StringId() + "] PHI(";
168 dot_text_ += art::StringPrintf("%d", phi->GetRegisterNumber());
171 ToDotSSAEdges(phi);
H A Ddot_gen.h58 void Visit(PhiInstructionNode* phi);
/art/compiler/sea_ir/code_gen/
H A Dcode_gen.cc29 void CodeGenPrepassVisitor::Visit(PhiInstructionNode* phi) { argument
30 Region* r = phi->GetRegion();
35 llvm::Type::getInt32Ty(*llvm_data_->context_), predecessors->size(), phi->StringId());
36 llvm_data_->AddValue(phi, llvm_phi);
256 void CodeGenPostpassVisitor::Visit(PhiInstructionNode* phi) { argument
257 std::cout << "10. Instruction: Phi(" << phi->GetRegisterNumber() << ")" << std::endl;
258 Region* r = phi->GetRegion();
262 // Prepass (CodeGenPrepassVisitor) should create the phi function value.
263 llvm::PHINode* llvm_phi = (llvm::PHINode*) llvm_data_->GetValue(phi);
267 std::vector<InstructionNode*>* defining_instructions = phi
[all...]
/art/compiler/dex/
H A Dmir_optimization.cc367 MIR* phi = FindPhi(tk_tk, if_true->ssa_rep->defs[0]); local
368 if ((phi != NULL) && (if_true->dalvikInsn.vA == if_false->dalvikInsn.vA)) {
430 if (phi->ssa_rep->num_uses == 2) {
431 mir->ssa_rep->defs[0] = phi->ssa_rep->defs[0];
432 phi->dalvikInsn.opcode = static_cast<Instruction::Code>(kMirOpNop);
437 int* incoming = reinterpret_cast<int*>(phi->dalvikInsn.vB);
438 for (int i = 0; i < phi->ssa_rep->num_uses; i++) {
439 if (phi->ssa_rep->uses[i] == live_def) {
443 for (int i = 0; i < phi->ssa_rep->num_uses; i++) {
444 if (phi
[all...]
H A Dssa_transformation.cc210 * TODO - evaluate whether phi will ever need to be inserted into exit
456 * The calculated result is used for phi-node pruning - where we only need to
457 * insert a phi node if the variable is live-in to the block.
493 /* Insert phi nodes to for each variable to the dominance frontiers */
519 /* Calculate the phi blocks for each Dalvik register */
552 * Insert a phi node for dalvik_reg in the phi_blocks if the Dalvik
562 /* Variable will be clobbered before being used - no need for phi */
566 MIR *phi = local
568 phi->dalvikInsn.opcode = static_cast<Instruction::Code>(kMirOpPhi);
569 phi
[all...]
/art/compiler/sea_ir/ir/
H A Dvisitor.h79 virtual void Traverse(PhiInstructionNode* phi) { } argument
H A Dsea.cc320 // Pass: Actually add phi-nodes to regions.
351 // Rename phi nodes defined in the current region.
379 // Fill in uses of phi functions in CFG successor regions.
596 PhiInstructionNode* phi = (*phi_it); local
597 int reg_no = phi->GetRegisterNumber();
599 phi->RenameToSSA(reg_no, definition, predecessor_id);
/art/compiler/llvm/
H A Dgbc_expander.cc534 // Update the phi-instructions in the successor basic block
560 // Iterate every phi instructions in the succeeding basic block
565 llvm::PHINode *phi = llvm::dyn_cast<llvm::PHINode>(inst_iter); local
567 if (!phi) {
568 break; // Meet non-phi instruction. Done.
571 if (handler_phi[phi] == NULL) {
572 handler_phi[phi] = llvm::PHINode::Create(phi->getType(), 1);
576 llvm::PHINode* new_phi = irb_.CreatePHI(phi->getType(), rewrite_pair.size());
581 new_phi->addIncoming(phi
627 llvm::PHINode *phi = llvm::dyn_cast<llvm::PHINode>(inst_iter); local
1826 llvm::PHINode* phi = irb_.CreatePHI(irb_.getJObjectTy(), 2); local
1881 llvm::PHINode* phi = irb_.CreatePHI(irb_.getJObjectTy(), 2); local
2112 llvm::PHINode* phi = irb_.CreatePHI(irb_.getJObjectTy(), 2); local
2278 llvm::PHINode* phi = irb_.CreatePHI(irb_.getJIntTy(), 3); local
[all...]
/art/compiler/dex/portable/
H A Dmir_to_gbc.cc1558 ::llvm::PHINode* phi = irb_->CreatePHI(phi_type, mir->ssa_rep->num_uses); local
1573 phi->addIncoming(GetLLVMValue(loc.orig_sreg),
1576 DefineValueOnly(phi, rl_dest.orig_sreg);
1590 ::llvm::Value* phi = GetLLVMValue(rl_dest.orig_sreg); local
1591 if (1) SetVregOnValue(phi, rl_dest.orig_sreg);

Completed in 785 milliseconds