mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-11-04 05:17:07 +00:00 
			
		
		
		
	getMDKindID/getMDKindNames methods to LLVMContext (and add convenience methods to Module), eliminating MetadataContext. Move the state that it maintains out to LLVMContext. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92259 91177308-0d34-0410-b5e6-96231b3b80d8
		
			
				
	
	
		
			45 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
//===-- LLVMContext.cpp - Implement LLVMContext -----------------------===//
 | 
						|
//
 | 
						|
//                     The LLVM Compiler Infrastructure
 | 
						|
//
 | 
						|
// This file is distributed under the University of Illinois Open Source
 | 
						|
// License. See LICENSE.TXT for details.
 | 
						|
//
 | 
						|
//===----------------------------------------------------------------------===//
 | 
						|
//
 | 
						|
//  This file implements LLVMContext, as a wrapper around the opaque
 | 
						|
//  class LLVMContextImpl.
 | 
						|
//
 | 
						|
//===----------------------------------------------------------------------===//
 | 
						|
 | 
						|
#include "llvm/LLVMContext.h"
 | 
						|
#include "llvm/Metadata.h"
 | 
						|
#include "llvm/Constants.h"
 | 
						|
#include "llvm/Instruction.h"
 | 
						|
#include "llvm/Support/ManagedStatic.h"
 | 
						|
#include "LLVMContextImpl.h"
 | 
						|
using namespace llvm;
 | 
						|
 | 
						|
static ManagedStatic<LLVMContext> GlobalContext;
 | 
						|
 | 
						|
LLVMContext& llvm::getGlobalContext() {
 | 
						|
  return *GlobalContext;
 | 
						|
}
 | 
						|
 | 
						|
LLVMContext::LLVMContext() : pImpl(new LLVMContextImpl(*this)) { }
 | 
						|
LLVMContext::~LLVMContext() { delete pImpl; }
 | 
						|
 | 
						|
GetElementPtrConstantExpr::GetElementPtrConstantExpr
 | 
						|
  (Constant *C,
 | 
						|
   const std::vector<Constant*> &IdxList,
 | 
						|
   const Type *DestTy)
 | 
						|
    : ConstantExpr(DestTy, Instruction::GetElementPtr,
 | 
						|
                   OperandTraits<GetElementPtrConstantExpr>::op_end(this)
 | 
						|
                   - (IdxList.size()+1),
 | 
						|
                   IdxList.size()+1) {
 | 
						|
  OperandList[0] = C;
 | 
						|
  for (unsigned i = 0, E = IdxList.size(); i != E; ++i)
 | 
						|
    OperandList[i+1] = IdxList[i];
 | 
						|
}
 | 
						|
 |