class
Crystal::CodeGenVisitor::Phi
Included Modules
Defined in:
compiler/crystal/codegen/phi.crConstructors
- .new(codegen : CodeGenVisitor, node : ASTNode, needs_value : Bool)
- .new(codegen : CodeGenVisitor, node_type : Type | Nil, needs_value : Bool)
Class Method Summary
Instance Method Summary
- #add(value, type : Nil, last = false)
- #add(value, type : NoReturnType, last = false)
- #add(value, type : Type, last = false)
- #builder
- #close
- #exit_block : LLVM::BasicBlock
- #force_exit_block=(force_exit_block : Bool)
- #force_exit_block? : Bool
- #llvm_typer
- #unreachable
Instance methods inherited from module Crystal::LLVMBuilderHelper
and(*args, **options)and(*args, **options, &) and, bit_cast(*args, **options)
bit_cast(*args, **options, &) bit_cast, br(*args, **options)
br(*args, **options, &) br, call(func : LLVMTypedFunction, name : String = "")
call(func : LLVMTypedFunction, arg : LLVM::Value, name : String = "")
call(func : LLVMTypedFunction, args : Array(LLVM::Value), name : String = "") call, cast_to(value : LLVM::ValueMethods, type : Type) cast_to, cast_to_pointer(value : LLVM::ValueMethods, type : Type) cast_to_pointer, cast_to_void_pointer(pointer : LLVM::ValueMethods) cast_to_void_pointer, cond(*args, **options)
cond(*args, **options, &) cond, equal?(value1, value2) equal?, extend_float(to_type, value) extend_float, extend_int(from_type, to_type, value) extend_int, extract_value(*args, **options)
extract_value(*args, **options, &) extract_value, float(value, type) float, float32(value) float32, float64(value) float64, float_to_int(from_type, to_type, value) float_to_int, gep(ptr : LLVM::Value, index0 : Int32, index1 : Int32, name = "")
gep(type : LLVM::Type, ptr : LLVM::Value, index0 : Int32, index1 : Int32, name = "")
gep(type : LLVM::Type, ptr : LLVM::Value, index0 : LLVM::Value, index1 : LLVM::Value, name = "")
gep(ptr : LLVM::Value, index0 : Int32, name = "")
gep(ptr : LLVM::Value, index0 : LLVM::Value, index1 : LLVM::Value, name = "")
gep(ptr : LLVM::Value, index0 : LLVM::Value, name = "")
gep(type : LLVM::Type, ptr : LLVM::Value, index0 : Int32, name = "")
gep(type : LLVM::Type, ptr : LLVM::Value, index0 : LLVM::Value, name = "") gep, insert_block(*args, **options)
insert_block(*args, **options, &) insert_block, int(n, type)
int(n) int, int1(n) int1, int128(n) int128, int16(n) int16, int2ptr(*args, **options)
int2ptr(*args, **options, &) int2ptr, int32(n) int32, int64(n) int64, int8(n) int8, int_to_float(from_type, to_type, value) int_to_float, invoke(func : LLVMTypedFunction, args : Array(LLVM::Value), a_then, a_catch, name : String = "") invoke, llvm_alignment(type) llvm_alignment, llvm_arg_type(*args, **options)
llvm_arg_type(*args, **options, &) llvm_arg_type, llvm_c_return_type(*args, **options)
llvm_c_return_type(*args, **options, &) llvm_c_return_type, llvm_c_type(*args, **options)
llvm_c_type(*args, **options, &) llvm_c_type, llvm_closure_type(type) llvm_closure_type, llvm_embedded_c_type(*args, **options)
llvm_embedded_c_type(*args, **options, &) llvm_embedded_c_type, llvm_embedded_type(*args, **options)
llvm_embedded_type(*args, **options, &) llvm_embedded_type, llvm_false llvm_false, llvm_intrinsic_return_type(*args, **options)
llvm_intrinsic_return_type(*args, **options, &) llvm_intrinsic_return_type, llvm_nil llvm_nil, llvm_proc_type(type) llvm_proc_type, llvm_return_type(*args, **options)
llvm_return_type(*args, **options, &) llvm_return_type, llvm_size(type) llvm_size, llvm_struct_alignment(type) llvm_struct_alignment, llvm_struct_size(type) llvm_struct_size, llvm_struct_type(*args, **options)
llvm_struct_type(*args, **options, &) llvm_struct_type, llvm_true llvm_true, llvm_type(*args, **options)
llvm_type(*args, **options, &) llvm_type, load(*args, **options)
load(*args, **options, &) load, load_volatile(*args, **options)
load_volatile(*args, **options, &) load_volatile, not(*args, **options)
not(*args, **options, &) not, not_equal?(value1, value2) not_equal?, not_null_pointer?(value) not_null_pointer?, null_pointer?(value) null_pointer?, or(*args, **options)
or(*args, **options, &) or, phi(*args, **options)
phi(*args, **options, &) phi, position_at_end(*args, **options)
position_at_end(*args, **options, &) position_at_end, ptr2int(*args, **options)
ptr2int(*args, **options, &) ptr2int, ret(value : Nil)
ret(value)
ret ret, size_t(value : LLVM::Value)
size_t(n)
size_t size_t, store(*args, **options)
store(*args, **options, &) store, store_volatile(*args, **options)
store_volatile(*args, **options, &) store_volatile, switch(*args, **options)
switch(*args, **options, &) switch, trunc(*args, **options)
trunc(*args, **options, &) trunc, trunc_float(to_type, value) trunc_float
Macros inherited from module Crystal::LLVMBuilderHelper
pointer_cast(value, type)
pointer_cast
Instance methods inherited from class Reference
==(other : self)==(other : JSON::Any)
==(other : YAML::Any)
==(other) ==, dup dup, hash(hasher) hash, initialize initialize, inspect(io : IO) : Nil inspect, object_id : UInt64 object_id, pretty_print(pp) : Nil pretty_print, same?(other : Reference) : Bool
same?(other : Nil) same?, to_s(io : IO) : Nil to_s
Constructor methods inherited from class Reference
new
new,
unsafe_construct(address : Pointer, *args, **opts) : self
unsafe_construct
Class methods inherited from class Reference
pre_initialize(address : Pointer)
pre_initialize
Instance methods inherited from class Object
! : Bool
!,
!=(other)
!=,
!~(other)
!~,
==(other)
==,
===(other : JSON::Any)===(other : YAML::Any)
===(other) ===, =~(other) =~, as(type : Class) as, as?(type : Class) as?, class class, dup dup, hash(hasher)
hash hash, in?(collection : Object) : Bool
in?(*values : Object) : Bool in?, inspect(io : IO) : Nil
inspect : String inspect, is_a?(type : Class) : Bool is_a?, itself itself, nil? : Bool nil?, not_nil!(message)
not_nil! not_nil!, pretty_inspect(width = 79, newline = "\n", indent = 0) : String pretty_inspect, pretty_print(pp : PrettyPrint) : Nil pretty_print, responds_to?(name : Symbol) : Bool responds_to?, tap(&) tap, to_json(io : IO) : Nil
to_json : String to_json, to_pretty_json(indent : String = " ") : String
to_pretty_json(io : IO, indent : String = " ") : Nil to_pretty_json, to_s(io : IO) : Nil
to_s : String to_s, to_yaml(io : IO) : Nil
to_yaml : String to_yaml, try(&) try, unsafe_as(type : T.class) forall T unsafe_as
Class methods inherited from class Object
from_json(string_or_io : String | IO, root : String)from_json(string_or_io : String | IO) from_json, from_yaml(string_or_io : String | IO) from_yaml