Skip to content

Commit e3fde02

Browse files
committed
update ir
1 parent 6054288 commit e3fde02

File tree

4 files changed

+194
-179
lines changed

4 files changed

+194
-179
lines changed

mypyc/test-data/irbuild-basic.test

Lines changed: 54 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -966,10 +966,10 @@ def f(o, p, n, b, t, s, a, l, d):
966966
s :: tuple[int, int]
967967
a :: __main__.A
968968
l :: list
969-
d :: dict[exact]
969+
d :: dict
970970
r0 :: object
971971
l2 :: list
972-
d2 :: dict[exact]
972+
d2 :: dict
973973
L0:
974974
o = o
975975
p = p
@@ -1743,15 +1743,18 @@ L0:
17431743
def g():
17441744
r0, r1, r2 :: str
17451745
r3, r4, r5 :: object
1746-
r6, r7 :: dict[exact]
1747-
r8 :: str
1748-
r9 :: object
1749-
r10 :: dict[exact]
1750-
r11 :: i32
1751-
r12 :: bit
1752-
r13 :: tuple
1753-
r14 :: object
1754-
r15 :: tuple[int, int, int]
1746+
r6 :: dict[exact]
1747+
r7 :: dict
1748+
r8 :: dict[exact]
1749+
r9 :: str
1750+
r10 :: object
1751+
r11 :: dict[exact]
1752+
r12 :: dict
1753+
r13 :: i32
1754+
r14 :: bit
1755+
r15 :: tuple
1756+
r16 :: object
1757+
r17 :: tuple[int, int, int]
17551758
L0:
17561759
r0 = 'a'
17571760
r1 = 'b'
@@ -1760,46 +1763,53 @@ L0:
17601763
r4 = object 2
17611764
r5 = object 3
17621765
r6 = CPyDict_Build(3, r0, r3, r1, r4, r2, r5)
1763-
r7 = __main__.globals :: static
1764-
r8 = 'f'
1765-
r9 = CPyDict_GetItemUnsafe(r7, r8)
1766-
r10 = PyDict_New()
1767-
r11 = PyDict_Update(r10, r6)
1768-
r12 = r11 >= 0 :: signed
1769-
r13 = PyTuple_Pack(0)
1770-
r14 = PyObject_Call(r9, r13, r10)
1771-
r15 = unbox(tuple[int, int, int], r14)
1772-
return r15
1766+
r7 = cast(dict, r6)
1767+
r8 = __main__.globals :: static
1768+
r9 = 'f'
1769+
r10 = CPyDict_GetItemUnsafe(r8, r9)
1770+
r11 = PyDict_New()
1771+
r12 = cast(dict, r11)
1772+
r13 = CPyDict_UpdateInDisplay(r12, r7)
1773+
r14 = r13 >= 0 :: signed
1774+
r15 = PyTuple_Pack(0)
1775+
r16 = PyObject_Call(r10, r15, r11)
1776+
r17 = unbox(tuple[int, int, int], r16)
1777+
return r17
17731778
def h():
17741779
r0, r1 :: str
17751780
r2, r3 :: object
1776-
r4, r5 :: dict[exact]
1777-
r6 :: str
1778-
r7 :: object
1779-
r8 :: dict[exact]
1780-
r9 :: i32
1781-
r10 :: bit
1782-
r11 :: object
1783-
r12 :: tuple
1781+
r4 :: dict[exact]
1782+
r5 :: dict
1783+
r6 :: dict[exact]
1784+
r7 :: str
1785+
r8 :: object
1786+
r9 :: dict[exact]
1787+
r10 :: dict
1788+
r11 :: i32
1789+
r12 :: bit
17841790
r13 :: object
1785-
r14 :: tuple[int, int, int]
1791+
r14 :: tuple
1792+
r15 :: object
1793+
r16 :: tuple[int, int, int]
17861794
L0:
17871795
r0 = 'b'
17881796
r1 = 'c'
17891797
r2 = object 2
17901798
r3 = object 3
17911799
r4 = CPyDict_Build(2, r0, r2, r1, r3)
1792-
r5 = __main__.globals :: static
1793-
r6 = 'f'
1794-
r7 = CPyDict_GetItemUnsafe(r5, r6)
1795-
r8 = PyDict_New()
1796-
r9 = PyDict_Update(r8, r4)
1797-
r10 = r9 >= 0 :: signed
1798-
r11 = object 1
1799-
r12 = PyTuple_Pack(1, r11)
1800-
r13 = PyObject_Call(r7, r12, r8)
1801-
r14 = unbox(tuple[int, int, int], r13)
1802-
return r14
1800+
r5 = cast(dict, r4)
1801+
r6 = __main__.globals :: static
1802+
r7 = 'f'
1803+
r8 = CPyDict_GetItemUnsafe(r6, r7)
1804+
r9 = PyDict_New()
1805+
r10 = cast(dict, r9)
1806+
r11 = CPyDict_UpdateInDisplay(r10, r5)
1807+
r12 = r11 >= 0 :: signed
1808+
r13 = object 1
1809+
r14 = PyTuple_Pack(1, r13)
1810+
r15 = PyObject_Call(r8, r14, r9)
1811+
r16 = unbox(tuple[int, int, int], r15)
1812+
return r16
18031813

