Class: LLVM::TargetMachine

Inherits:
Object
  • Object
show all
Includes:
PointerIdentity
Defined in:
lib/llvm/target.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from PointerIdentity

#==, #eql?, #hash, #to_ptr

Class Method Details

.from_ptr(ptr) ⇒ Object



159
160
161
162
163
# File 'lib/llvm/target.rb', line 159

def self.from_ptr(ptr)
  target = allocate
  target.instance_variable_set :@ptr, ptr
  target
end

Instance Method Details

#cpuObject

Returns the CPU used for creating this target machine.



186
187
188
# File 'lib/llvm/target.rb', line 186

def cpu
  C.get_target_machine_cpu(self)
end

#disposeObject

Destroys this instance of TargetMachine.



166
167
168
169
170
171
# File 'lib/llvm/target.rb', line 166

def dispose
  return if @ptr.nil?

  C.dispose_target_machine(self)
  @ptr = nil
end

#emit(mod, filename, codegen = :assembly) ⇒ Object

Emits an asm or object file for the given module.

Parameters:

  • codegen (Symbol) (defaults to: :assembly)

    :assembly, :object



198
199
200
201
202
# File 'lib/llvm/target.rb', line 198

def emit(mod, filename, codegen = :assembly)
  LLVM.with_error_output do |err|
    C.target_machine_emit_to_file(self, mod, filename.to_s, codegen, err)
  end
end

#featuresObject

Returns the feature string used for creating this target machine.



191
192
193
# File 'lib/llvm/target.rb', line 191

def features
  C.get_target_machine_feature_string(self)
end

#targetTarget

Returns the corresponding Target.

Returns:



176
177
178
# File 'lib/llvm/target.rb', line 176

def target
  Target.from_ptr(C.get_target_machine_target(self))
end

#tripleObject

Returns the triple used for creating this target machine.



181
182
183
# File 'lib/llvm/target.rb', line 181

def triple
  C.get_target_machine_triple(self)
end