A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://clang.llvm.org/doxygen/Program_8h_source.html below:

clang: lib/AST/ByteCode/Program.h Source File

13#ifndef LLVM_CLANG_AST_INTERP_PROGRAM_H 14#define LLVM_CLANG_AST_INTERP_PROGRAM_H 21#include "llvm/ADT/DenseMap.h" 22#include "llvm/ADT/PointerUnion.h" 23#include "llvm/ADT/StringRef.h" 24#include "llvm/Support/Allocator.h" 54 for

(

auto

RecordPair :

Records

) {

55 if

(

Record

*R = RecordPair.second)

75

assert(Idx < Globals.size());

76 return

Globals[Idx]->block();

97 template

<

typename

... Ts>

100 auto

*

Func

=

new Function

(*

this

, Def, std::forward<Ts>(Args)...);

101

Funcs.insert({Def, std::unique_ptr<Function>(

Func

)});

106 auto

*

Func

=

new Function

(*

this

, std::forward<Ts>(Args)...);

107

AnonFuncs.emplace_back(

Func

);

120 bool

IsConst =

false

,

bool

IsTemporary =

false

,

121 bool

IsMutable =

false

) {

122 return

allocateDescriptor(

D

,

Type

, MDSize, IsConst, IsTemporary, IsMutable);

128 bool

IsConst =

false

,

bool

IsTemporary =

false

,

129 bool

IsMutable =

false

,

136 P

.startDeclaration(VD);

146 if

(CurrentDeclaration == NoDeclaration)

147 return

std::optional<unsigned>{};

148 return

LastDeclaration;

156 bool

IsWeak,

const Expr

*

Init

=

nullptr

);

161

llvm::DenseMap<const FunctionDecl *, std::unique_ptr<Function>> Funcs;

163

std::vector<std::unique_ptr<Function>> AnonFuncs;

166

llvm::DenseMap<const FunctionDecl *, std::vector<unsigned>> Relocs;

169

std::vector<const void *> NativePointers;

171

llvm::DenseMap<const void *, unsigned> NativePointerIndices;

174 using

PoolAllocTy = llvm::BumpPtrAllocator;

182 template

<

typename

... Tys>

186 void

*

operator new

(

size_t

Meta, PoolAllocTy &

Alloc

,

size_t Data

) {

187 return Alloc

.Allocate(Meta +

Data

,

alignof

(

void

*));

191

std::byte *data() {

return

B.data(); }

193 Block

*block() {

return

&B; }

194 const Block

*block()

const

{

return

&B; }

202

PoolAllocTy Allocator;

205

std::vector<Global *> Globals;

207

llvm::DenseMap<const void *, unsigned> GlobalIndices;

210

llvm::DenseMap<const RecordDecl *, Record *>

Records

;

213

llvm::DenseMap<const void *, unsigned> DummyVariables;

216 template

<

typename

... Ts> Descriptor *allocateDescriptor(Ts &&...Args) {

217 return new

(Allocator) Descriptor(std::forward<Ts>(Args)...);

221 static constexpr unsigned

NoDeclaration = (

unsigned

)-1;

223 unsigned

LastDeclaration = 0;

225 unsigned

CurrentDeclaration = NoDeclaration;

228 void

startDeclaration(

const

ValueDecl *Decl) {

229

LastDeclaration += 1;

230

CurrentDeclaration = LastDeclaration;

234 void

endDeclaration() { CurrentDeclaration = NoDeclaration; }

239 void dump

(llvm::raw_ostream &OS)

const

;

llvm::MachO::Records Records

This represents one expression.

Represents a function declaration or definition.

FunctionDecl * getCanonicalDecl() override

Retrieves the "canonical" declaration of the given declaration.

A (possibly-)qualified type.

Represents a struct/union/class.

StringLiteral - This represents a string literal expression, e.g.

The base class of the type hierarchy.

Represent the declaration of a variable (in which case it is an lvalue) a function (in which case it ...

A memory block, either on the stack or in the heap.

bool isInitialized() const

Returns whether the data of this block has been initialized via invoking the Ctor func.

Holds all information required to evaluate constexpr code in a module.

A pointer to a memory block, live or dead.

Context to manage declaration lifetimes.

DeclScope(Program &P, const ValueDecl *VD)

The program contains and links the bytecode for all functions.

std::optional< unsigned > getOrCreateGlobal(const ValueDecl *VD, const Expr *Init=nullptr)

Returns or creates a global an creates an index to it.

Function * getFunction(const FunctionDecl *F)

Returns a function.

Block * getGlobal(unsigned Idx)

Returns the value of a global.

std::optional< unsigned > createGlobal(const ValueDecl *VD, const Expr *Init)

Creates a global and returns its index.

const void * getNativePointer(unsigned Idx)

Returns the value of a marshalled native pointer.

Descriptor * createDescriptor(const DeclTy &D, PrimType Type, Descriptor::MetadataSize MDSize=std::nullopt, bool IsConst=false, bool IsTemporary=false, bool IsMutable=false)

Creates a descriptor for a primitive type.

unsigned getOrCreateNativePointer(const void *Ptr)

Marshals a native pointer to an ID for embedding in bytecode.

Function * createFunction(const FunctionDecl *Def, Ts &&...Args)

Creates a new function from a code range.

Pointer getPtrGlobal(unsigned Idx) const

Returns a pointer to a global.

unsigned getOrCreateDummy(const DeclTy &D)

Returns or creates a dummy value for unknown declarations.

void dump() const

Dumps the disassembled bytecode to llvm::errs().

std::optional< unsigned > getCurrentDecl() const

Returns the current declaration ID.

unsigned createGlobalString(const StringLiteral *S, const Expr *Base=nullptr)

Emits a string literal among global data.

Function * createFunction(Ts &&...Args)

Creates an anonymous function.

Record * getOrCreateRecord(const RecordDecl *RD)

Returns a record or creates one if it does not exist.

Structure/Class descriptor.

PrimType

Enumeration of the primitive types of the VM.

bool Alloc(InterpState &S, CodePtr OpPC, const Descriptor *Desc)

llvm::PointerUnion< const Decl *, const Expr * > DeclTy

The JSON file list parser is used to communicate input to InstallAPI.

Describes a memory block created by an allocation site.

std::optional< unsigned > MetadataSize


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4