18041814
[case testFunctionCallWithDefaultArgs]
18051815
def f(x: int, y: int = 3, z: str = "test") -> None:
@@ -1960,6 +1970,7 @@ def f():
19601970
r16 :: i32
19611971
r17 :: bit
19621972
r18 :: native_int
1973+
r19 :: dict
19631974
L0:
19641975
r0 = PyDict_New()
19651976
r1 = PyList_New(3)
@@ -2000,7 +2011,8 @@ L7:
20002011
r6 = r18
20012012
goto L1
20022013
L8:
2003-
return r0
2014+
r19 = cast(dict, r0)
2015+
return r19
20042016

20052017
[case testLoopsMultipleAssign]
20062018
from typing import List, Tuple

mypyc/test-data/irbuild-bytes.test

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ def f(num: int, l: list, d: dict, s: str) -> None:
99
def f(num, l, d, s):
1010
num :: int
1111
l :: list
12-
d :: dict[exact]
12+
d :: dict
1313
s :: str
1414
r0, r1 :: object
1515
r2, b1 :: bytes

mypyc/test-data/irbuild-dict.test

Lines changed: 54 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@ def f(d: Dict[int, bool]) -> bool:
44
return d[0]
55
[out]
66
def f(d):
7-
d :: dict[exact]
7+
d :: dict
88
r0, r1 :: object
99
r2 :: bool
1010
L0:
1111
r0 = object 0
12-
r1 = CPyDict_GetItemUnsafe(d, r0)
12+
r1 = CPyDict_GetItem(d, r0)
1313
r2 = unbox(bool, r1)
1414
return r2
1515

@@ -19,14 +19,14 @@ def f(d: Dict[int, bool]) -> None:
1919
d[0] = False
2020
[out]
2121
def f(d):
22-
d :: dict[exact]
22+
d :: dict
2323
r0, r1 :: object
2424
r2 :: i32
2525
r3 :: bit
2626
L0:
2727
r0 = object 0
2828
r1 = box(bool, 0)
29-
r2 = PyDict_SetItem(d, r0, r1)
29+
r2 = CPyDict_SetItem(d, r0, r1)
3030
r3 = r2 >= 0 :: signed
3131
return 1
3232

