You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
667 B
C++
32 lines
667 B
C++
namespace llvm
|
|
{
|
|
class LLVMContext;
|
|
class Pass;
|
|
class PointerType;
|
|
class IntegerType;
|
|
class CallInst;
|
|
}
|
|
|
|
using namespace llvm;
|
|
|
|
namespace GNUstep
|
|
{
|
|
class IMPCacher
|
|
{
|
|
private:
|
|
LLVMContext &Context;
|
|
Pass *Owner;
|
|
const PointerType *PtrTy;
|
|
const PointerType *IdTy;
|
|
const IntegerType *IntTy;
|
|
public:
|
|
IMPCacher(LLVMContext &C, Pass *owner) : Context(C), Owner(owner) {
|
|
PtrTy = Type::getInt8PtrTy(Context);
|
|
// FIXME: 64-bit.
|
|
IntTy = Type::getInt32Ty(Context);
|
|
IdTy = PointerType::getUnqual(PtrTy);
|
|
}
|
|
void CacheLookup(CallInst *lookup, Value *slot, Value *version);
|
|
};
|
|
}
|