mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 20:32:21 +00:00
give LLVMContext an inline asm diagnostic hook member.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100506 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
f778b57fc5
commit
42a4ee0a35
@ -50,6 +50,24 @@ public:
|
||||
/// custom metadata IDs registered in this LLVMContext. ID #0 is not used,
|
||||
/// so it is filled in as an empty string.
|
||||
void getMDKindNames(SmallVectorImpl<StringRef> &Result) const;
|
||||
|
||||
/// setInlineAsmDiagnosticHandler - This method sets a handler that is invoked
|
||||
/// when problems with inline asm are detected by the backend. The first
|
||||
/// argument is a function pointer (of type SourceMgr::DiagHandlerTy) and the
|
||||
/// second is a context pointer that gets passed into the DiagHandler.
|
||||
///
|
||||
/// LLVMContext doesn't take ownership or interpreter either of these
|
||||
/// pointers.
|
||||
void setInlineAsmDiagnosticHandler(void *DiagHandler, void *DiagContext = 0);
|
||||
|
||||
/// getInlineAsmDiagnosticHandler - Return the diagnostic handler set by
|
||||
/// setInlineAsmDiagnosticHandler.
|
||||
void *getInlineAsmDiagnosticHandler() const;
|
||||
|
||||
/// getInlineAsmDiagnosticContext - Return the diagnostic context set by
|
||||
/// setInlineAsmDiagnosticHandler.
|
||||
void *getInlineAsmDiagnosticContext() const;
|
||||
|
||||
};
|
||||
|
||||
/// getGlobalContext - Returns a global context. This is for LLVM clients that
|
||||
|
@ -33,6 +33,23 @@ LLVMContext::LLVMContext() : pImpl(new LLVMContextImpl(*this)) {
|
||||
}
|
||||
LLVMContext::~LLVMContext() { delete pImpl; }
|
||||
|
||||
void LLVMContext::setInlineAsmDiagnosticHandler(void *DiagHandler,
|
||||
void *DiagContext) {
|
||||
pImpl->InlineAsmDiagHandler = DiagHandler;
|
||||
pImpl->InlineAsmDiagContext = DiagContext;
|
||||
}
|
||||
|
||||
/// getInlineAsmDiagnosticHandler - Return the diagnostic handler set by
|
||||
/// setInlineAsmDiagnosticHandler.
|
||||
void *LLVMContext::getInlineAsmDiagnosticHandler() const {
|
||||
return pImpl->InlineAsmDiagHandler;
|
||||
}
|
||||
|
||||
/// getInlineAsmDiagnosticContext - Return the diagnostic context set by
|
||||
/// setInlineAsmDiagnosticHandler.
|
||||
void *LLVMContext::getInlineAsmDiagnosticContext() const {
|
||||
return pImpl->InlineAsmDiagContext;
|
||||
}
|
||||
|
||||
#ifndef NDEBUG
|
||||
/// isValidName - Return true if Name is a valid custom metadata handler name.
|
||||
@ -73,5 +90,3 @@ void LLVMContext::getMDKindNames(SmallVectorImpl<StringRef> &Names) const {
|
||||
// MD Handlers are numbered from 1.
|
||||
Names[I->second] = I->first();
|
||||
}
|
||||
|
||||
|
||||
|
@ -30,6 +30,9 @@ LLVMContextImpl::LLVMContextImpl(LLVMContext &C)
|
||||
Int32Ty(C, 32),
|
||||
Int64Ty(C, 64),
|
||||
AlwaysOpaqueTy(new OpaqueType(C)) {
|
||||
InlineAsmDiagHandler = 0;
|
||||
InlineAsmDiagContext = 0;
|
||||
|
||||
// Make sure the AlwaysOpaqueTy stays alive as long as the Context.
|
||||
AlwaysOpaqueTy->addRef();
|
||||
OpaqueTypes.insert(AlwaysOpaqueTy);
|
||||
|
@ -115,6 +115,8 @@ public:
|
||||
|
||||
class LLVMContextImpl {
|
||||
public:
|
||||
void *InlineAsmDiagHandler, *InlineAsmDiagContext;
|
||||
|
||||
typedef DenseMap<DenseMapAPIntKeyInfo::KeyTy, ConstantInt*,
|
||||
DenseMapAPIntKeyInfo> IntMapTy;
|
||||
IntMapTy IntConstants;
|
||||
|
Loading…
Reference in New Issue
Block a user