Delete uncalled flow-graph-related methods.

This commit is contained in:
Eugene Rozenfeld 2015-02-17 17:38:29 -08:00
Родитель 03b1c07e25
Коммит 643b68eba0
5 изменённых файлов: 6 добавлений и 45 удалений

Просмотреть файл

@ -539,14 +539,10 @@ IRNode *fgNodeGetStartIRNode(FlowGraphNode *FgNode);
// Get the first non-placekeeping node in block // Get the first non-placekeeping node in block
IRNode *fgNodeGetStartInsertIRNode(FlowGraphNode *FgNode); IRNode *fgNodeGetStartInsertIRNode(FlowGraphNode *FgNode);
// Get the special block-end placekeeping node
IRNode *fgNodeGetEndIRNode(FlowGraphNode *FgNode);
// Get the last non-placekeeping node in block // Get the last non-placekeeping node in block
IRNode *fgNodeGetEndInsertIRNode(FlowGraphNode *FgNode); IRNode *fgNodeGetEndInsertIRNode(FlowGraphNode *FgNode);
IRNode *fgNodeGetEndIRInsertionPoint(FlowGraphNode *FgNode); IRNode *fgNodeGetEndIRInsertionPoint(FlowGraphNode *FgNode);
void fgNodeSetIBCNotReal(FlowGraphNode *Fg);
GlobalVerifyData *fgNodeGetGlobalVerifyData(FlowGraphNode *Fg); GlobalVerifyData *fgNodeGetGlobalVerifyData(FlowGraphNode *Fg);
void fgNodeSetGlobalVerifyData(FlowGraphNode *Fg, GlobalVerifyData *GvData); void fgNodeSetGlobalVerifyData(FlowGraphNode *Fg, GlobalVerifyData *GvData);
@ -558,9 +554,9 @@ FlowGraphEdgeList *fgEdgeListGetNextPredecessor(FlowGraphEdgeList *FgEdge);
FlowGraphNode *fgEdgeListGetSource(FlowGraphEdgeList *FgEdge); FlowGraphNode *fgEdgeListGetSource(FlowGraphEdgeList *FgEdge);
FlowGraphNode *fgEdgeListGetSink(FlowGraphEdgeList *FgEdge); FlowGraphNode *fgEdgeListGetSink(FlowGraphEdgeList *FgEdge);
bool fgEdgeListIsNominal(FlowGraphEdgeList *FgEdge); bool fgEdgeListIsNominal(FlowGraphEdgeList *FgEdge);
bool fgEdgeListIsHandler(FlowGraphEdgeList *FgEdge); #ifdef CC_PEVERIFY
bool fgEdgeListIsFake(FlowGraphEdgeList *FgEdge);
void fgEdgeListMakeFake(FlowGraphEdgeList *FgEdge); void fgEdgeListMakeFake(FlowGraphEdgeList *FgEdge);
#endif
FlowGraphEdgeList *fgEdgeListGetNextSuccessorActual(FlowGraphEdgeList *FgEdge); FlowGraphEdgeList *fgEdgeListGetNextSuccessorActual(FlowGraphEdgeList *FgEdge);
FlowGraphEdgeList * FlowGraphEdgeList *
@ -1812,7 +1808,6 @@ public:
virtual void fgPostPhase(void) = 0; virtual void fgPostPhase(void) = 0;
virtual FlowGraphNode *fgGetHeadBlock(void) = 0; virtual FlowGraphNode *fgGetHeadBlock(void) = 0;
virtual FlowGraphNode *fgGetTailBlock(void) = 0; virtual FlowGraphNode *fgGetTailBlock(void) = 0;
virtual uint32_t fgGetBlockCount(void) = 0;
virtual FlowGraphNode *fgNodeGetIDom(FlowGraphNode *Fg) = 0; virtual FlowGraphNode *fgNodeGetIDom(FlowGraphNode *Fg) = 0;
virtual IRNode *fgNodeFindStartLabel(FlowGraphNode *Block) = 0; virtual IRNode *fgNodeFindStartLabel(FlowGraphNode *Block) = 0;
@ -1827,7 +1822,6 @@ public:
virtual void fgAddArc(IRNode *BranchNode, FlowGraphNode *Source, virtual void fgAddArc(IRNode *BranchNode, FlowGraphNode *Source,
FlowGraphNode *Sink) = 0; FlowGraphNode *Sink) = 0;
virtual bool fgBlockHasFallThrough(FlowGraphNode *Block) = 0; virtual bool fgBlockHasFallThrough(FlowGraphNode *Block) = 0;
virtual bool fgBlockIsRegionEnd(FlowGraphNode *Block) = 0;
virtual void fgDeleteBlock(FlowGraphNode *Block) = 0; virtual void fgDeleteBlock(FlowGraphNode *Block) = 0;
virtual void fgDeleteEdge(FlowGraphEdgeList *Arc) = 0; virtual void fgDeleteEdge(FlowGraphEdgeList *Arc) = 0;
virtual void fgDeleteNodesFromBlock(FlowGraphNode *Block) = 0; virtual void fgDeleteNodesFromBlock(FlowGraphNode *Block) = 0;
@ -1862,7 +1856,6 @@ public:
virtual IRNode *fgMakeSwitch(IRNode *DefaultLabel, IRNode *Node) = 0; virtual IRNode *fgMakeSwitch(IRNode *DefaultLabel, IRNode *Node) = 0;
virtual IRNode *fgMakeThrow(IRNode *Node) = 0; virtual IRNode *fgMakeThrow(IRNode *Node) = 0;
virtual IRNode *fgMakeRethrow(IRNode *Node) = 0;
virtual IRNode *fgAddCaseToCaseList(IRNode *SwitchNode, IRNode *LabelNode, virtual IRNode *fgAddCaseToCaseList(IRNode *SwitchNode, IRNode *LabelNode,
uint32_t Element) = 0; uint32_t Element) = 0;
virtual void insertEHAnnotationNode(IRNode *InsertionPointNode, virtual void insertEHAnnotationNode(IRNode *InsertionPointNode,
@ -1883,9 +1876,6 @@ public:
bool CanInline, bool IsTailCall, bool IsUnmarkedTailCall, bool CanInline, bool IsTailCall, bool IsUnmarkedTailCall,
bool IsReadOnly) = 0; bool IsReadOnly) = 0;
// Hook to permit client to record when calls feed branches
virtual void fgCmp(ReaderBaseNS::OPCODE) = 0;
// Replace all uses of oldNode in the IR with newNode and delete oldNode. // Replace all uses of oldNode in the IR with newNode and delete oldNode.
virtual void replaceFlowGraphNodeUses(FlowGraphNode *OldNode, virtual void replaceFlowGraphNodeUses(FlowGraphNode *OldNode,
FlowGraphNode *NewNode) = 0; FlowGraphNode *NewNode) = 0;

