Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require 'ffi'
- require 'llvm/core'
- require 'llvm/core/value'
- module LLVM
- module C
- ffi_lib ['LLVMCPlus-2.8', 'libLLVMCPlus-2.8']
- attach_function :LLVMGetOperatorOpcode, [:pointer], :opcode
- attach_function :LLVMPushBackBasicBlock, [:pointer, :pointer], :void
- attach_function :LLVMRemoveGlobal, [:pointer], :void
- attach_function :LLVMRemoveFunction, [:pointer], :void
- attach_function :LLVMRemoveBasicBlock, [:pointer], :void
- end
- class Instruction
- def opcode
- return C.LLVMGetOperatorOpcode(self)
- end
- end
- class Function::BasicBlockCollection
- def <<(block)
- C.LLVMPushBackBasicBlock(@fun, block)
- end
- def remove(block)
- C.LLVMRemoveBasicBlock(block)
- end
- end
- class Module::GlobalCollection
- def remove(global)
- C.LLVMRemoveGlobal(global)
- end
- end
- class Module::FunctionCollection
- def remove(fn)
- C.LLVMRemoveFunction(fn)
- end
- end
- end
Add Comment
Please, Sign In to add comment