Project Alice
Loading...
Searching...
No Matches
fif::do_loop_scope Class Reference

#include <fif.hpp>

Inheritance diagram for fif::do_loop_scope:
Collaboration diagram for fif::do_loop_scope:

Public Member Functions

 do_loop_scope (opaque_compiler_data *p, environment &e, state_stack &entry_state)
 
virtual control_structure get_type () override
 
virtual state_stackworking_state () override
 
virtual void set_working_state (std::unique_ptr< state_stack > p) override
 
void at_until (environment &)
 
virtual bool finish (environment &) override
 
- Public Member Functions inherited from fif::locals_holder
 locals_holder (opaque_compiler_data *p, environment &env)
 
virtual var_dataget_var (std::string const &name) override
 
virtual var_datacreate_var (std::string const &name, int32_t type) override
 
virtual let_dataget_let (std::string const &name) override
 
virtual let_datacreate_let (std::string const &name, int32_t type, int64_t data, LLVMValueRef expression) override
 
void release_locals ()
 
- Public Member Functions inherited from fif::opaque_compiler_data
 opaque_compiler_data (opaque_compiler_data *parent)
 
virtual ~opaque_compiler_data ()=default
 
virtual control_structure get_type ()
 
virtual LLVMValueRef llvm_function ()
 
virtual LLVMBasicBlockRefllvm_block ()
 
virtual int32_t word_id ()
 
virtual int32_t instance_id ()
 
virtual std::vector< int32_t > * bytecode_compilation_progress ()
 
virtual ankerl::unordered_dense::map< uint64_t, typecheck_3_record > * typecheck_record ()
 
virtual state_stackworking_state ()
 
virtual void set_working_state (std::unique_ptr< state_stack > p)
 
virtual bool finish (environment &env)
 
virtual var_dataget_var (std::string const &name)
 
virtual let_dataget_let (std::string const &name)
 
virtual var_datacreate_var (std::string const &name, int32_t type)
 
virtual let_datacreate_let (std::string const &name, int32_t type, int64_t data, LLVMValueRef expression)
 
virtual std::vector< int32_t > * type_substitutions ()
 

Public Attributes

std::unique_ptr< state_stackinitial_state
 
std::unique_ptr< state_stackiworking_state
 
std::string_view entry_source
 
size_t loop_entry_point = 0
 
size_t end_of_loop_branch = 0
 
bool phi_pass = false
 
bool initial_typechecking_failed = false
 
LLVMBasicBlockRef pre_block = nullptr
 
LLVMBasicBlockRef body_block = nullptr
 
std::vector< LLVMValueRefphinodes
 
- Public Attributes inherited from fif::locals_holder
ankerl::unordered_dense::map< std::string, std::unique_ptr< var_data > > vars
 
ankerl::unordered_dense::map< std::string, std::unique_ptr< let_data > > lets
 
environmentenv
 
const bool llvm_mode
 

Additional Inherited Members

- Protected Attributes inherited from fif::opaque_compiler_data
opaque_compiler_dataparent = nullptr
 

Detailed Description

Definition at line 3929 of file fif.hpp.

Constructor & Destructor Documentation

◆ do_loop_scope()

fif::do_loop_scope::do_loop_scope ( opaque_compiler_data p,
environment e,
state_stack entry_state 
)
inline

Definition at line 3944 of file fif.hpp.

Here is the call graph for this function:

Member Function Documentation

◆ at_until()

void fif::do_loop_scope::at_until ( environment )
inline

Definition at line 3984 of file fif.hpp.

Here is the caller graph for this function:

◆ finish()

virtual bool fif::do_loop_scope::finish ( environment )
inlineoverridevirtual

Reimplemented from fif::opaque_compiler_data.

Definition at line 3987 of file fif.hpp.

Here is the call graph for this function:

◆ get_type()

virtual control_structure fif::do_loop_scope::get_type ( )
inlineoverridevirtual

Reimplemented from fif::opaque_compiler_data.

Definition at line 3975 of file fif.hpp.

◆ set_working_state()

virtual void fif::do_loop_scope::set_working_state ( std::unique_ptr< state_stack p)
inlineoverridevirtual

Reimplemented from fif::opaque_compiler_data.

Definition at line 3981 of file fif.hpp.

◆ working_state()

virtual state_stack * fif::do_loop_scope::working_state ( )
inlineoverridevirtual

Reimplemented from fif::opaque_compiler_data.

Definition at line 3978 of file fif.hpp.

Member Data Documentation

◆ body_block

LLVMBasicBlockRef fif::do_loop_scope::body_block = nullptr

Definition at line 3941 of file fif.hpp.

◆ end_of_loop_branch

size_t fif::do_loop_scope::end_of_loop_branch = 0

Definition at line 3936 of file fif.hpp.

◆ entry_source

std::string_view fif::do_loop_scope::entry_source

Definition at line 3934 of file fif.hpp.

◆ initial_state

std::unique_ptr<state_stack> fif::do_loop_scope::initial_state

Definition at line 3931 of file fif.hpp.

◆ initial_typechecking_failed

bool fif::do_loop_scope::initial_typechecking_failed = false

Definition at line 3938 of file fif.hpp.

◆ iworking_state

std::unique_ptr<state_stack> fif::do_loop_scope::iworking_state

Definition at line 3932 of file fif.hpp.

◆ loop_entry_point

size_t fif::do_loop_scope::loop_entry_point = 0

Definition at line 3935 of file fif.hpp.

◆ phi_pass

bool fif::do_loop_scope::phi_pass = false

Definition at line 3937 of file fif.hpp.

◆ phinodes

std::vector<LLVMValueRef> fif::do_loop_scope::phinodes

Definition at line 3942 of file fif.hpp.

◆ pre_block

LLVMBasicBlockRef fif::do_loop_scope::pre_block = nullptr

Definition at line 3940 of file fif.hpp.


The documentation for this class was generated from the following file: