Skip to content

Commit 9fe297d

Browse files
committed
refactor: include argument names in mangled function names.
1 parent 5a16901 commit 9fe297d

17 files changed

Lines changed: 308 additions & 197 deletions

File tree

lib/src/compiler/ir/ast2ir.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1294,7 +1294,10 @@ fn is_potentially_large_range(ctx: &CompileContext, range: &Range) -> bool {
12941294
// Don't traverse the arguments of `math.min`.
12951295
|node| {
12961296
if let Expr::FuncCall(func) = node {
1297-
func.signature.mangled_name.as_str().eq("math.min@ii@i")
1297+
func.signature
1298+
.mangled_name
1299+
.as_str()
1300+
.eq("math.min@a:i,b:i@i")
12981301
} else {
12991302
false
13001303
}

lib/src/compiler/ir/tests/testdata/10.cse.ir

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
RULE test
2-
13: FOR_IN -- hash: 0x96423d1fc9f13492 -- parent: None
2+
13: FOR_IN -- hash: 0x12dbfc09ed5ac100 -- parent: None
33
0: CONST integer(1) -- parent: 13
44
1: CONST integer(10) -- parent: 13
5-
12: WITH -- hash: 0x2fa6e67ac30fd47a -- parent: 13
6-
6: FN_CALL uint32@i@i:R0:4294967295u -- hash: 0xb24700199f93dab8 -- parent: 12
5+
12: WITH -- hash: 0xac40a564e67960e7 -- parent: 13
6+
6: FN_CALL uint32@offset:i@i:R0:4294967295u -- hash: 0xdb7bdb9e18e2be98 -- parent: 12
77
5: ADD -- hash: 0x685e7a2ba5a36f1d -- parent: 6
88
3: PATTERN_OFFSET PatternIdx(0) INDEX -- hash: 0x7cb6e22690df7f1b -- parent: 5
99
2: SYMBOL Var { var: Var { frame_id: 1, ty: integer, index: 5 }, type_value: integer(unknown) } -- parent: 3
1010
4: CONST integer(16) -- parent: 5
11-
8: FN_CALL uint32be@i@i:R0:4294967295u -- hash: 0x36dbf5f6d8719ced -- parent: 12
11+
8: FN_CALL uint32be@offset:i@i:R0:4294967295u -- hash: 0x954bbb64201a5bf8 -- parent: 12
1212
7: SYMBOL Var { var: Var { frame_id: 2, ty: integer, index: 7 }, type_value: integer(unknown) } -- parent: 8
1313
11: NE -- hash: 0xe0b33818592dcf55 -- parent: 12
1414
9: SYMBOL Var { var: Var { frame_id: 2, ty: integer, index: 8 }, type_value: integer(unknown) } -- parent: 11

lib/src/compiler/ir/tests/testdata/10.hoisting.ir

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
RULE test
2-
13: FOR_IN -- hash: 0x96423d1fc9f13492 -- parent: None
2+
13: FOR_IN -- hash: 0x12dbfc09ed5ac100 -- parent: None
33
0: CONST integer(1) -- parent: 13
44
1: CONST integer(10) -- parent: 13
5-
12: WITH -- hash: 0x2fa6e67ac30fd47a -- parent: 13
6-
6: FN_CALL uint32@i@i:R0:4294967295u -- hash: 0xb24700199f93dab8 -- parent: 12
5+
12: WITH -- hash: 0xac40a564e67960e7 -- parent: 13
6+
6: FN_CALL uint32@offset:i@i:R0:4294967295u -- hash: 0xdb7bdb9e18e2be98 -- parent: 12
77
5: ADD -- hash: 0x685e7a2ba5a36f1d -- parent: 6
88
3: PATTERN_OFFSET PatternIdx(0) INDEX -- hash: 0x7cb6e22690df7f1b -- parent: 5
99
2: SYMBOL Var { var: Var { frame_id: 1, ty: integer, index: 5 }, type_value: integer(unknown) } -- parent: 3
1010
4: CONST integer(16) -- parent: 5
11-
8: FN_CALL uint32be@i@i:R0:4294967295u -- hash: 0x36dbf5f6d8719ced -- parent: 12
11+
8: FN_CALL uint32be@offset:i@i:R0:4294967295u -- hash: 0x954bbb64201a5bf8 -- parent: 12
1212
7: SYMBOL Var { var: Var { frame_id: 2, ty: integer, index: 7 }, type_value: integer(unknown) } -- parent: 8
1313
11: NE -- hash: 0xe0b33818592dcf55 -- parent: 12
1414
9: SYMBOL Var { var: Var { frame_id: 2, ty: integer, index: 8 }, type_value: integer(unknown) } -- parent: 11

lib/src/compiler/ir/tests/testdata/10.ir

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
RULE test
2-
13: FOR_IN -- hash: 0x96423d1fc9f13492 -- parent: None
2+
13: FOR_IN -- hash: 0x12dbfc09ed5ac100 -- parent: None
33
0: CONST integer(1) -- parent: 13
44
1: CONST integer(10) -- parent: 13
5-
12: WITH -- hash: 0x2fa6e67ac30fd47a -- parent: 13
6-
6: FN_CALL uint32@i@i:R0:4294967295u -- hash: 0xb24700199f93dab8 -- parent: 12
5+
12: WITH -- hash: 0xac40a564e67960e7 -- parent: 13
6+
6: FN_CALL uint32@offset:i@i:R0:4294967295u -- hash: 0xdb7bdb9e18e2be98 -- parent: 12
77
5: ADD -- hash: 0x685e7a2ba5a36f1d -- parent: 6
88
3: PATTERN_OFFSET PatternIdx(0) INDEX -- hash: 0x7cb6e22690df7f1b -- parent: 5
99
2: SYMBOL Var { var: Var { frame_id: 1, ty: integer, index: 5 }, type_value: integer(unknown) } -- parent: 3
1010
4: CONST integer(16) -- parent: 5
11-
8: FN_CALL uint32be@i@i:R0:4294967295u -- hash: 0x36dbf5f6d8719ced -- parent: 12
11+
8: FN_CALL uint32be@offset:i@i:R0:4294967295u -- hash: 0x954bbb64201a5bf8 -- parent: 12
1212
7: SYMBOL Var { var: Var { frame_id: 2, ty: integer, index: 7 }, type_value: integer(unknown) } -- parent: 8
1313
11: NE -- hash: 0xe0b33818592dcf55 -- parent: 12
1414
9: SYMBOL Var { var: Var { frame_id: 2, ty: integer, index: 8 }, type_value: integer(unknown) } -- parent: 11

lib/src/compiler/ir/tests/testdata/3.cse.ir

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
RULE test
2-
12: OR -- hash: 0x1b8fc9245609bbd8 -- parent: None
3-
5: EQ -- hash: 0xa7087e04c9789991 -- parent: 12
4-
3: FN_CALL hash.md5@ii@s:N32:Lu -- hash: 0xb1521b9e4a43d71b -- parent: 5
2+
12: OR -- hash: 0x3943b5785dde551a -- parent: None
3+
5: EQ -- hash: 0x7e5484873ebb2659 -- parent: 12
4+
3: FN_CALL hash.md5@offset:i,size:i@s:N32:Lu -- hash: 0xeaf33e3e6d085dc7 -- parent: 5
55
1: CONST integer(0) -- parent: 3
66
2: FILESIZE -- parent: 3
77
4: CONST string("feba6c919e3797e7778e8f2e85fa033d") -- parent: 5
8-
11: EQ -- hash: 0xf4e7b8bcfc86defd -- parent: 12
9-
9: FN_CALL hash.md5@ii@s:N32:Lu -- hash: 0xb1521b9e4a43d71b -- parent: 11
8+
11: EQ -- hash: 0xcc33bf3f71c96bc5 -- parent: 12
9+
9: FN_CALL hash.md5@offset:i,size:i@s:N32:Lu -- hash: 0xeaf33e3e6d085dc7 -- parent: 11
1010
7: CONST integer(0) -- parent: 9
1111
8: FILESIZE -- parent: 9
1212
10: CONST string("275876e34cf609db118f3d84b799a790") -- parent: 11

lib/src/compiler/ir/tests/testdata/3.hoisting.ir

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
RULE test
2-
12: OR -- hash: 0x1b8fc9245609bbd8 -- parent: None
3-
5: EQ -- hash: 0xa7087e04c9789991 -- parent: 12
4-
3: FN_CALL hash.md5@ii@s:N32:Lu -- hash: 0xb1521b9e4a43d71b -- parent: 5
2+
12: OR -- hash: 0x3943b5785dde551a -- parent: None
3+
5: EQ -- hash: 0x7e5484873ebb2659 -- parent: 12
4+
3: FN_CALL hash.md5@offset:i,size:i@s:N32:Lu -- hash: 0xeaf33e3e6d085dc7 -- parent: 5
55
1: CONST integer(0) -- parent: 3
66
2: FILESIZE -- parent: 3
77
4: CONST string("feba6c919e3797e7778e8f2e85fa033d") -- parent: 5
8-
11: EQ -- hash: 0xf4e7b8bcfc86defd -- parent: 12
9-
9: FN_CALL hash.md5@ii@s:N32:Lu -- hash: 0xb1521b9e4a43d71b -- parent: 11
8+
11: EQ -- hash: 0xcc33bf3f71c96bc5 -- parent: 12
9+
9: FN_CALL hash.md5@offset:i,size:i@s:N32:Lu -- hash: 0xeaf33e3e6d085dc7 -- parent: 11
1010
7: CONST integer(0) -- parent: 9
1111
8: FILESIZE -- parent: 9
1212
10: CONST string("275876e34cf609db118f3d84b799a790") -- parent: 11

lib/src/compiler/ir/tests/testdata/3.ir

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
RULE test
2-
12: OR -- hash: 0x1b8fc9245609bbd8 -- parent: None
3-
5: EQ -- hash: 0xa7087e04c9789991 -- parent: 12
4-
3: FN_CALL hash.md5@ii@s:N32:Lu -- hash: 0xb1521b9e4a43d71b -- parent: 5
2+
12: OR -- hash: 0x3943b5785dde551a -- parent: None
3+
5: EQ -- hash: 0x7e5484873ebb2659 -- parent: 12
4+
3: FN_CALL hash.md5@offset:i,size:i@s:N32:Lu -- hash: 0xeaf33e3e6d085dc7 -- parent: 5
55
1: CONST integer(0) -- parent: 3
66
2: FILESIZE -- parent: 3
77
4: CONST string("feba6c919e3797e7778e8f2e85fa033d") -- parent: 5
8-
11: EQ -- hash: 0xf4e7b8bcfc86defd -- parent: 12
9-
9: FN_CALL hash.md5@ii@s:N32:Lu -- hash: 0xb1521b9e4a43d71b -- parent: 11
8+
11: EQ -- hash: 0xcc33bf3f71c96bc5 -- parent: 12
9+
9: FN_CALL hash.md5@offset:i,size:i@s:N32:Lu -- hash: 0xeaf33e3e6d085dc7 -- parent: 11
1010
7: CONST integer(0) -- parent: 9
1111
8: FILESIZE -- parent: 9
1212
10: CONST string("275876e34cf609db118f3d84b799a790") -- parent: 11

lib/src/compiler/ir/tests/testdata/4.cse.ir

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
RULE test
2-
52: WITH -- hash: 0x5e28f45a3380ebce -- parent: None
2+
52: WITH -- hash: 0x3d25b3d4794433e2 -- parent: None
33
2: FIELD_ACCESS -- hash: 0x30adb8d0b7ea7b20 -- parent: 52
44
0: SYMBOL Field { index: 0, is_root: true, type_value: struct, acl: None, deprecation_notice: None } -- parent: 2
55
1: SYMBOL Field { index: 12, is_root: false, type_value: integer(unknown), acl: None, deprecation_notice: None } -- parent: 2
6-
51: AND -- hash: 0xd48c9e4c1bbd6e98 -- parent: 52
7-
22: FOR_IN -- hash: 0x7854178bc588aac4 -- parent: 51
6+
51: AND -- hash: 0xb3895dc66180b6ac -- parent: 52
7+
22: FOR_IN -- hash: 0xb5766871f0d8434f -- parent: 51
88
3: CONST integer(0) -- parent: 22
99
4: CONST integer(1) -- parent: 22
10-
21: AND -- hash: 0x9cf8fe424d5f369 -- parent: 22
10+
21: AND -- hash: 0x46f1e0ca50258bf4 -- parent: 22
1111
7: EQ -- hash: 0xa866a1c3637edc78 -- parent: 21
1212
5: SYMBOL Var { var: Var { frame_id: 2, ty: integer, index: 6 }, type_value: integer(unknown) } -- parent: 7
1313
6: SYMBOL Var { var: Var { frame_id: 1, ty: integer, index: 0 }, type_value: integer(unknown) } -- parent: 7
14-
13: EQ -- hash: 0x15f5b2aba7d47f8 -- parent: 21
15-
11: FN_CALL test_proto2.add@ii@i -- hash: 0x4b8def611ce41371 -- parent: 13
14+
13: EQ -- hash: 0x452e9b6d563a2e0e -- parent: 21
15+
11: FN_CALL test_proto2.add@a:i,b:i@i -- hash: 0x261e822f79c74aad -- parent: 13
1616
9: CONST integer(1) -- parent: 11
1717
10: CONST integer(2) -- parent: 11
1818
12: CONST integer(3) -- parent: 13
@@ -23,12 +23,12 @@ RULE test
2323
15: SYMBOL Field { index: 10, is_root: false, type_value: float(unknown), acl: None, deprecation_notice: None } -- parent: 16
2424
17: CONST integer(1) -- parent: 18
2525
19: CONST float(1.0) -- parent: 20
26-
39: FOR_IN -- hash: 0x3aeb7cd882a3770d -- parent: 51
26+
39: FOR_IN -- hash: 0x780dcdbeadf30f98 -- parent: 51
2727
23: CONST integer(0) -- parent: 39
2828
24: CONST integer(1) -- parent: 39
29-
38: OR -- hash: 0xc7fb5e4615f1997 -- parent: 39
30-
30: NE -- hash: 0xb189c2a481168c22 -- parent: 38
31-
28: FN_CALL test_proto2.add@ii@i -- hash: 0x4b8def611ce41371 -- parent: 30
29+
38: OR -- hash: 0x49a206ca8caeb222 -- parent: 39
30+
30: NE -- hash: 0xf55902e71cd37238 -- parent: 38
31+
28: FN_CALL test_proto2.add@a:i,b:i@i -- hash: 0x261e822f79c74aad -- parent: 30
3232
26: CONST integer(1) -- parent: 28
3333
27: CONST integer(2) -- parent: 28
3434
29: CONST integer(0) -- parent: 30

lib/src/compiler/ir/tests/testdata/4.hoisting.ir

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
RULE test
2-
52: WITH -- hash: 0xe52165a3e4f9c004 -- parent: None
2+
52: WITH -- hash: 0x9bec9656dce82b6d -- parent: None
33
2: FIELD_ACCESS -- hash: 0x30adb8d0b7ea7b20 -- parent: 52
44
0: SYMBOL Field { index: 0, is_root: true, type_value: struct, acl: None, deprecation_notice: None } -- parent: 2
55
1: SYMBOL Field { index: 12, is_root: false, type_value: integer(unknown), acl: None, deprecation_notice: None } -- parent: 2
6-
51: AND -- hash: 0x77e386988c8be1cf -- parent: 52
7-
54: WITH -- hash: 0x21fb65f365d018b2 -- parent: 51
8-
53: FN_CALL test_proto2.add@ii@i -- hash: 0x4b8def611ce41371 -- parent: 54
6+
51: AND -- hash: 0x2eaeb74b847a4d38 -- parent: 52
7+
54: WITH -- hash: 0x1146bb568254efab -- parent: 51
8+
53: FN_CALL test_proto2.add@a:i,b:i@i -- hash: 0x261e822f79c74aad -- parent: 54
99
9: CONST integer(1) -- parent: 53
1010
10: CONST integer(2) -- parent: 53
1111
56: WITH -- hash: 0x58086382660011ee -- parent: 54
@@ -33,8 +33,8 @@ RULE test
3333
6: SYMBOL Var { var: Var { frame_id: 1, ty: integer, index: 0 }, type_value: integer(unknown) } -- parent: 7
3434
13: SYMBOL Var { var: Var { frame_id: 0, ty: boolean, index: 2 }, type_value: boolean(unknown) } -- parent: 21
3535
20: SYMBOL Var { var: Var { frame_id: 0, ty: boolean, index: 5 }, type_value: boolean(unknown) } -- parent: 21
36-
64: WITH -- hash: 0xca40c776e4c60a3a -- parent: 51
37-
63: FN_CALL test_proto2.add@ii@i -- hash: 0x4b8def611ce41371 -- parent: 64
36+
64: WITH -- hash: 0x2e00596c13d056e8 -- parent: 51
37+
63: FN_CALL test_proto2.add@a:i,b:i@i -- hash: 0x261e822f79c74aad -- parent: 64
3838
26: CONST integer(1) -- parent: 63
3939
27: CONST integer(2) -- parent: 63
4040
66: WITH -- hash: 0xa0cb3969e5369c8a -- parent: 64

lib/src/compiler/ir/tests/testdata/4.ir

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
RULE test
2-
52: WITH -- hash: 0x5e28f45a3380ebce -- parent: None
2+
52: WITH -- hash: 0x3d25b3d4794433e2 -- parent: None
33
2: FIELD_ACCESS -- hash: 0x30adb8d0b7ea7b20 -- parent: 52
44
0: SYMBOL Field { index: 0, is_root: true, type_value: struct, acl: None, deprecation_notice: None } -- parent: 2
55
1: SYMBOL Field { index: 12, is_root: false, type_value: integer(unknown), acl: None, deprecation_notice: None } -- parent: 2
6-
51: AND -- hash: 0xd48c9e4c1bbd6e98 -- parent: 52
7-
22: FOR_IN -- hash: 0x7854178bc588aac4 -- parent: 51
6+
51: AND -- hash: 0xb3895dc66180b6ac -- parent: 52
7+
22: FOR_IN -- hash: 0xb5766871f0d8434f -- parent: 51
88
3: CONST integer(0) -- parent: 22
99
4: CONST integer(1) -- parent: 22
10-
21: AND -- hash: 0x9cf8fe424d5f369 -- parent: 22
10+
21: AND -- hash: 0x46f1e0ca50258bf4 -- parent: 22
1111
7: EQ -- hash: 0xa866a1c3637edc78 -- parent: 21
1212
5: SYMBOL Var { var: Var { frame_id: 2, ty: integer, index: 6 }, type_value: integer(unknown) } -- parent: 7
1313
6: SYMBOL Var { var: Var { frame_id: 1, ty: integer, index: 0 }, type_value: integer(unknown) } -- parent: 7
14-
13: EQ -- hash: 0x15f5b2aba7d47f8 -- parent: 21
15-
11: FN_CALL test_proto2.add@ii@i -- hash: 0x4b8def611ce41371 -- parent: 13
14+
13: EQ -- hash: 0x452e9b6d563a2e0e -- parent: 21
15+
11: FN_CALL test_proto2.add@a:i,b:i@i -- hash: 0x261e822f79c74aad -- parent: 13
1616
9: CONST integer(1) -- parent: 11
1717
10: CONST integer(2) -- parent: 11
1818
12: CONST integer(3) -- parent: 13
@@ -23,12 +23,12 @@ RULE test
2323
15: SYMBOL Field { index: 10, is_root: false, type_value: float(unknown), acl: None, deprecation_notice: None } -- parent: 16
2424
17: CONST integer(1) -- parent: 18
2525
19: CONST float(1.0) -- parent: 20
26-
39: FOR_IN -- hash: 0x3aeb7cd882a3770d -- parent: 51
26+
39: FOR_IN -- hash: 0x780dcdbeadf30f98 -- parent: 51
2727
23: CONST integer(0) -- parent: 39
2828
24: CONST integer(1) -- parent: 39
29-
38: OR -- hash: 0xc7fb5e4615f1997 -- parent: 39
30-
30: NE -- hash: 0xb189c2a481168c22 -- parent: 38
31-
28: FN_CALL test_proto2.add@ii@i -- hash: 0x4b8def611ce41371 -- parent: 30
29+
38: OR -- hash: 0x49a206ca8caeb222 -- parent: 39
30+
30: NE -- hash: 0xf55902e71cd37238 -- parent: 38
31+
28: FN_CALL test_proto2.add@a:i,b:i@i -- hash: 0x261e822f79c74aad -- parent: 30
3232
26: CONST integer(1) -- parent: 28
3333
27: CONST integer(2) -- parent: 28
3434
29: CONST integer(0) -- parent: 30

0 commit comments

Comments
 (0)