Home | History | Annotate | Download | only in src

Lines Matching refs:Func

79 Inst::Inst(Cfg *Func, InstKind Kind, SizeT MaxSrcs, Variable *Dest)
80 : Kind(Kind), Number(Func->newInstNumber()), Dest(Dest), MaxSrcs(MaxSrcs),
127 void Inst::renumber(Cfg *Func) {
128 Number = isDeleted() ? NumberDeleted : Func->newInstNumber();
199 void Inst::livenessLightweight(Cfg *Func, LivenessBV &Live) {
202 VariablesMetadata *VMetadata = Func->getVMetadata();
273 InstAlloca::InstAlloca(Cfg *Func, Variable *Dest, Operand *ByteCount,
275 : InstHighLevel(Func, Inst::Alloca, 1, Dest), AlignInBytes(AlignInBytes) {
281 InstArithmetic::InstArithmetic(Cfg *Func, OpKind Op, Variable *Dest,
283 : InstHighLevel(Func, Inst::Arithmetic, 2, Dest), Op(Op) {
304 InstAssign::InstAssign(Cfg *Func, Variable *Dest, Operand *Source)
305 : InstHighLevel(Func, Inst::Assign, 1, Dest) {
314 InstBr::InstBr(Cfg *Func, Operand *Source, CfgNode *TargetTrue_,
316 : InstHighLevel(Func, Inst::Br, 1, nullptr), TargetFalse(TargetFalse_),
331 InstBr::InstBr(Cfg *Func, CfgNode *Target)
332 : InstHighLevel(Func, Inst::Br, 0, nullptr), TargetFalse(Target),
357 InstCast::InstCast(Cfg *Func, OpKind CastKind, Variable *Dest, Operand *Source)
358 : InstHighLevel(Func, Inst::Cast, 1, Dest), CastKind(CastKind) {
362 InstExtractElement::InstExtractElement(Cfg *Func, Variable *Dest,
364 : InstHighLevel(Func, Inst::ExtractElement, 2, Dest) {
369 InstFcmp::InstFcmp(Cfg *Func, FCond Condition, Variable *Dest, Operand *Source1,
371 : InstHighLevel(Func, Inst::Fcmp, 2, Dest), Condition(Condition) {
376 InstIcmp::InstIcmp(Cfg *Func, ICond Condition, Variable *Dest, Operand *Source1,
378 : InstHighLevel(Func, Inst::Icmp, 2, Dest), Condition(Condition) {
383 InstInsertElement::InstInsertElement(Cfg *Func, Variable *Dest,
386 : InstHighLevel(Func, Inst::InsertElement, 3, Dest) {
392 InstLoad::InstLoad(Cfg *Func, Variable *Dest, Operand *SourceAddr)
393 : InstHighLevel(Func, Inst::Load, 1, Dest) {
397 InstPhi::InstPhi(Cfg *Func, SizeT MaxSrcs, Variable *Dest)
398 : InstHighLevel(Func, Phi, MaxSrcs, Dest) {
462 Inst *InstPhi::lower(Cfg *Func) {
465 Variable *NewSrc = Func->makeVariable(Dest->getType());
467 NewSrc->setName(Func, Dest->getName() + "_phi");
469 NewSrc64On32->initHiLo(Func);
471 return InstAssign::create(Func, Dest, NewSrc);
474 InstRet::InstRet(Cfg *Func, Operand *RetValue)
475 : InstHighLevel(Func, Ret, RetValue ? 1 : 0, nullptr) {
480 InstSelect::InstSelect(Cfg *Func, Variable *Dest, Operand *Condition,
482 : InstHighLevel(Func, Inst::Select, 3, Dest) {
489 InstStore::InstStore(Cfg *Func, Operand *Data, Operand *Addr)
490 : InstHighLevel(Func, Inst::Store, 3, nullptr) {
506 InstSwitch::InstSwitch(Cfg *Func, SizeT NumCases, Operand *Source,
508 : InstHighLevel(Func, Inst::Switch, 1, nullptr), LabelDefault(LabelDefault),
511 Values = Func->allocateArrayOf<uint64_t>(NumCases);
512 Labels = Func->allocateArrayOf<CfgNode *>(NumCases);
559 InstUnreachable::InstUnreachable(Cfg *Func)
560 : InstHighLevel(Func, Inst::Unreachable, 0, nullptr) {}
562 InstBundleLock::InstBundleLock(Cfg *Func, InstBundleLock::Option BundleOption)
563 : InstHighLevel(Func, Inst::BundleLock, 0, nullptr),
566 InstBundleUnlock::InstBundleUnlock(Cfg *Func)
567 : InstHighLevel(Func, Inst::BundleUnlock, 0, nullptr) {}
569 InstFakeDef::InstFakeDef(Cfg *Func, Variable *Dest, Variable *Src)
570 : InstHighLevel(Func, Inst::FakeDef, Src ? 1 : 0, Dest) {
576 InstFakeUse::InstFakeUse(Cfg *Func, Variable *Src, uint32_t Weight)
577 : InstHighLevel(Func, Inst::FakeUse, Weight, nullptr) {
583 InstFakeKill::InstFakeKill(Cfg *Func, const Inst *Linked)
584 : InstHighLevel(Func, Inst::FakeKill, 0, nullptr), Linked(Linked) {}
586 InstShuffleVector::InstShuffleVector(Cfg *Func, Variable *Dest, Operand *Src0,
588 : InstHighLevel(Func, Inst::ShuffleVector, 2, Dest),
592 Indexes = Func->allocateArrayOf<ConstantInteger32 *>(NumIndexes);
596 GlobalString makeName(Cfg *Func, const SizeT Id) {
597 const auto FuncName = Func->getFunctionName();
598 auto *Ctx = Func->getContext();
607 InstJumpTable::InstJumpTable(Cfg *Func, SizeT NumTargets, CfgNode *Default)
608 : InstHighLevel(Func, Inst::JumpTable, 1, nullptr),
609 Id(Func->getTarget()->makeNextJumpTableNumber()), NumTargets(NumTargets),
610 Name(makeName(Func, Id)), FuncName(Func->getFunctionName()) {
611 Targets = Func->allocateArrayOf<CfgNode *>(NumTargets);
645 void Inst::dumpDecorated(const Cfg *Func) const {
648 Ostream &Str = Func->getContext()->getStrDump();
649 if (!Func->isVerbose(IceV_Deleted) && (isDeleted() || isRedundantAssign()))
651 if (Func->isVerbose(IceV_InstNumbers)) {
661 dump(Func);
662 dumpExtras(Func);
666 void Inst::dump(const Cfg *Func) const {
669 Ostream &Str = Func->getContext()->getStrDump();
670 dumpDest(Func);
672 dumpSources(Func);
675 void Inst::dumpExtras(const Cfg *Func) const {
678 Ostream &Str = Func->getContext()->getStrDump();
682 if (Func->isVerbose(IceV_Liveness)) {
689 Var->dump(Func);
698 void Inst::dumpSources(const Cfg *Func) const {
701 Ostream &Str = Func->getContext()->getStrDump();
705 getSrc(I)->dump(Func);
709 void Inst::emitSources(const Cfg *Func) const {
712 Ostream &Str = Func->getContext()->getStrEmit();
716 getSrc(I)->emit(Func);
720 void Inst::dumpDest(const Cfg *Func) const {
724 getDest()->dump(Func);
727 void InstAlloca::dump(const Cfg *Func) const {
730 Ostream &Str = Func->getContext()->getStrDump();
731 dumpDest(Func);
733 getSizeInBytes()->dump(Func);
738 void InstArithmetic::dump(const Cfg *Func) const {
741 Ostream &Str = Func->getContext()->getStrDump();
742 dumpDest(Func);
744 dumpSources(Func);
747 void InstAssign::dump(const Cfg *Func) const {
750 Ostream &Str = Func->getContext()->getStrDump();
751 dumpDest(Func);
753 dumpSources(Func);
756 void InstBr::dump(const Cfg *Func) const {
759 Ostream &Str = Func->getContext()->getStrDump();
760 dumpDest(Func);
764 getCondition()->dump(Func);
770 void InstCall::dump(const Cfg *Func) const {
773 Ostream &Str = Func->getContext()->getStrDump();
775 dumpDest(Func);
784 getCallTarget()->dump(Func);
790 getArg(I)->dump(Func);
802 void InstCast::dump(const Cfg *Func) const {
805 Ostream &Str = Func->getContext()->getStrDump();
806 dumpDest(Func);
809 dumpSources(Func);
813 void InstIcmp::dump(const Cfg *Func) const {
816 Ostream &Str = Func->getContext()->getStrDump();
817 dumpDest(Func);
820 dumpSources(Func);
823 void InstExtractElement::dump(const Cfg *Func) const {
826 Ostream &Str = Func->getContext()->getStrDump();
827 dumpDest(Func);
830 getSrc(0)->dump(Func);
833 getSrc(1)->dump(Func);
836 void InstInsertElement::dump(const Cfg *Func) const {
839 Ostream &Str = Func->getContext()->getStrDump();
840 dumpDest(Func);
843 getSrc(0)->dump(Func);
846 getSrc(1)->dump(Func);
849 getSrc(2)->dump(Func);
852 void InstFcmp::dump(const Cfg *Func) const {
855 Ostream &Str = Func->getContext()->getStrDump();
856 dumpDest(Func);
859 dumpSources(Func);
862 void InstLoad::dump(const Cfg *Func) const {
865 Ostream &Str = Func->getContext()->getStrDump();
866 dumpDest(Func);
869 dumpSources(Func);
873 void InstStore::dump(const Cfg *Func) const {
876 Ostream &Str = Func->getContext()->getStrDump();
878 dumpDest(Func);
882 getData()->dump(Func);
884 getAddr()->dump(Func);
888 getRmwBeacon()->dump(Func);
892 void InstSwitch::dump(const Cfg *Func) const {
895 Ostream &Str = Func->getContext()->getStrDump();
898 getSrc(0)->dump(Func);
907 void InstPhi::dump(const Cfg *Func) const {
910 Ostream &Str = Func->getContext()->getStrDump();
911 dumpDest(Func);
917 getSrc(I)->dump(Func);
922 void InstRet::dump(const Cfg *Func) const {
925 Ostream &Str = Func->getContext()->getStrDump();
930 dumpSources(Func);
934 void InstSelect::dump(const Cfg *Func) const {
937 Ostream &Str = Func->getContext()->getStrDump();
938 dumpDest(Func);
943 Condition->dump(Func);
945 TrueOp->dump(Func);
947 FalseOp->dump(Func);
950 void InstUnreachable::dump(const Cfg *Func) const {
953 Ostream &Str = Func->getContext()->getStrDump();
957 void InstBundleLock::emit(const Cfg *Func) const {
960 Ostream &Str = Func->getContext()->getStrEmit();
977 void InstBundleLock::dump(const Cfg *Func) const {
980 Ostream &Str = Func->getContext()->getStrDump();
994 void InstBundleUnlock::emit(const Cfg *Func) const {
997 Ostream &Str = Func->getContext()->getStrEmit();
1002 void InstBundleUnlock::dump(const Cfg *Func) const {
1005 Ostream &Str = Func->getContext()->getStrDump();
1009 void InstFakeDef::emit(const Cfg *Func) const {
1013 Ostream &Str = Func->getContext()->getStrEmit();
1015 getDest()->emit(Func);
1019 emitSources(Func);
1023 void InstFakeDef::dump(const Cfg *Func) const {
1026 Ostream &Str = Func->getContext()->getStrDump();
1027 dumpDest(Func);
1029 dumpSources(Func);
1032 void InstFakeUse::emit(const Cfg *Func) const { (void)Func; }
1034 void InstFakeUse::dump(const Cfg *Func) const {
1037 Ostream &Str = Func->getContext()->getStrDump();
1039 dumpSources(Func);
1042 void InstFakeKill::emit(const Cfg *Func) const { (void)Func; }
1044 void InstFakeKill::dump(const Cfg *Func) const {
1047 Ostream &Str = Func->getContext()->getStrDump();
1053 void InstShuffleVector::dump(const Cfg *Func) const {
1056 Ostream &Str = Func->getContext()->getStrDump();
1058 dumpDest(Func);
1060 dumpSources(Func);
1063 Indexes[I]->dump(Func);
1068 void InstJumpTable::dump(const Cfg *Func) const {
1071 Ostream &Str = Func->getContext()->getStrDump();
1078 void InstTarget::dump(const Cfg *Func) const {
1081 Ostream &Str = Func->getContext()->getStrDump();
1083 Inst::dump(Func);
1086 InstBreakpoint::InstBreakpoint(Cfg *Func)
1087 : InstHighLevel(Func, Inst::Breakpoint, 0, nullptr) {}