Просмотреть файл

@ -489,7 +489,6 @@ public:
void fgPostPhase(void) override; void fgPostPhase(void) override;
FlowGraphNode *fgGetHeadBlock(void) override; FlowGraphNode *fgGetHeadBlock(void) override;
FlowGraphNode *fgGetTailBlock(void) override; FlowGraphNode *fgGetTailBlock(void) override;
unsigned fgGetBlockCount(void) override;
FlowGraphNode *fgNodeGetIDom(FlowGraphNode *Fg) override; FlowGraphNode *fgNodeGetIDom(FlowGraphNode *Fg) override;
IRNode *fgNodeFindStartLabel(FlowGraphNode *Block) override; IRNode *fgNodeFindStartLabel(FlowGraphNode *Block) override;
@ -512,9 +511,6 @@ public:
}; };
bool fgBlockHasFallThrough(FlowGraphNode *Block) override; bool fgBlockHasFallThrough(FlowGraphNode *Block) override;
bool fgBlockIsRegionEnd(FlowGraphNode *Block) override {
throw NotYetImplementedException("fgBlockIsRegionEnd");
};
void fgDeleteBlock(FlowGraphNode *Block) override; void fgDeleteBlock(FlowGraphNode *Block) override;
void fgDeleteEdge(FlowGraphEdgeList *Arc) override { void fgDeleteEdge(FlowGraphEdgeList *Arc) override {
throw NotYetImplementedException("fgDeleteEdge"); throw NotYetImplementedException("fgDeleteEdge");
@ -564,9 +560,6 @@ public:
throw NotYetImplementedException("fgMakeSwitch"); throw NotYetImplementedException("fgMakeSwitch");
}; };
IRNode *fgMakeThrow(IRNode *Insert) override; IRNode *fgMakeThrow(IRNode *Insert) override;
IRNode *fgMakeRethrow(IRNode *Insert) override {
throw NotYetImplementedException("fgMakeRethrow");
};
IRNode *fgAddCaseToCaseList(IRNode *SwitchNode, IRNode *LabelNode, IRNode *fgAddCaseToCaseList(IRNode *SwitchNode, IRNode *LabelNode,
unsigned Element) override { unsigned Element) override {
throw NotYetImplementedException("fgAddCaseToCaseList"); throw NotYetImplementedException("fgAddCaseToCaseList");
@ -601,11 +594,6 @@ public:
bool CanInline, bool IsTailCall, bool IsUnmarkedTailCall, bool CanInline, bool IsTailCall, bool IsUnmarkedTailCall,
bool IsReadOnly) override; bool IsReadOnly) override;
// Hook to permit client to record when calls feed branches
void fgCmp(ReaderBaseNS::OPCODE) override {
throw NotYetImplementedException("fgCmp");
};
// Replace all uses of oldNode in the IR with newNode and delete oldNode. // Replace all uses of oldNode in the IR with newNode and delete oldNode.
void replaceFlowGraphNodeUses(FlowGraphNode *OldNode, void replaceFlowGraphNodeUses(FlowGraphNode *OldNode,
FlowGraphNode *NewNode) override; FlowGraphNode *NewNode) override;

