Class: LLVM::Function::BasicBlockCollection

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/llvm/core/value.rb

Instance Method Summary collapse

Constructor Details

#initialize(fun) ⇒ BasicBlockCollection

Returns a new instance of BasicBlockCollection.



1011
1012
1013
# File 'lib/llvm/core/value.rb', line 1011

def initialize(fun)
  @fun = fun
end

Instance Method Details

#append(name = "") ⇒ Object

Adds a BasicBlock with the given name to the end of the collection.



1034
1035
1036
# File 'lib/llvm/core/value.rb', line 1034

def append(name = "")
  BasicBlock.create(@fun, name)
end

#eachObject

Iterates through each BasicBlock in the collection.



1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
# File 'lib/llvm/core/value.rb', line 1021

def each
  return to_enum :each unless block_given?

  ptr = C.get_first_basic_block(@fun)
  0.upto(size - 1) do |i|
    yield BasicBlock.from_ptr(ptr)
    ptr = C.get_next_basic_block(ptr)
  end

  self
end

#entryObject

Returns the entry BasicBlock in the collection. This is the block the function starts on.



1040
1041
1042
# File 'lib/llvm/core/value.rb', line 1040

def entry
  BasicBlock.from_ptr(C.get_entry_basic_block(@fun))
end

#firstObject

Returns the first BasicBlock in the collection.



1045
1046
1047
1048
# File 'lib/llvm/core/value.rb', line 1045

def first
  ptr = C.get_first_basic_block(@fun)
  BasicBlock.from_ptr(ptr) unless ptr.null?
end

#lastObject

Returns the last BasicBlock in the collection.



1051
1052
1053
1054
# File 'lib/llvm/core/value.rb', line 1051

def last
  ptr = C.get_last_basic_block(@fun)
  BasicBlock.from_ptr(ptr) unless ptr.null?
end

#sizeObject

Returns the number of BasicBlocks in the collection.



1016
1017
1018
# File 'lib/llvm/core/value.rb', line 1016

def size
  C.count_basic_blocks(@fun)
end