def pack_array(builder, values): n = len(values) ty = values[0].type ary = Constant.undef(Type.array(ty, n)) for i, v in enumerate(values): ary = builder.insert_value(ary, v, i) return ary
def pack_array(builder, values): n = len(values) ty = values[0].type ary = Constant.undef(Type.array(ty, n)) for i, v in enumerate(values): ary = builder.insert_value(ary, v, i) return ary
def make_anonymous_struct(builder, values): """ Create an anonymous struct constant containing the given LLVM *values*. """ struct_type = Type.struct([v.type for v in values]) struct_val = Constant.undef(struct_type) for i, v in enumerate(values): struct_val = builder.insert_value(struct_val, v, i) return struct_val
def make_anonymous_struct(builder, values): """ Create an anonymous struct constant containing the given LLVM *values*. """ struct_type = Type.struct([v.type for v in values]) struct_val = Constant.undef(struct_type) for i, v in enumerate(values): struct_val = builder.insert_value(struct_val, v, i) return struct_val
def test_struct_extract_value_2d(self): ta = Type.struct([Type.int(32), Type.float()]) tb = Type.struct([ta, Type.float()]) m = Module.new('') f = m.add_function(Type.function(Type.void(), []), "foo") b = Builder.new(f.append_basic_block('')) v = Constant.undef(tb) ins = b.insert_value(v, Constant.real(Type.float(), 1.234), [0, 1]) ext = b.extract_value(ins, [0, 1]) b.ret_void() m.verify() self.assertEqual(str(ext), 'float 0x3FF3BE76C0000000')
def test_struct_extract_value_2d(self): ta = Type.struct([Type.int(32), Type.float()]) tb = Type.struct([ta, Type.float()]) m = Module.new('') f = m.add_function(Type.function(Type.void(), []), "foo") b = Builder.new(f.append_basic_block('')) v = Constant.undef(tb) ins = b.insert_value(v, Constant.real(Type.float(), 1.234), [0, 1]) ext = b.extract_value(ins, [0, 1]) b.ret_void() m.verify() self.assertEqual(str(ext), 'float 0x3FF3BE76C0000000')
def body(self, x): mod = self.function.module argv_type = core.Type.pointer(Type.pointer(Type.int(8))) argv_handle = core.GlobalVariable.new(mod, argv_type, 'P86.argv') argv_handle.initializer = Constant.undef(argv_type) argv_handle.linkage = core.LINKAGE_INTERNAL var = CVar(self, argv_handle) val = var[x] self.ret(CTemp(self, val.value))
def get_constant_undef(self, ty): lty = self.get_value_type(ty) return Constant.undef(lty)