Просмотреть файл

@ -25,17 +25,8 @@ IRNode *fgNodeGetStartInsertIRNode(FlowGraphNode *FgNode) {
return fgNodeGetStartIRNode(FgNode); return fgNodeGetStartIRNode(FgNode);
} }
// Get the special block-end placekeeping node
IRNode *fgNodeGetEndIRNode(FlowGraphNode *FgNode) {
throw NotYetImplementedException("fFgNodeGetEndIRNode");
}
IRNode *fgNodeGetEndIRInsertionPoint(FlowGraphNode *FgNode) { return NULL; } IRNode *fgNodeGetEndIRInsertionPoint(FlowGraphNode *FgNode) { return NULL; }
void fgNodeSetIBCNotReal(FlowGraphNode *Fg) {
throw NotYetImplementedException("fgNodeSetIBCNotReal");
}
GlobalVerifyData *fgNodeGetGlobalVerifyData(FlowGraphNode *Fg) { GlobalVerifyData *fgNodeGetGlobalVerifyData(FlowGraphNode *Fg) {
throw NotYetImplementedException("fgNodeGetGlobalVerifyData"); throw NotYetImplementedException("fgNodeGetGlobalVerifyData");
} }
@ -48,17 +39,11 @@ uint32_t fgNodeGetBlockNum(FlowGraphNode *Fg) {
throw NotYetImplementedException("fgNodeGetBlockNum"); throw NotYetImplementedException("fgNodeGetBlockNum");
} }
bool fgEdgeListIsHandler(FlowGraphEdgeList *FgEdge) { #ifdef CC_PEVERIFY
throw NotYetImplementedException("fgEdgeListIsHandler");
}
bool fgEdgeListIsFake(FlowGraphEdgeList *FgEdge) {
throw NotYetImplementedException("fgEdgeListIsFake");
}
void fgEdgeListMakeFake(FlowGraphEdgeList *FgEdge) { void fgEdgeListMakeFake(FlowGraphEdgeList *FgEdge) {
throw NotYetImplementedException("fgEdgeListMakeFake"); throw NotYetImplementedException("fgEdgeListMakeFake");
} }
#endif
IRNode *irNodeGetNext(IRNode *Node) { IRNode *irNodeGetNext(IRNode *Node) {
throw NotYetImplementedException("irNodeGetNext"); throw NotYetImplementedException("irNodeGetNext");

Просмотреть файл

@ -3342,7 +3342,8 @@ void ReaderBase::fgBuildPhase1(FlowGraphNode *Block, uint8_t *ILInput,
// Make/insert end finally // Make/insert end finally
BlockNode = fgNodeGetStartIRNode(Block); BlockNode = fgNodeGetStartIRNode(Block);
BranchNode = fgMakeEndFinally(BlockNode, CurrentOffset, IsLexicalEnd); BranchNode = fgMakeEndFinallyHelper(BlockNode, CurrentOffset,
IsLexicalEnd);
// And split the block // And split the block
fgNodeSetEndMSILOffset(Block, NextOffset); fgNodeSetEndMSILOffset(Block, NextOffset);

Просмотреть файл

@ -1848,9 +1848,6 @@ IRNode *GenIR::fgNodeFindStartLabel(FlowGraphNode *Block) { return NULL; }
bool GenIR::fgBlockHasFallThrough(FlowGraphNode *Block) { return false; } bool GenIR::fgBlockHasFallThrough(FlowGraphNode *Block) { return false; }
unsigned GenIR::fgGetBlockCount() {
return Function->getBasicBlockList().size();
}
#pragma endregion #pragma endregion
#pragma region MSIL OPCODES #pragma region MSIL OPCODES