LLVM API Documentation
00001 //===- SkeletonJITInfo.h - Skeleton impl of JIT interface -------*- C++ -*-===// 00002 // 00003 // The LLVM Compiler Infrastructure 00004 // 00005 // This file was developed by the LLVM research group and is distributed under 00006 // the University of Illinois Open Source License. See LICENSE.TXT for details. 00007 // 00008 //===----------------------------------------------------------------------===// 00009 // 00010 // This file contains the skeleton implementation of the TargetJITInfo class. 00011 // 00012 //===----------------------------------------------------------------------===// 00013 00014 #ifndef SKELETONJITINFO_H 00015 #define SKELETONJITINFO_H 00016 00017 #include "llvm/Target/TargetJITInfo.h" 00018 00019 namespace llvm { 00020 class TargetMachine; 00021 class IntrinsicLowering; 00022 00023 class SkeletonJITInfo : public TargetJITInfo { 00024 TargetMachine &TM; 00025 public: 00026 SkeletonJITInfo(TargetMachine &tm) : TM(tm) {} 00027 00028 /// addPassesToJITCompile - Add passes to the specified pass manager to 00029 /// implement a fast dynamic compiler for this target. Return true if this 00030 /// is not supported for this target. 00031 /// 00032 virtual void addPassesToJITCompile(FunctionPassManager &PM); 00033 00034 /// replaceMachineCodeForFunction - Make it so that calling the function 00035 /// whose machine code is at OLD turns into a call to NEW, perhaps by 00036 /// overwriting OLD with a branch to NEW. This is used for self-modifying 00037 /// code. 00038 /// 00039 virtual void replaceMachineCodeForFunction(void *Old, void *New); 00040 }; 00041 } 00042 00043 #endif