Skip to content

Commit e4a5b77

Browse files
authored
Merge pull request #16558 from argotorg/enable-ssa-cfg-on-all-external-contracts
Tests: Run SSA-CFG on external contracts in semantic tests
2 parents 047b337 + 8ff9565 commit e4a5b77

File tree

6 files changed

+32
-0
lines changed

6 files changed

+32
-0
lines changed

test/libsolidity/semanticTests/externalContracts/FixedFeeRegistrar.sol

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,9 @@ contract FixedFeeRegistrar is Registrar {
7272
}
7373
uint constant c_fee = 69 ether;
7474
}
75+
// ====
76+
// compileViaSSACFG: true
77+
// experimental: true
7578
// ----
7679
// constructor()
7780
// gas irOptimized: 78076
@@ -80,6 +83,8 @@ contract FixedFeeRegistrar is Registrar {
8083
// gas legacy code: 792400
8184
// gas legacyOptimized: 84598
8285
// gas legacyOptimized code: 388000
86+
// gas ssaCFGOptimized: 80860
87+
// gas ssaCFGOptimized code: 345400
8388
// reserve(string), 69 ether: 0x20, 3, "abc" ->
8489
// ~ emit Changed(string): #0x4e03657aea45a94fc7d47ba826c8d667c0d1e6e33a64a036ec44f58fa12d6c45
8590
// gas irOptimized: 45741

test/libsolidity/semanticTests/externalContracts/base64.sol

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ contract test {
3131
//
3232
// ====
3333
// EVMVersion: >=constantinople
34+
// compileViaSSACFG: true
35+
// experimental: true
3436
// ----
3537
// constructor()
3638
// gas irOptimized: 79076
@@ -39,6 +41,8 @@ contract test {
3941
// gas legacy code: 629800
4042
// gas legacyOptimized: 87926
4143
// gas legacyOptimized code: 429800
44+
// gas ssaCFGOptimized: 80162
45+
// gas ssaCFGOptimized code: 334800
4246
// encode_inline_asm(bytes): 0x20, 0 -> 0x20, 0
4347
// encode_inline_asm(bytes): 0x20, 1, "f" -> 0x20, 4, "Zg=="
4448
// encode_inline_asm(bytes): 0x20, 2, "fo" -> 0x20, 4, "Zm8="
@@ -57,7 +61,9 @@ contract test {
5761
// gas irOptimized: 1406025
5862
// gas legacy: 1554038
5963
// gas legacyOptimized: 1132031
64+
// gas ssaCFGOptimized: 1391028
6065
// encode_no_asm_large()
6166
// gas irOptimized: 3512081
6267
// gas legacy: 4600082
6368
// gas legacyOptimized: 2813075
69+
// gas ssaCFGOptimized: 3097084

test/libsolidity/semanticTests/externalContracts/prbmath_signed.sol

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ contract test {
4646
assert(z1 == z2);
4747
}
4848
}
49+
// ====
50+
// compileViaSSACFG: true
51+
// experimental: true
4952
// ----
5053
// constructor()
5154
// gas irOptimized: 177903
@@ -54,6 +57,8 @@ contract test {
5457
// gas legacy code: 2205000
5558
// gas legacyOptimized: 178012
5659
// gas legacyOptimized code: 1669600
60+
// gas ssaCFGOptimized: 177301
61+
// gas ssaCFGOptimized code: 1666800
5762
// div(int256,int256): 3141592653589793238, 88714123 -> 35412542528203691288251815328
5863
// gas irOptimized: 22045
5964
// gas legacy: 22736

test/libsolidity/semanticTests/externalContracts/prbmath_unsigned.sol

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ contract test {
4646
assert(z1 == z2);
4747
}
4848
}
49+
// ====
50+
// compileViaSSACFG: true
51+
// experimental: true
4952
// ----
5053
// constructor()
5154
// gas irOptimized: 170626
@@ -54,6 +57,8 @@ contract test {
5457
// gas legacy code: 1999000
5558
// gas legacyOptimized: 168857
5659
// gas legacyOptimized code: 1556200
60+
// gas ssaCFGOptimized: 168323
61+
// gas ssaCFGOptimized code: 1553000
5762
// div(uint256,uint256): 3141592653589793238, 88714123 -> 35412542528203691288251815328
5863
// gas irOptimized: 21912
5964
// gas legacy: 22475

test/libsolidity/semanticTests/externalContracts/ramanujan_pi.sol

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ contract test {
3131
ret = prb_scale(1).div(ret);
3232
}
3333
}
34+
// ====
35+
// compileViaSSACFG: true
36+
// experimental: true
3437
// ----
3538
// constructor()
3639
// gas irOptimized: 77816
@@ -39,6 +42,8 @@ contract test {
3942
// gas legacy code: 523600
4043
// gas legacyOptimized: 82667
4144
// gas legacyOptimized code: 369200
45+
// gas ssaCFGOptimized: 80456
46+
// gas ssaCFGOptimized code: 344400
4247
// prb_pi() -> 3141592656369545286
4348
// gas irOptimized: 55036
4449
// gas legacy: 100657

test/libsolidity/semanticTests/externalContracts/strings.sol

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,9 @@ contract test {
4747
return d.toSlice().len();
4848
}
4949
}
50+
// ====
51+
// compileViaSSACFG: true
52+
// experimental: true
5053
// ----
5154
// constructor()
5255
// gas irOptimized: 95303
@@ -55,6 +58,8 @@ contract test {
5558
// gas legacy code: 932600
5659
// gas legacyOptimized: 102639
5760
// gas legacyOptimized code: 612400
61+
// gas ssaCFGOptimized: 97417
62+
// gas ssaCFGOptimized code: 547000
5863
// toSlice(string): 0x20, 11, "hello world" -> 11, 0xa0
5964
// gas irOptimized: 22646
6065
// gas legacy: 23168
@@ -75,3 +80,4 @@ contract test {
7580
// gas irOptimized: 1976778
7681
// gas legacy: 4234020
7782
// gas legacyOptimized: 2318668
83+
// gas ssaCFGOptimized: 2080148

0 commit comments

Comments
 (0)