Class: Carbon::Tacky::Builder
- Inherits:
-
Object
- Object
- Carbon::Tacky::Builder
- Defined in:
- lib/carbon/tacky/builder.rb
Overview
A "builder." This is used in order to create an instruction set for a block. The builder defines a set of methods that create and append an instruction to the parent block. Each instruction gets its own instruction ID relative to the parent block.
Instance Method Summary collapse
-
#_call(inst, *parameters, name: "") ⇒ Tacky::Reference
private
Creates an instruction, and returns a reference to that instruction.
-
#add(left, right, name = "") ⇒ Tacky::Reference
Creates an
add
instruction. -
#aggregate_ret(*values) ⇒ Tacky::Reference
Creates a
ret
instruction. -
#alloca(type, name = "") ⇒ Tacky::Reference
Creates an
alloca
instruction. -
#and(left, right, name = "") ⇒ Tacky::Reference
Creates an
and
instruction. -
#array_alloca(type, size, name = "") ⇒ Tacky::Reference
Creates an
array_alloca
instruction. -
#ashr(left, right, name = "") ⇒ Tacky::Reference
Creates an
ashr
instruction. -
#bit_cast(value, type, name = "") ⇒ Tacky::Reference
Creates a
bitcast
instruction. -
#br(destination) ⇒ Tacky::Reference
Creates a
br
instruction. -
#call(function, *arguments) ⇒ Tacky::Reference
Creates a
call
instruction. -
#cond(iftrue, iffalse) ⇒ Tacky::Reference
Creates a
br
instruction. - #deref(type) ⇒ Object
-
#exact_sdiv(left, right, name = "") ⇒ Tacky::Reference
Creates an
sdiv
instruction. -
#extract_element(vector, index, name = "") ⇒ Tacky::Reference
Creates an
extract_element
instruction. -
#extract_value(aggregate, index, name = "") ⇒ Tacky::Reference
Creates an
extract_value
instruction. -
#fadd(left, right, name = "") ⇒ Tacky::Reference
Creates an
fadd
instruction. -
#fcmp(pred, left, right, name = "") ⇒ Tacky::Reference
Creates an
fcmp
instruction. -
#fdiv(left, right, name = "") ⇒ Tacky::Reference
Creates an
fdiv
instruction. -
#fmul(left, right, name = "") ⇒ Tacky::Reference
Creates an
fmul
instruction. -
#fp2si(value, type, name = "") ⇒ Tacky::Reference
Creates a
fptosi
instruction. -
#fp2ui(value, type, name = "") ⇒ Tacky::Reference
Creates a
fptoui
instruction. -
#fp_cast(value, type, name = "") ⇒ Tacky::Reference
Creates a
bitcast
instruction. -
#fp_ext(value, type, name = "") ⇒ Tacky::Reference
Creates a
fpext
instruction. -
#fp_trunc(value, type, name = "") ⇒ Tacky::Reference
Creates a
fptrunc
instruction. -
#free(pointer) ⇒ Tacky::Reference
Creates a
free
instruction. -
#frem(left, right, name = "") ⇒ Tacky::Reference
Creates a
frem
instruction. -
#fsub(left, right, name = "") ⇒ Tacky::Reference
Creates a
fsub
instruction. -
#gep(value, indices, name = "") ⇒ Tacky::Reference
Creates a
gep
instruction. -
#global_string(string, name = "") ⇒ Tacky::Reference
Creates a
global_string
instruction. -
#global_string_pointer(string, name = "") ⇒ Tacky::Reference
Creates a
global_string_pointer
instruction. -
#ibr(addr, destinations) ⇒ Tacky::Reference
Creates a
ibr
instruction. -
#icmp(pred, left, right, name = "") ⇒ Tacky::Reference
Creates an
icmp
instruction. -
#inbounds_gep(value, indices, name = "") ⇒ Tacky::Reference
Creates an
gep
instruction. -
#initialize(block) ⇒ Builder
constructor
Initialize the builder with the given block.
-
#insert_element(vector, value, index, name = "") ⇒ Tacky::Reference
Creates an
insert_element
instruction. -
#insert_value(aggregate, value, index, name = "") ⇒ Tacky::Reference
Creates an
insert_value
instruction. -
#int2ptr(value, type, name = "") ⇒ Tacky::Reference
Creates an
inttoptr
instruction. -
#int_cast(value, type, name = "") ⇒ Tacky::Reference
Creates an
bitcast
instruction. -
#invoke(function, params, normal, exception, name = "") ⇒ Tacky::Reference
Creates an
invoke
instruction. -
#is_not_null(value, name = "") ⇒ Tacky::Reference
Creates an
is_not_null
instruction. -
#is_null(value, name = "") ⇒ Tacky::Reference
Creates an
is_null
instruction. -
#load(pointer, name = "") ⇒ Tacky::Reference
Creates a
load
instruction. -
#lshr(left, right, name = "") ⇒ Tacky::Reference
Creates a
lshr
instruction. -
#malloc(type, name = "") ⇒ Tacky::Reference
Creates a
malloc
instruction. -
#mul(left, right, name = "") ⇒ Tacky::Reference
Creates a
mul
instruction. -
#neg(value, name = "") ⇒ Tacky::Reference
Creates a
sub
instruction. -
#not(value, name = "") ⇒ Tacky::Reference
Creates a
not
instruction. -
#nsw_add(left, right, name = "") ⇒ Tacky::Reference
Creates an
add
instruction. -
#nsw_mul(left, right, name = "") ⇒ Tacky::Reference
Creates a
mul
instruction. -
#nsw_neg(left, right, name = "") ⇒ Tacky::Reference
Creates a
sub
instruction. -
#nsw_sub(left, right, name = "") ⇒ Tacky::Reference
Creates a
sub
instruction. -
#null(type) ⇒ Tacky::Reference
Returns a null value of a given type.
-
#nuw_add(left, right, name = "") ⇒ Tacky::Reference
Creates an
add
instruction. -
#nuw_mul(left, right, name = "") ⇒ Tacky::Reference
Creates a
mul
instruction. -
#nuw_neg(left, right, name = "") ⇒ Tacky::Reference
Creates a
sub
instruction. -
#nuw_sub(left, right, name = "") ⇒ Tacky::Reference
Creates a
sub
instruction. -
#or(left, right, name = "") ⇒ Tacky::Reference
Creates an
or
instruction. -
#phi(type, incoming, name = "") ⇒ Tacky::Reference
Creates a
phi
instruction. -
#pointer_cast(value, type, name = "") ⇒ Tacky::Reference
Creates a
bitcast
instruction. -
#ptr2int(value, type, name = "") ⇒ Tacky::Reference
Creates a
ptrtoint
instruction. -
#ptr_diff(left, right, name = "") ⇒ Tacky::Reference
Creates a
ptr_diff
instruction. -
#ret(value) ⇒ Tacky::Reference
Creates a
ret
instruction. -
#ret_void(value) ⇒ Tacky::Reference
Creates a
ret
instruction. -
#sdiv(left, right, name = "") ⇒ Tacky::Reference
Creates an
sdiv
instruction. -
#select(check, vtrue, vfalse, name = "") ⇒ Tacky::Reference
Creates a
select
instruction. -
#sext(value, type, name = "") ⇒ Tacky::Reference
Creates a
sext
instruction. -
#sext_or_bit_cast(value, type, name = "") ⇒ Tacky::Reference
Creates a
sext
orbitcast
instruction, depending on the value and type. -
#shl(left, right, name = "") ⇒ Tacky::Reference
Creates a
shl
instruction. -
#shuffle_vector(vec1, vec2, mask, name = "") ⇒ Tacky::Reference
Creates a
shuffle_vector
instruction. -
#si2fp(value, type, name = "") ⇒ Tacky::Reference
Creates a
sitofp
instruction. -
#sizeof(type) ⇒ Tacky::Reference
Returns the size of a type.
-
#srem(left, right, name = "") ⇒ Tacky::Reference
Creates a
srem
instruction. -
#store(pointer, value) ⇒ Tacky::Reference
Creates a
store
instruction. -
#struct_gep(value, index, name = "") ⇒ Tacky::Reference
Creates a
gep
instruction. -
#sub(left, right, name = "") ⇒ Tacky::Reference
Creates a
sub
instruction. -
#switch(value, default, cases) ⇒ Tacky::Reference
Creates a
switch
instruction. -
#trunc(value, type, name = "") ⇒ Tacky::Reference
Creates a
trunc
instruction. -
#trunc_or_bit_cast(value, type, name = "") ⇒ Tacky::Reference
Creates a
trunc
orbitcast
instruction based on the value and type. -
#udiv(left, right, name = "") ⇒ Tacky::Reference
Creates a
udiv
instruction. -
#ui2fp(value, type, name = "") ⇒ Tacky::Reference
Creates a
uitofp
instruction. -
#unreachable ⇒ Tacky::Reference
Creates an
unreachable
instruction. -
#unwind ⇒ Tacky::Reference
Creates an
unwind
instruction. -
#urem(left, right, name = "") ⇒ Tacky::Reference
Creates a
urem
instruction. -
#zext(value, type, name = "") ⇒ Tacky::Reference
Creates a
zext
instruction. -
#zext_or_bit_cast(value, type, name = "") ⇒ Tacky::Reference
Creates a
zext
orbitcast
instruction based on the value and type.
Constructor Details
#initialize(block) ⇒ Builder
Initialize the builder with the given block.
18 19 20 |
# File 'lib/carbon/tacky/builder.rb', line 18 def initialize(block) @block = block end |
Instance Method Details
#_call(inst, *parameters, name: "") ⇒ Tacky::Reference
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Creates an instruction, and returns a reference to that instruction. The reference points to the instruction using the "instruction id," which is essentially the instruction's place in the block.
306 307 308 309 310 311 312 313 314 315 316 |
# File 'lib/carbon/tacky/builder.rb', line 306 def _call(inst, *parameters, name: "") # cut it off at the pass and force all parameters to instructions to # have a type. id = @block.next typed = parameters.map { |p| Tacky::Typed.from(p) } reference = Tacky::Reference.new(id) instruction = Tacky::Instruction.new(id, inst, parameters, reference) instruction.name = name @block.instructions << instruction reference end |
#add(left, right, name = "") ⇒ Tacky::Reference
Creates an add
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#aggregate_ret(*values) ⇒ Tacky::Reference
Creates a ret
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#alloca(type, name = "") ⇒ Tacky::Reference
Creates an alloca
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#and(left, right, name = "") ⇒ Tacky::Reference
Creates an and
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#array_alloca(type, size, name = "") ⇒ Tacky::Reference
Creates an array_alloca
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#ashr(left, right, name = "") ⇒ Tacky::Reference
Creates an ashr
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#bit_cast(value, type, name = "") ⇒ Tacky::Reference
Creates a bitcast
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#br(destination) ⇒ Tacky::Reference
Creates a br
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#call(function, *arguments) ⇒ Tacky::Reference
Creates a call
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#cond(iftrue, iffalse) ⇒ Tacky::Reference
Creates a br
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#deref(type) ⇒ Object
291 292 293 294 |
# File 'lib/carbon/tacky/builder.rb', line 291 def deref(type) fail _call(:_deref, type) end |
#exact_sdiv(left, right, name = "") ⇒ Tacky::Reference
Creates an sdiv
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#extract_element(vector, index, name = "") ⇒ Tacky::Reference
Creates an extract_element
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#extract_value(aggregate, index, name = "") ⇒ Tacky::Reference
Creates an extract_value
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#fadd(left, right, name = "") ⇒ Tacky::Reference
Creates an fadd
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#fcmp(pred, left, right, name = "") ⇒ Tacky::Reference
Creates an fcmp
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#fdiv(left, right, name = "") ⇒ Tacky::Reference
Creates an fdiv
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#fmul(left, right, name = "") ⇒ Tacky::Reference
Creates an fmul
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#fp2si(value, type, name = "") ⇒ Tacky::Reference
Creates a fptosi
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#fp2ui(value, type, name = "") ⇒ Tacky::Reference
Creates a fptoui
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#fp_cast(value, type, name = "") ⇒ Tacky::Reference
Creates a bitcast
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#fp_ext(value, type, name = "") ⇒ Tacky::Reference
Creates a fpext
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#fp_trunc(value, type, name = "") ⇒ Tacky::Reference
Creates a fptrunc
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#free(pointer) ⇒ Tacky::Reference
Creates a free
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#frem(left, right, name = "") ⇒ Tacky::Reference
Creates a frem
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#fsub(left, right, name = "") ⇒ Tacky::Reference
Creates a fsub
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#gep(value, indices, name = "") ⇒ Tacky::Reference
Creates a gep
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#global_string(string, name = "") ⇒ Tacky::Reference
Creates a global_string
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#global_string_pointer(string, name = "") ⇒ Tacky::Reference
Creates a global_string_pointer
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#ibr(addr, destinations) ⇒ Tacky::Reference
Creates a ibr
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#icmp(pred, left, right, name = "") ⇒ Tacky::Reference
Creates an icmp
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#inbounds_gep(value, indices, name = "") ⇒ Tacky::Reference
Creates an gep
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#insert_element(vector, value, index, name = "") ⇒ Tacky::Reference
Creates an insert_element
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#insert_value(aggregate, value, index, name = "") ⇒ Tacky::Reference
Creates an insert_value
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#int2ptr(value, type, name = "") ⇒ Tacky::Reference
Creates an inttoptr
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#int_cast(value, type, name = "") ⇒ Tacky::Reference
Creates an bitcast
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#invoke(function, params, normal, exception, name = "") ⇒ Tacky::Reference
Creates an invoke
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#is_not_null(value, name = "") ⇒ Tacky::Reference
Creates an is_not_null
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#is_null(value, name = "") ⇒ Tacky::Reference
Creates an is_null
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#load(pointer, name = "") ⇒ Tacky::Reference
Creates a load
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#lshr(left, right, name = "") ⇒ Tacky::Reference
Creates a lshr
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#malloc(type, name = "") ⇒ Tacky::Reference
Creates a malloc
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#mul(left, right, name = "") ⇒ Tacky::Reference
Creates a mul
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#neg(value, name = "") ⇒ Tacky::Reference
Creates a sub
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#not(value, name = "") ⇒ Tacky::Reference
Creates a not
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#nsw_add(left, right, name = "") ⇒ Tacky::Reference
Creates an add
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#nsw_mul(left, right, name = "") ⇒ Tacky::Reference
Creates a mul
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#nsw_neg(left, right, name = "") ⇒ Tacky::Reference
Creates a sub
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#nsw_sub(left, right, name = "") ⇒ Tacky::Reference
Creates a sub
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#null(type) ⇒ Tacky::Reference
Returns a null value of a given type. This may be a constant value or a generated value.
287 288 289 |
# File 'lib/carbon/tacky/builder.rb', line 287 def null(type) _call(:_null, type) end |
#nuw_add(left, right, name = "") ⇒ Tacky::Reference
Creates an add
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#nuw_mul(left, right, name = "") ⇒ Tacky::Reference
Creates a mul
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#nuw_neg(left, right, name = "") ⇒ Tacky::Reference
Creates a sub
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#nuw_sub(left, right, name = "") ⇒ Tacky::Reference
Creates a sub
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#or(left, right, name = "") ⇒ Tacky::Reference
Creates an or
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#phi(type, incoming, name = "") ⇒ Tacky::Reference
Creates a phi
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#pointer_cast(value, type, name = "") ⇒ Tacky::Reference
Creates a bitcast
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#ptr2int(value, type, name = "") ⇒ Tacky::Reference
Creates a ptrtoint
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#ptr_diff(left, right, name = "") ⇒ Tacky::Reference
Creates a ptr_diff
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#ret(value) ⇒ Tacky::Reference
Creates a ret
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#ret_void(value) ⇒ Tacky::Reference
Creates a ret
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#sdiv(left, right, name = "") ⇒ Tacky::Reference
Creates an sdiv
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#select(check, vtrue, vfalse, name = "") ⇒ Tacky::Reference
Creates a select
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#sext(value, type, name = "") ⇒ Tacky::Reference
Creates a sext
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#sext_or_bit_cast(value, type, name = "") ⇒ Tacky::Reference
Creates a sext
or bitcast
instruction, depending on the value
and type.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#shl(left, right, name = "") ⇒ Tacky::Reference
Creates a shl
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#shuffle_vector(vec1, vec2, mask, name = "") ⇒ Tacky::Reference
Creates a shuffle_vector
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#si2fp(value, type, name = "") ⇒ Tacky::Reference
Creates a sitofp
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#sizeof(type) ⇒ Tacky::Reference
Returns the size of a type. This may be a constant value or a generated value.
277 278 279 |
# File 'lib/carbon/tacky/builder.rb', line 277 def sizeof(type) _call(:_sizeof, type) end |
#srem(left, right, name = "") ⇒ Tacky::Reference
Creates a srem
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#store(pointer, value) ⇒ Tacky::Reference
Creates a store
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#struct_gep(value, index, name = "") ⇒ Tacky::Reference
Creates a gep
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#sub(left, right, name = "") ⇒ Tacky::Reference
Creates a sub
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#switch(value, default, cases) ⇒ Tacky::Reference
Creates a switch
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#trunc(value, type, name = "") ⇒ Tacky::Reference
Creates a trunc
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#trunc_or_bit_cast(value, type, name = "") ⇒ Tacky::Reference
Creates a trunc
or bitcast
instruction based on the value and
type.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#udiv(left, right, name = "") ⇒ Tacky::Reference
Creates a udiv
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#ui2fp(value, type, name = "") ⇒ Tacky::Reference
Creates a uitofp
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#unreachable ⇒ Tacky::Reference
Creates an unreachable
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#unwind ⇒ Tacky::Reference
Creates an unwind
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#urem(left, right, name = "") ⇒ Tacky::Reference
Creates a urem
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#zext(value, type, name = "") ⇒ Tacky::Reference
Creates a zext
instruction.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |
#zext_or_bit_cast(value, type, name = "") ⇒ Tacky::Reference
Creates a zext
or bitcast
instruction based on the value and
type.
269 |
# File 'lib/carbon/tacky/builder.rb', line 269 methods.each { |m| define_method(m) { |*a| _call(m, *a) } } |