本文整理汇总了Python中pypy.jit.metainterp.optimizeopt.optimizer.OptValue.make_constant_class方法的典型用法代码示例。如果您正苦于以下问题:Python OptValue.make_constant_class方法的具体用法?Python OptValue.make_constant_class怎么用?Python OptValue.make_constant_class使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pypy.jit.metainterp.optimizeopt.optimizer.OptValue
的用法示例。
在下文中一共展示了OptValue.make_constant_class方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_NotVirtualStateInfo_generalization
# 需要导入模块: from pypy.jit.metainterp.optimizeopt.optimizer import OptValue [as 别名]
# 或者: from pypy.jit.metainterp.optimizeopt.optimizer.OptValue import make_constant_class [as 别名]
def test_NotVirtualStateInfo_generalization(self):
def isgeneral(value1, value2):
info1 = NotVirtualStateInfo(value1)
info1.position = 0
info2 = NotVirtualStateInfo(value2)
info2.position = 0
return info1.generalization_of(info2, {}, {})
assert isgeneral(OptValue(BoxInt()), OptValue(ConstInt(7)))
assert not isgeneral(OptValue(ConstInt(7)), OptValue(BoxInt()))
ptr = OptValue(BoxPtr())
nonnull = OptValue(BoxPtr())
nonnull.make_nonnull(0)
knownclass = OptValue(BoxPtr())
knownclass.make_constant_class(ConstPtr(self.someptr1), 0)
const = OptValue(BoxPtr)
const.make_constant_class(ConstPtr(self.someptr1), 0)
const.make_constant(ConstPtr(self.someptr1))
inorder = [ptr, nonnull, knownclass, const]
for i in range(len(inorder)):
for j in range(i, len(inorder)):
assert isgeneral(inorder[i], inorder[j])
if i != j:
assert not isgeneral(inorder[j], inorder[i])
value1 = OptValue(BoxInt())
value2 = OptValue(BoxInt())
value2.intbound.make_lt(IntBound(10, 10))
assert isgeneral(value1, value2)
assert not isgeneral(value2, value1)
示例2: test_virtuals_with_equal_fields
# 需要导入模块: from pypy.jit.metainterp.optimizeopt.optimizer import OptValue [as 别名]
# 或者: from pypy.jit.metainterp.optimizeopt.optimizer.OptValue import make_constant_class [as 别名]
def test_virtuals_with_equal_fields(self):
info1 = VirtualStateInfo(ConstInt(42), [1, 2])
value = OptValue(self.nodebox)
classbox = self.cpu.ts.cls_of_box(self.nodebox)
value.make_constant_class(classbox, -1)
knownclass_info = NotVirtualStateInfo(value)
info1.fieldstate = [knownclass_info, knownclass_info]
vstate1 = VirtualState([info1])
assert vstate1.generalization_of(vstate1)
info2 = VirtualStateInfo(ConstInt(42), [1, 2])
unknown_info1 = NotVirtualStateInfo(OptValue(self.nodebox))
info2.fieldstate = [unknown_info1, unknown_info1]
vstate2 = VirtualState([info2])
assert vstate2.generalization_of(vstate2)
assert not vstate1.generalization_of(vstate2)
assert vstate2.generalization_of(vstate1)
info3 = VirtualStateInfo(ConstInt(42), [1, 2])
unknown_info1 = NotVirtualStateInfo(OptValue(self.nodebox))
unknown_info2 = NotVirtualStateInfo(OptValue(self.nodebox))
info3.fieldstate = [unknown_info1, unknown_info2]
vstate3 = VirtualState([info3])
assert vstate3.generalization_of(vstate2)
assert vstate3.generalization_of(vstate1)
assert not vstate2.generalization_of(vstate3)
assert not vstate1.generalization_of(vstate3)
示例3: test_known_class_value
# 需要导入模块: from pypy.jit.metainterp.optimizeopt.optimizer import OptValue [as 别名]
# 或者: from pypy.jit.metainterp.optimizeopt.optimizer.OptValue import make_constant_class [as 别名]
def test_known_class_value(self):
value1 = OptValue(self.nodebox)
classbox = self.cpu.ts.cls_of_box(self.nodebox)
value1.make_constant_class(classbox, -1)
box = self.nodebox
guards = value1.make_guards(box)
expected = """
[p0]
guard_nonnull(p0) []
guard_class(p0, ConstClass(node_vtable)) []
"""
self.compare(guards, expected, [box])
示例4: test_known_class
# 需要导入模块: from pypy.jit.metainterp.optimizeopt.optimizer import OptValue [as 别名]
# 或者: from pypy.jit.metainterp.optimizeopt.optimizer.OptValue import make_constant_class [as 别名]
def test_known_class(self):
value1 = OptValue(self.nodebox)
classbox = self.cpu.ts.cls_of_box(self.nodebox)
value1.make_constant_class(classbox, -1)
info1 = NotVirtualStateInfo(value1)
info2 = NotVirtualStateInfo(OptValue(self.nodebox))
expected = """
[p0]
guard_nonnull(p0) []
guard_class(p0, ConstClass(node_vtable)) []
"""
self.guards(info1, info2, self.nodebox, expected)
py.test.raises(InvalidLoop, self.guards,
info1, info2, BoxPtr(), expected)
示例5: test_nonvirtual_is_not_array
# 需要导入模块: from pypy.jit.metainterp.optimizeopt.optimizer import OptValue [as 别名]
# 或者: from pypy.jit.metainterp.optimizeopt.optimizer.OptValue import make_constant_class [as 别名]
def test_nonvirtual_is_not_array(self):
info1 = VArrayStateInfo(42)
value = OptValue(self.nodebox)
classbox = self.cpu.ts.cls_of_box(self.nodebox)
value.make_constant_class(classbox, -1)
knownclass_info = NotVirtualStateInfo(value)
info1.fieldstate = [knownclass_info, knownclass_info]
vstate1 = VirtualState([info1])
assert vstate1.generalization_of(vstate1)
info2 = NotVirtualStateInfo(value)
vstate2 = VirtualState([info2])
assert vstate2.generalization_of(vstate2)
assert not vstate2.generalization_of(vstate1)
assert not vstate1.generalization_of(vstate2)
示例6: test_virtuals_with_nonmatching_classes
# 需要导入模块: from pypy.jit.metainterp.optimizeopt.optimizer import OptValue [as 别名]
# 或者: from pypy.jit.metainterp.optimizeopt.optimizer.OptValue import make_constant_class [as 别名]
def test_virtuals_with_nonmatching_classes(self):
info1 = VirtualStateInfo(ConstInt(42), [1, 2])
value = OptValue(self.nodebox)
classbox = self.cpu.ts.cls_of_box(self.nodebox)
value.make_constant_class(classbox, -1)
knownclass_info = NotVirtualStateInfo(value)
info1.fieldstate = [knownclass_info, knownclass_info]
vstate1 = VirtualState([info1])
assert vstate1.generalization_of(vstate1)
info2 = VirtualStateInfo(ConstInt(7), [1, 2])
value = OptValue(self.nodebox2)
classbox = self.cpu.ts.cls_of_box(self.nodebox2)
value.make_constant_class(classbox, -1)
knownclass_info = NotVirtualStateInfo(value)
info2.fieldstate = [knownclass_info, knownclass_info]
vstate2 = VirtualState([info2])
assert vstate2.generalization_of(vstate2)
assert not vstate2.generalization_of(vstate1)
assert not vstate1.generalization_of(vstate2)
示例7: test_equal_inputargs
# 需要导入模块: from pypy.jit.metainterp.optimizeopt.optimizer import OptValue [as 别名]
# 或者: from pypy.jit.metainterp.optimizeopt.optimizer.OptValue import make_constant_class [as 别名]
def test_equal_inputargs(self):
value = OptValue(self.nodebox)
classbox = self.cpu.ts.cls_of_box(self.nodebox)
value.make_constant_class(classbox, -1)
knownclass_info = NotVirtualStateInfo(value)
vstate1 = VirtualState([knownclass_info, knownclass_info])
assert vstate1.generalization_of(vstate1)
unknown_info1 = NotVirtualStateInfo(OptValue(self.nodebox))
vstate2 = VirtualState([unknown_info1, unknown_info1])
assert vstate2.generalization_of(vstate2)
assert not vstate1.generalization_of(vstate2)
assert vstate2.generalization_of(vstate1)
unknown_info1 = NotVirtualStateInfo(OptValue(self.nodebox))
unknown_info2 = NotVirtualStateInfo(OptValue(self.nodebox))
vstate3 = VirtualState([unknown_info1, unknown_info2])
assert vstate3.generalization_of(vstate2)
assert vstate3.generalization_of(vstate1)
assert not vstate2.generalization_of(vstate3)
assert not vstate1.generalization_of(vstate3)
expected = """
[p0]
guard_nonnull(p0) []
guard_class(p0, ConstClass(node_vtable)) []
"""
guards = []
vstate1.generate_guards(vstate2, [self.nodebox, self.nodebox], self.cpu, guards)
self.compare(guards, expected, [self.nodebox])
with py.test.raises(InvalidLoop):
guards = []
vstate1.generate_guards(vstate3, [self.nodebox, self.nodebox],
self.cpu, guards)
with py.test.raises(InvalidLoop):
guards = []
vstate2.generate_guards(vstate3, [self.nodebox, self.nodebox],
self.cpu, guards)
示例8: test_known_class_generalization
# 需要导入模块: from pypy.jit.metainterp.optimizeopt.optimizer import OptValue [as 别名]
# 或者: from pypy.jit.metainterp.optimizeopt.optimizer.OptValue import make_constant_class [as 别名]
def test_known_class_generalization(self):
knownclass1 = OptValue(BoxPtr())
knownclass1.make_constant_class(ConstPtr(self.someptr1), 0)
info1 = NotVirtualStateInfo(knownclass1)
info1.position = 0
knownclass2 = OptValue(BoxPtr())
knownclass2.make_constant_class(ConstPtr(self.someptr1), 0)
info2 = NotVirtualStateInfo(knownclass2)
info2.position = 0
assert info1.generalization_of(info2, {}, {})
assert info2.generalization_of(info1, {}, {})
knownclass3 = OptValue(BoxPtr())
knownclass3.make_constant_class(ConstPtr(self.someptr2), 0)
info3 = NotVirtualStateInfo(knownclass3)
info3.position = 0
assert not info1.generalization_of(info3, {}, {})
assert not info2.generalization_of(info3, {}, {})
assert not info3.generalization_of(info2, {}, {})
assert not info3.generalization_of(info1, {}, {})