@@ -481,93 +481,90 @@ def f4(d: Dict[object, object], flag: bool) -> object:
481481
return d.setdefault('a', {'c': 1})
482482
[out]
483483
def f(d):
484-
d :: dict[exact]
484+
d :: dict
485485
r0, r1 :: str
486486
r2 :: object
487487
L0:
488488
r0 = 'a'
489489
r1 = 'b'
490-
r2 = PyDict_SetDefault(d, r0, r1)
490+
r2 = CPyDict_SetDefault(d, r0, r1)
491491
return r2
492492
def f2(d, flag):
493-
d :: dict[exact]
493+
d :: dict
494494
flag :: bool
495495
r0 :: str
496-
r1 :: dict
497-
r2 :: object
498-
r3, r4 :: str
499-
r5 :: set
500-
r6, r7 :: object
496+
r1 :: object
497+
r2, r3 :: str
498+
r4 :: set
499+
r5, r6 :: object
501500
L0:
502501
if flag goto L1 else goto L2 :: bool
503502
L1:
504503
r0 = 'a'
505-
r1 = cast(dict, d)
506-
r2 = CPyDict_SetDefaultWithEmptyDatatype(r1, r0, 3)
507-
return r2
504+
r1 = CPyDict_SetDefaultWithEmptyDatatype(d, r0, 3)
505+
return r1
508506
L2:
509-
r3 = 'a'
510-
r4 = 'b'
511-
r5 = PySet_New(r4)
512-
r6 = PyDict_SetDefault(d, r3, r5)
513-
return r6
507+
r2 = 'a'
508+
r3 = 'b'
509+
r4 = PySet_New(r3)
510+
r5 = CPyDict_SetDefault(d, r2, r4)
511+
return r5
514512
L3:
515-
r7 = box(None, 1)
516-
return r7
513+
r6 = box(None, 1)
514+
return r6
517515
def f3(d, flag):
518-
d :: dict[exact]
516+
d :: dict
519517
flag :: bool
520518
r0 :: str
521-
r1 :: dict
522-
r2 :: object
523-
r3 :: str
524-
r4 :: list
525-
r5 :: object
526-
r6 :: ptr
527-
r7, r8 :: object
519+
r1 :: object
520+
r2 :: str
521+
r3 :: list
522+
r4 :: object
523+
r5 :: ptr
524+
r6, r7 :: object
528525
L0:
529526
if flag goto L1 else goto L2 :: bool
530527
L1:
531528
r0 = 'a'
532-
r1 = cast(dict, d)
533-
r2 = CPyDict_SetDefaultWithEmptyDatatype(r1, r0, 1)
534-
return r2
529+
r1 = CPyDict_SetDefaultWithEmptyDatatype(d, r0, 1)
530+
return r1
535531
L2:
536-
r3 = 'a'
537-
r4 = PyList_New(1)
538-
r5 = object 1
539-
r6 = list_items r4
540-
buf_init_item r6, 0, r5
541-
keep_alive r4
542-
r7 = PyDict_SetDefault(d, r3, r4)
543-
return r7
532+
r2 = 'a'
533+
r3 = PyList_New(1)
534+
r4 = object 1
535+
r5 = list_items r3
536+
buf_init_item r5, 0, r4
537+
keep_alive r3
538+
r6 = CPyDict_SetDefault(d, r2, r3)
539+
return r6
544540
L3:
545-
r8 = box(None, 1)
546-
return r8
541+
r7 = box(None, 1)
542+
return r7
547543
def f4(d, flag):
548-
d :: dict[exact]
544+
d :: dict
549545
flag :: bool
550546
r0 :: str
551-
r1 :: dict
552-
r2 :: object
553-
r3, r4 :: str
554-
r5 :: object
555-
r6 :: dict[exact]
547+
r1 :: object
548+
r2, r3 :: str
549+
r4 :: object
550+
r5 :: dict[exact]
551+
r6 :: dict
556552
r7, r8 :: object
557553
L0:
558554
if flag goto L1 else goto L2 :: bool
559555
L1:
560556
r0 = 'a'
561-
r1 = cast(dict, d)
562-
r2 = CPyDict_SetDefaultWithEmptyDatatype(r1, r0, 2)
563-
return r2
557+
r1 = CPyDict_SetDefaultWithEmptyDatatype(d, r0, 2)
558+
return r1
564559
L2:
565-
r3 = 'a'
566-
r4 = 'c'
567-
r5 = object 1
568-
r6 = CPyDict_Build(1, r4, r5)
569-
r7 = PyDict_SetDefault(d, r3, r6)
560+
r2 = 'a'
561+
r3 = 'c'
562+
r4 = object 1
563+
r5 = CPyDict_Build(1, r3, r4)
564+
r6 = cast(dict, r5)
565+
r7 = CPyDict_SetDefault(d, r2, r6)
570566
return r7
571567
L3:
572568
r8 = box(None, 1)
573569
return r8
570+

0 commit comments

Comments
 (0)