Home | History | Annotate | Download | only in src

Lines Matching refs:Func

147   void dump(const Cfg *Func) const;
334 void BoolFolding<Traits>::dump(const Cfg *Func) const {
335 if (!BuildDefs::dump() || !Func->isVerbose(IceV_Folding))
337 OstreamLocker L(Func->getContext());
338 Ostream &Str = Func->getContext()->getStrDump();
343 I.second.Instr->dump(Func);
388 FoldingInfo.dump(Func);
392 TargetX86Base<TraitsType>::TargetX86Base(Cfg *Func)
393 : TargetLowering(Func), NeedSandboxing(SandboxingType == ST_NaCl) {
445 TimerMarker T(TimerStack::TT_O2, Func);
452 Func->dump("After target helper call insertion");
456 Func->processAllocas(SortAndCombineAllocas);
457 Func->dump("After Alloca processing");
464 Func->generateLoopInfo();
465 Func->dump("After loop analysis");
467 Func->loopInvariantCodeMotion();
468 Func->dump("After LICM");
472 Func->localCSE(getFlags().getLocalCSE() == Ice::LCSE_EnabledSSA);
473 Func->dump("After Local CSE");
474 Func->floatConstantCSE();
477 Func->shortCircuitJumps();
478 Func
483 Func->placePhiLoads();
484 if (Func->hasError())
486 Func->placePhiStores();
487 if (Func->hasError())
489 Func->deletePhis();
490 if (Func->hasError())
492 Func->dump("After Phi lowering");
496 Func->getVMetadata()->init(VMK_SingleDefs);
497 Func->doAddressOpt();
498 Func->materializeVectorShuffles();
504 Func->dump("After RMW transform");
507 Func->doArgLowering();
514 Func->renumberInstructions();
515 if (Func->hasError())
521 Func->liveness(Liveness_Basic);
522 if (Func->hasError())
524 Func->dump("After x86 address mode opt");
531 Func->genCode();
532 if (Func->hasError())
537 Func->dump("After x86 codegen");
538 splitBlockLocalVariables(Func);
543 Func->renumberInstructions();
544 if (Func->hasError())
546 Func->liveness(Liveness_Intervals);
547 if (Func->hasError())
551 Func->dump("After initial x86 codegen");
554 assert(Func->validateLiveness());
555 Func->getVMetadata()->init(VMK_All);
557 if (Func->hasError())
559 Func->dump("After linear scan regalloc");
562 Func->advancedPhiLowering();
563 Func->dump("After advanced Phi lowering");
567 Func->genFrame();
568 if (Func->hasError())
570 Func->dump("After stack frame mapping");
572 Func->contractEmptyNodes();
573 Func->reorderNodes();
576 Func->shuffleNodes();
582 Func->doBranchOpt();
583 Func->dump("After branch optimization");
586 Func->doNopInsertion();
590 Func->markNodesForSandboxing();
595 TimerMarker T(TimerStack::TT_Om1, Func);
605 Func->processAllocas(SortAndCombineAllocas);
606 Func->dump("After Alloca processing");
608 Func->placePhiLoads();
609 if (Func->hasError())
611 Func->placePhiStores();
612 if (Func->hasError())
614 Func->deletePhis();
615 if (Func->hasError())
617 Func->dump("After Phi lowering");
619 Func->doArgLowering();
620 Func->genCode();
621 if (Func->hasError())
626 Func->dump("After initial x86 codegen");
629 if (Func->hasError())
631 Func->dump("After regalloc of infinite-weight variables");
633 Func->genFrame();
634 if (Func->hasError())
636 Func->dump("After stack frame mapping");
639 Func->shuffleNodes();
642 Func->doNopInsertion();
646 Func->markNodesForSandboxing();
699 TimerMarker _(TimerStack::TT_findRMW, Func);
700 Func->dump("Before RMW");
701 if (Func->isVerbose(IceV_RMW))
702 Func->getContext()->lockStr();
703 for (CfgNode *Node : Func->getNodes()) {
767 if (Func->isVerbose(IceV_RMW)) {
768 Ostream &Str = Func->getContext()->getStrDump();
769 Str << "Found RMW in " << Func->getFunctionName() << ":\n ";
770 Load->dump(Func);
772 Arith->dump(Func);
774 Store->dump(Func);
777 Variable *Beacon = Func->makeVariable(IceType_i32);
780 auto *BeaconDef = InstFakeDef::create(Func, Beacon);
782 auto *RMW = InstX86FakeRMW::create(Func, ArithSrcOther, Store->getAddr(),
787 if (Func->isVerbose(IceV_RMW))
788 Func->getContext()->unlockStr();
817 TimerMarker _(TimerStack::TT_loadOpt, Func);
818 for (CfgNode *Node : Func->getNodes()) {
858 NewInst = InstArithmetic::create(Func, Arith->getOp(),
865 NewInst = InstIcmp::create(Func, Icmp->getCondition(),
872 NewInst = InstFcmp::create(Func, Fcmp->getCondition(),
879 NewInst = InstSelect::create(Func, Select->getDest(),
886 NewInst = InstCast::create(Func, Cast->getCastKind(),
903 Func->dump("After load optimization");
924 Reg = Func->makeVariable(Ty);
930 Func->addImplicitArg(Reg);
960 Func->getFunctionName());
985 Func->getFunctionName());
1127 const Type ReturnType = Func->getReturnType();
1192 const VarList &Args = Func->getArgs();
1242 if (BuildDefs::dump() && Func->isVerbose(IceV_Frame)) {
1243 OstreamLocker L(Func->getContext());
1244 Ostream &Str = Func->getContext()->getStrDump();
1304 Func, Ty, FramePtr,
1398 Func, IceType_i32, Mem->getBase(), Mem->getOffset(), Mem->getIndex(),
1437 Func, IceType_i32, Mem->getBase(), Offset, Mem->getIndex(),
1476 const bool OptM1 = Func->getOptLevel() == Opt_m1;
1527 Func, IceType_void, esp, Ctx->getConstantInt(IceType_i32, OutArgsSize));
1537 const bool OptM1 = Func->getOptLevel() == Opt_m1;
1538 VarList &Args = Func->getArgs();
1544 Context.init(Func->getEntryNode());
1560 RegisterArg = Func->makeVariable(Ty);
1571 RegisterArg = Func->makeVariable(Ty);
1579 RegisterArg = Func->makeVariable(Ty);
1587 RegisterArg->setName(Func, "home_reg:" + Arg->getName());
1619 if (Func->getOptLevel() < Opt_1)
1691 _lea(T, X86OperandMem::create(Func, IceType_void, T, Zero, T, Shift));
1695 _lea(T, X86OperandMem::create(Func, IceType_void, T, Zero, T, Shift));
1699 _lea(T, X86OperandMem::create(Func, IceType_void, T, Zero, T, Shift));
1843 InstX86Label *Label = InstX86Label::create(Func, this);
2238 auto *Mem = Traits::X86OperandMem::create(Func, IceType_void, Var, Const);
2350 if (false && Func->getOptLevel() >= Opt_1) {
2450 if (false && Func->getOptLevel() >= Opt_1) {
2654 Traits::X86OperandMem::create(Func, Ty, esp, Loc));
2677 InstStore::create(Func, legalize(StackArgs[i]), StackArgLocations[i]));
2818 Func->setError("Cast type not supported");
3110 auto *Assign = InstAssign::create(Func, Dest, Src0);
3147 Variable *Spill = Func->makeVariable(IceType_f64);
3151 SpillLo = Traits::VariableSplit::create(Func, Spill,
3153 SpillHi = Traits::VariableSplit::create(Func, Spill,
3193 Variable *Spill = Func->makeVariable(IceType_f64);
3199 Func, Spill, Traits::VariableSplit::Low);
3201 Func, Spill, Traits::VariableSplit::High);
3296 Variable *Slot = Func->makeVariable(Ty);
3311 InstCast::create(Func, InstCast::Trunc, T, ExtractedElementR);
3390 InstX86Label *Label = InstX86Label::create(Func, this);
3425 InstX86Label *Label = InstX86Label::create(Func, this);
3576 Variable *NewSrc0 = Func->makeVariable(NewTy);
3577 Variable *NewSrc1 = Func->makeVariable(NewTy);
3578 lowerCast(InstCast::create(Func, InstCast::Sext, NewSrc0, Src0));
3579 lowerCast(InstCast::create(Func, InstCast::Sext, NewSrc1, Src1));
3763 InstX86Label *LabelFalse = InstX86Label::create(Func, this);
3764 InstX86Label *LabelTrue = InstX86Label::create(Func, this);
3793 InstX86Label *LabelFalse = InstX86Label::create(Func, this);
3794 InstX86Label *LabelTrue = InstX86Label::create(Func, this);
3921 Variable *Expanded = Func->makeVariable(InVectorElementTy);
3922 auto *Cast = InstCast::create(Func, InstCast::Zext, Expanded,
4022 Variable *Slot = Func->makeVariable(Ty);
4046 Func->setError("Unexpected memory ordering for AtomicCmpxchg");
4061 Func->setError("Unexpected memory ordering for AtomicFence");
4099 Func->setError("AtomicIsLockFree byte size should be compile-time const");
4107 Func->setError("Unexpected memory ordering for AtomicLoad");
4122 auto *Cast = InstCast::create(Func, InstCast::Bitcast, Dest, T);
4130 auto *Load = InstLoad::create(Func, Dest, Instr->getArg(0));
4141 Func->setError("Unexpected memory ordering for AtomicRMW");
4153 Func->setError("Unexpected memory ordering for AtomicStore");
4166 auto *Cast = InstCast::create(Func, InstCast::Bitcast, T, Value);
4174 auto *Store = InstStore::create(Func, Value, Ptr);
4381 Variable *esp = Func->getTarget()->getPhysicalRegister(getStackReg(),
4387 Variable *esp = Func->getTarget()->getPhysicalRegister(
4427 Func->setError("Unexpected size for LoadSubVector");
4452 Func->setError("Unexpected size for StoreSubVector");
4635 Func->setError("Unexpected intrinsic");
4698 if (Func->getOptLevel() == Opt_m1)
4778 Func->setError("Unknown AtomicRMW operation");
4895 InstX86Label *Label = InstX86Label::create(Func, this);
5085 auto *Mem = X86OperandMem::create(Func, Ty, Base, Offset);
5103 auto *Mem = X86OperandMem::create(Func, Ty, Base, Offset);
5286 auto *Mem = X86OperandMem::create(Func, Ty, Base, Offset);
5349 Variable *ValExtVar = Func->makeVariable(stackSlotType());
5350 lowerCast(InstCast::create(Func, InstCast::Zext, ValExtVar, Val));
5366 explicit AddressOptimizer(const Cfg *Func)
5367 : Func(Func), VMetadata(Func->getVMetadata()) {}
5389 const Cfg *const Func;
5406 if (!Func->isVerbose(IceV_AddrOpt))
5408 OstreamLocker L(Func->getContext());
5409 Ostream &Str = Func->getContext()->getStrDump();
5411 Reason->dumpDecorated(Func);
5414 Base->dump(Func);
5419 Index->dump(Func);
5731 Func->resetCurrentNode();
5732 if (Func->isVerbose(IceV_AddrOpt)) {
5733 OstreamLocker L(Func->getContext());
5734 Ostream &Str = Func->getContext()->getStrDump();
5736 Instr->dumpDecorated(Func);
5751 if (Func->getVMetadata()->isMultiBlock(
5755 AddressOptimizer AddrOpt(Func);
5906 return X86OperandMem::create(Func, MemType, NewAddr.Base, OffsetOp,
5960 auto *Label = InstX86Label::create(Func, this);
5978 auto *Assign = InstAssign::create(Func, DestLoad, Src0);
5987 auto *VMetadata = Func->getVMetadata();
6054 Func->setError("Phi found in regular instruction list");
6142 GlobalString FuncName = Func->getFunctionName();
6150 Ctx, "Pshufb$" + Func->getFunctionName() + "$" + std::to_string(Id));
6168 auto *Mask = VariableDeclaration::create(Func->getGlobalPool());
6172 Func->getGlobalPool(), Initializer, NumElements));
6176 Func->addGlobal(Mask);
6200 Func, MaskType, NoBase,
6221 Func, MaskType, NoBase,
6611 InstExtractElement::create(Func, ExtElmt, Src0, Index));
6614 Func, ExtElmt, Src1,
6618 lowerInsertElement(InstInsertElement::create(Func, NewT, T, ExtElmt,
6670 auto *Label = InstX86Label::create(Func, this);
6850 lowerCast(InstCast::create(Func, InstCast::Sext, xmm0, Condition));
6866 Variable *T3 = Func->makeVariable(IceType_v4i32);
6867 lowerCast(InstCast::create(Func, InstCast::Sext, T3, Condition));
6870 lowerCast(InstCast::create(Func, InstCast::Sext, T, Condition));
6971 SkipJumpTable = InstX86Label::create(Func, this);
7010 _mov(Target, X86OperandMem::create(Func, PointerType, NoBase, Offset,
7014 _lea(Base, X86OperandMem::create(Func, IceType_void, NoBase, Offset));
7015 _mov(Target, X86OperandMem::create(Func, PointerType, Base, NoOffset,
7054 CaseClusterArray CaseClusters = CaseCluster::clusterizeSwitch(Func, Instr);
7078 InstX86Label *Label = InstX86Label::create(Func, this);
7172 InstX86Label *Label = InstX86Label::create(Func, this);
7335 Node->getInsts().push_front(InstFakeUse::create(Func, RebasePtr));
7348 this, Context.getNode(), Func);
7503 CallDest = Func->makeVariable(IceType_i32);
7508 CallDest = Func->makeVariable(IceType_i32);
7513 Variable *Src0AsI32 = Func->makeVariable(stackSlotType());
7521 Variable *Src0AsI32 = Func->makeVariable(stackSlotType());
7770 return X86OperandMem::create(Func, Ty, Loc, ConstantOffset);
7902 Mem = X86OperandMem::create(Func, Ty, RegBase, Offset, RegIndex, Shift,
7953 auto *Mem = Traits::X86OperandMem::create(Func, Ty, nullptr, CR);
7973 auto *Mem = X86OperandMem::create(Func, Ty, nullptr, Offset);
8008 auto *Mem = X86OperandMem::create(Func, Ty, Var, NoOffset);
8102 Mem = X86OperandMem::create(Func, Ty, Base, Offset);
8114 Variable *Reg = Func->makeVariable(Type);
8150 if (Func->getOptLevel() == Opt_m1)
8160 Traits::makeRandomRegisterPermutation(Func, Permutation, ExcludeRegisters,
8261 uint32_t Cookie = Func->getConstantBlindingCookie();
8264 _lea(Reg, X86OperandMem::create(Func, IceType_i32, Reg, Offset));
8290 X86OperandMem::create(Func, Immediate->getType(), NoBase, Symbol);
8345 uint32_t Cookie = Func->getConstantBlindingCookie();
8352 Func, MemOperand->getType(), MemOperand->getBase(), Mask1);
8361 Func, MemOperand->getType(), RegTemp, Mask2, MemOperand->getIndex(),
8394 Func, MemOperand->getOffset()->getType(), NoBase, Symbol);
8401 Func, MemOperand->getType(), MemOperand->getBase(), nullptr, RegTemp,
8406 Func, MemOperand->getType(), RegTemp, nullptr, MemOperand->getIndex(),