diff options
Diffstat (limited to 'contrib/llvm/lib/Target/PIC16/PIC16Passes/PIC16Cloner.h')
-rw-r--r-- | contrib/llvm/lib/Target/PIC16/PIC16Passes/PIC16Cloner.h | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/contrib/llvm/lib/Target/PIC16/PIC16Passes/PIC16Cloner.h b/contrib/llvm/lib/Target/PIC16/PIC16Passes/PIC16Cloner.h deleted file mode 100644 index e7d67ce..0000000 --- a/contrib/llvm/lib/Target/PIC16/PIC16Passes/PIC16Cloner.h +++ /dev/null @@ -1,83 +0,0 @@ -//===-- PIC16Cloner.h - PIC16 LLVM Cloner for shared functions --*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// This file contains declaration of a cloner class clone all functions that -// are shared between the main line code (ML) and interrupt line code (IL). -// -//===----------------------------------------------------------------------===// - -#ifndef PIC16CLONER_H -#define PIC16CLONER_H - -#include "llvm/ADT/ValueMap.h" - -using namespace llvm; -using std::vector; -using std::string; -using std::map; - -namespace llvm { - // forward classes. - class Value; - class Function; - class Module; - class ModulePass; - class CallGraph; - class CallGraphNode; - class AnalysisUsage; - - class PIC16Cloner : public ModulePass { - public: - static char ID; // Class identification - PIC16Cloner() : ModulePass(ID) {} - - virtual void getAnalysisUsage(AnalysisUsage &AU) const { - AU.addRequired<CallGraph>(); - } - virtual bool runOnModule(Module &M); - - private: // Functions - // Mark reachable functions for the MainLine or InterruptLine. - void markCallGraph(CallGraphNode *CGN, string StringMark); - - // Clone auto variables of function specified. - void CloneAutos(Function *F); - - // Clone the body of a function. - Function *cloneFunction(Function *F); - - // Clone all shared functions. - void cloneSharedFunctions(CallGraphNode *isrCGN); - - // Remap all call sites to the shared function. - void remapAllSites(Function *Caller, Function *OrgF, Function *Clone); - - // Error reporting for PIC16Pass - void reportError(string ErrorString, vector<string> &Values); - void reportError(string ErrorString); - - private: //data - // Records if the interrupt function has already been found. - // If more than one interrupt function is found then an error - // should be thrown. - bool foundISR; - - // This ValueMap maps the auto variables of the original functions with - // the corresponding cloned auto variable of the cloned function. - // This value map is passed during the function cloning so that all the - // uses of auto variables be updated properly. - ValueMap<const Value*, Value*> VMap; - - // Map of a already cloned functions. - map<Function *, Function *> ClonedFunctionMap; - typedef map<Function *, Function *>::iterator cloned_map_iterator; - }; -} // End of anonymous namespace - -#endif |