Optimize exp when base is -1

This commit is contained in:
Harikrishnan Mulackal
2020-09-29 17:44:09 +02:00
parent 2037b7d6b8
commit 2b9f040c48
6 changed files with 87 additions and 0 deletions
+29
View File
@@ -0,0 +1,29 @@
pragma experimental ABIEncoderV2;
contract C {
function exp_neg_one(uint exponent) public returns(int) {
return (-1)**exponent;
}
function exp_two(uint exponent) public returns(uint) {
return 2**exponent;
}
function exp_zero(uint exponent) public returns(uint) {
return 0**exponent;
}
function exp_one(uint exponent) public returns(uint) {
return 1**exponent;
}
}
// ====
// optimize: false
// optimize-yul: false
// ----
// creation:
// codeDepositCost: 119800
// executionCost: 165
// totalCost: 119965
// external:
// exp_neg_one(uint256): 2259
// exp_one(uint256): infinite
// exp_two(uint256): infinite
// exp_zero(uint256): infinite
@@ -0,0 +1,29 @@
pragma experimental ABIEncoderV2;
contract C {
function exp_neg_one(uint exponent) public returns(int) {
return (-1)**exponent;
}
function exp_two(uint exponent) public returns(uint) {
return 2**exponent;
}
function exp_zero(uint exponent) public returns(uint) {
return 0**exponent;
}
function exp_one(uint exponent) public returns(uint) {
return 1**exponent;
}
}
// ====
// optimize: true
// optimize-yul: true
// ----
// creation:
// codeDepositCost: 53200
// executionCost: 105
// totalCost: 53305
// external:
// exp_neg_one(uint256): 1962
// exp_one(uint256): 1915
// exp_two(uint256): 1893
// exp_zero(uint256): 1937