Home | History | Annotate | Download | only in src

Lines Matching refs:Func

86   void renumber(Cfg *Func);
161 void livenessLightweight(Cfg *Func, LivenessBV &Live);
179 // resize(size_t, const Ice::Inst &). virtual void emit(const Cfg *Func)
180 // const = 0; virtual void emitIAS(const Cfg *Func) const = 0;
184 virtual void emitIAS(const Cfg *Func) const { emit(Func); }
185 virtual void dump(const Cfg *Func) const;
186 virtual void dumpExtras(const Cfg *Func) const;
187 void dumpDecorated(const Cfg *Func) const;
188 void emitSources(const Cfg *Func) const;
189 void dumpSources(const Cfg *Func) const;
190 void dumpDest(const Cfg *Func) const;
203 Inst(Cfg *Func, InstKind Kind, SizeT MaxSrcs, Variable *Dest);
263 InstHighLevel(Cfg *Func, InstKind Kind, SizeT MaxSrcs, Variable *Dest)
264 : Inst(Func, Kind, MaxSrcs, Dest) {}
265 void emit(const Cfg * /*Func*/) const override {
268 void emitIAS(const Cfg * /*Func*/) const override {
282 static InstAlloca *create(Cfg *Func, Variable *Dest, Operand *ByteCount,
284 return new (Func->allocate<InstAlloca>())
285 InstAlloca(Func, Dest, ByteCount, AlignInBytes);
292 void dump(const Cfg *Func) const override;
296 InstAlloca(Cfg *Func, Variable *Dest, Operand *ByteCount,
318 static InstArithmetic *create(Cfg *Func, OpKind Op, Variable *Dest,
320 return new (Func->allocate<InstArithmetic>())
321 InstArithmetic(Func, Op, Dest, Source1, Source2);
330 void dump(const Cfg *Func) const override;
336 InstArithmetic(Cfg *Func, OpKind Op, Variable *Dest, Operand *Source1,
353 static InstAssign *create(Cfg *Func, Variable *Dest, Operand *Source) {
354 return new (Func->allocate<InstAssign>()) InstAssign(Func, Dest, Source);
358 void dump(const Cfg *Func) const override;
362 InstAssign(Cfg *Func, Variable *Dest, Operand *Source);
375 static InstBr *create(Cfg *Func, Operand *Source, CfgNode *TargetTrue,
377 return new (Func->allocate<InstBr>())
378 InstBr(Func, Source, TargetTrue, TargetFalse);
381 static InstBr *create(Cfg *Func, CfgNode *Target) {
382 return new (Func->allocate<InstBr>()) InstBr(Func, Target);
399 void dump(const Cfg *Func) const override;
404 InstBr(Cfg *Func, Operand *Source, CfgNode *TargetTrue, CfgNode *TargetFalse);
406 InstBr(Cfg *Func, CfgNode *Target);
420 static InstCall *create(Cfg *Func
428 return new (Func->allocate<InstCall>())
429 InstCall(Func, NumArgs, Dest, CallTarget, HasTailCall,
439 void dump(const Cfg *Func) const override;
444 InstCall(Cfg *Func, SizeT NumArgs, Variable *Dest, Operand *CallTarget,
447 : InstHighLevel(Func, Kind, NumArgs + 1, Dest), HasTailCall(HasTailCall),
474 static InstCast *create(Cfg *Func, OpKind CastKind, Variable *Dest,
476 return new (Func->allocate<InstCast>())
477 InstCast(Func, CastKind, Dest, Source);
481 void dump(const Cfg *Func) const override;
485 InstCast(Cfg *Func, OpKind CastKind, Variable *Dest, Operand *Source);
497 static InstExtractElement *create(Cfg *Func, Variable *Dest, Operand *Source1,
499 return new (Func->allocate<InstExtractElement>())
500 InstExtractElement(Func, Dest, Source1, Source2);
504 void dump(const Cfg *Func) const override;
510 InstExtractElement(Cfg *Func, Variable *Dest, Operand *Source1,
529 static InstFcmp *create(Cfg *Func, FCond Condition, Variable *Dest,
531 return new (Func->allocate<InstFcmp>())
532 InstFcmp(Func, Condition, Dest, Source1, Source2);
536 void dump(const Cfg *Func) const override;
540 InstFcmp(Cfg *Func, FCond Condition, Variable *Dest, Operand *Source1,
561 static InstIcmp *create(Cfg *Func, ICond Condition, Variable *Dest,
563 return new (Func->allocate<InstIcmp>())
564 InstIcmp(Func, Condition, Dest, Source1, Source2);
569 void dump(const Cfg *Func) const override;
573 InstIcmp(Cfg *Func, ICond Condition, Variable *Dest, Operand *Source1,
586 static InstInsertElement *create(Cfg *Func, Variable *Dest, Operand *Source1,
588 return new (Func->allocate<InstInsertElement>())
589 InstInsertElement(Func, Dest, Source1, Source2, Source3);
593 void dump(const Cfg *Func) const override;
599 InstInsertElement(Cfg *Func, Variable *Dest, Operand *Source1,
611 static InstIntrinsicCall *create(Cfg *Func, SizeT NumArgs, Variable *Dest,
614 return new (Func->allocate<InstIntrinsicCall>())
615 InstIntrinsicCall(Func, NumArgs, Dest, CallTarget, Info);
627 InstIntrinsicCall(Cfg *Func, SizeT NumArgs, Variable *Dest,
629 : InstCall(Func, NumArgs, Dest, CallTarget, false, false,
643 static InstLoad *create(Cfg *Func, Variable *Dest, Operand *SourceAddr,
647 return new (Func->allocate<InstLoad>()) InstLoad(Func, Dest, SourceAddr);
651 void dump(const Cfg *Func) const override;
655 InstLoad(Cfg *Func, Variable *Dest, Operand *SourceAddr);
666 static InstPhi *create(Cfg *Func, SizeT MaxSrcs, Variable *Dest) {
667 return new (Func->allocate<InstPhi>()) InstPhi(Func, MaxSrcs, Dest);
676 Inst *lower(Cfg *Func);
678 void dump(const Cfg *Func) const override;
682 InstPhi(Cfg *Func, SizeT MaxSrcs, Variable *Dest);
683 void destroy(Cfg *Func) override { Inst::destroy(Func); }
700 static InstRet *create(Cfg *Func, Operand *RetValue = nullptr) {
701 return new (Func->allocate<InstRet>()) InstRet(Func, RetValue);
710 void dump(const Cfg *Func) const override;
714 InstRet(Cfg *Func, Operand *RetValue);
724 static InstSelect *create(Cfg *Func, Variable *Dest, Operand *Condition,
726 return new (Func->allocate<InstSelect>())
727 InstSelect(Func, Dest, Condition, SourceTrue, SourceFalse);
733 void dump(const Cfg *Func) const override;
737 InstSelect(Cfg *Func, Variable *Dest, Operand *Condition, Operand *Source1,
749 static InstStore *create(Cfg *Func, Operand *Data, Operand *Addr,
753 return new (Func->allocate<InstStore>()) InstStore(Func, Data, Addr);
760 void dump(const Cfg *Func) const override;
764 InstStore(Cfg *Func, Operand *Data, Operand *Addr);
774 static InstSwitch *create(Cfg *Func, SizeT NumCases, Operand *Source,
776 return new (Func->allocate<InstSwitch>())
777 InstSwitch(Func, NumCases, Source, LabelDefault);
794 void dump(const Cfg *Func) const override;
798 InstSwitch(Cfg *Func, SizeT NumCases, Operand *Source, CfgNode *LabelDefault);
799 void destroy(Cfg *Func) override {
800 Func->deallocateArrayOf<uint64_t>(Values);
801 Func->deallocateArrayOf<CfgNode *>(Labels);
802 Inst::destroy(Func);
818 static InstUnreachable *create(Cfg *Func) {
819 return new (Func->allocate<InstUnreachable>()) InstUnreachable(Func);
823 void dump(const Cfg *Func) const override;
829 explicit InstUnreachable(Cfg *Func);
841 static InstBundleLock *create(Cfg *Func, Option BundleOption) {
842 return new (Func->allocate<InstBundleLock>())
843 InstBundleLock(Func, BundleOption);
845 void emit(const Cfg *Func) const override;
846 void emitIAS(const Cfg * /* Func */) const override {}
848 void dump(const Cfg *Func) const override;
856 InstBundleLock(Cfg *Func, Option BundleOption);
866 static InstBundleUnlock *create(Cfg *Func) {
867 return new (Func->allocate<InstBundleUnlock>()) InstBundleUnlock(Func);
869 void emit(const Cfg *Func) const override;
870 void emitIAS(const Cfg * /* Func */) const override {}
872 void dump(const Cfg *Func) const override;
878 explicit InstBundleUnlock(Cfg *Func);
898 static InstFakeDef *create(Cfg *Func, Variable *Dest,
900 return new (Func->allocate<InstFakeDef>()) InstFakeDef(Func, Dest, Src);
902 void emit(const Cfg *Func) const override;
903 void emitIAS(const Cfg * /* Func */) const override {}
905 void dump(const Cfg *Func) const override;
909 InstFakeDef(Cfg *Func, Variable *Dest, Variable *Src);
925 static InstFakeUse *create(Cfg *Func, Variable *Src, uint32_t Weight = 1) {
926 return new (Func->allocate<InstFakeUse>()) InstFakeUse(Func, Src, Weight);
928 void emit(const Cfg *Func) const override;
929 void emitIAS(const Cfg * /* Func */) const override {}
931 void dump(const Cfg *Func) const override;
935 InstFakeUse(Cfg *Func, Variable *Src, uint32_t Weight);
953 static InstFakeKill *create(Cfg *Func, const Inst *Linked) {
954 return new (Func->allocate<InstFakeKill>()) InstFakeKill(Func, Linked);
957 void emit(const Cfg *Func) const override;
958 void emitIAS(const Cfg * /* Func */) const override {}
960 void dump(const Cfg *Func) const override;
966 InstFakeKill(Cfg *Func, const Inst *Linked);
982 static InstShuffleVector *create(Cfg *Func, Variable *Dest, Operand *Src0,
984 return new (Func->allocate<InstShuffleVector>())
985 InstShuffleVector(Func, Dest, Src0, Src1);
1032 void dump(const Cfg *Func) const override;
1038 InstShuffleVector(Cfg *Func, Variable *Dest, Operand *Src0, Operand *Src1);
1040 void destroy(Cfg *Func) override {
1041 Func->deallocateArrayOf<ConstantInteger32 *>(Indexes);
1042 Inst::destroy(Func);
1059 static InstJumpTable *create(Cfg *Func, SizeT NumTargets, CfgNode *Default) {
1060 return new (Func->allocate<InstJumpTable>())
1061 InstJumpTable(Func, NumTargets, Default);
1075 void dump(const Cfg *Func) const override;
1086 void emitIAS(const Cfg * /* Func */) const override {}
1098 InstJumpTable(Cfg *Func, SizeT NumTargets, CfgNode *Default);
1099 void destroy(Cfg *Func) override {
1100 Func->deallocateArrayOf<CfgNode *>(Targets);
1101 Inst::destroy(Func);
1122 explicit InstBreakpoint(Cfg *Func);
1126 static InstBreakpoint *create(Cfg *Func) {
1127 return new (Func->allocate<InstBreakpoint>()) InstBreakpoint(Func);
1147 void dump(const Cfg *Func) const override;
1151 InstTarget(Cfg *Func, InstKind Kind, SizeT MaxSrcs, Variable *Dest)
1152 : Inst(Func, Kind, MaxSrcs, Dest) {