mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Reuse function argument slots and defer allocation of return variable slots in EVMCodeTransform.
This commit is contained in:
@@ -12,18 +12,17 @@
|
||||
// PUSH1 0xD
|
||||
// JUMP
|
||||
// JUMPDEST
|
||||
// PUSH1 0x16
|
||||
// PUSH1 0x15
|
||||
// JUMP
|
||||
// JUMPDEST
|
||||
// POP
|
||||
// POP
|
||||
// PUSH1 0x0
|
||||
// JUMPDEST
|
||||
// SWAP3
|
||||
// SWAP2
|
||||
// POP
|
||||
// POP
|
||||
// SWAP1
|
||||
// JUMP
|
||||
// JUMPDEST
|
||||
// PUSH1 0x20
|
||||
// PUSH1 0x1F
|
||||
// PUSH1 0x4
|
||||
// PUSH1 0x3
|
||||
// PUSH1 0xD
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
// PUSH1 0x8
|
||||
// JUMP
|
||||
// JUMPDEST
|
||||
// POP
|
||||
// POP
|
||||
// JUMPDEST
|
||||
// POP
|
||||
// POP
|
||||
// JUMP
|
||||
// JUMPDEST
|
||||
|
||||
@@ -8,18 +8,17 @@
|
||||
// ====
|
||||
// stackOptimization: true
|
||||
// ----
|
||||
// PUSH1 0x11
|
||||
// PUSH1 0x10
|
||||
// JUMP
|
||||
// JUMPDEST
|
||||
// POP
|
||||
// POP
|
||||
// POP
|
||||
// POP
|
||||
// PUSH1 0x0
|
||||
// PUSH1 0x0
|
||||
// JUMPDEST
|
||||
// SWAP5
|
||||
// POP
|
||||
// SWAP5
|
||||
// SWAP3
|
||||
// POP
|
||||
// POP
|
||||
// POP
|
||||
// SWAP1
|
||||
// SWAP2
|
||||
// JUMP
|
||||
// JUMPDEST
|
||||
|
||||
+11
-12
@@ -4,14 +4,18 @@
|
||||
// ====
|
||||
// stackOptimization: true
|
||||
// ----
|
||||
// PUSH1 0x1F
|
||||
// PUSH1 0x1E
|
||||
// JUMP
|
||||
// JUMPDEST
|
||||
// PUSH1 0x0
|
||||
// PUSH1 0x0
|
||||
// PUSH1 0x3
|
||||
// SWAP4
|
||||
// POP
|
||||
// PUSH1 0x3
|
||||
// SWAP1
|
||||
// POP
|
||||
// POP
|
||||
// POP
|
||||
// POP
|
||||
// PUSH1 0x0
|
||||
// PUSH1 0x0
|
||||
// PUSH1 0x9
|
||||
// PUSH1 0x2
|
||||
// SWAP2
|
||||
@@ -21,12 +25,7 @@
|
||||
// MSTORE
|
||||
// POP
|
||||
// JUMPDEST
|
||||
// SWAP5
|
||||
// POP
|
||||
// SWAP5
|
||||
// SWAP3
|
||||
// POP
|
||||
// POP
|
||||
// POP
|
||||
// SWAP1
|
||||
// SWAP2
|
||||
// JUMP
|
||||
// JUMPDEST
|
||||
|
||||
@@ -14,19 +14,19 @@
|
||||
// JUMP
|
||||
// JUMPDEST
|
||||
// PUSH1 0x0
|
||||
// DUP2
|
||||
// SWAP2
|
||||
// POP
|
||||
// DUP1
|
||||
// POP
|
||||
// PUSH1 0x3
|
||||
// SWAP2
|
||||
// POP
|
||||
// DUP2
|
||||
// SWAP1
|
||||
// POP
|
||||
// JUMPDEST
|
||||
// SWAP3
|
||||
// DUP1
|
||||
// SWAP2
|
||||
// POP
|
||||
// POP
|
||||
// JUMPDEST
|
||||
// SWAP1
|
||||
// JUMP
|
||||
// JUMPDEST
|
||||
// PUSH1 0x7
|
||||
|
||||
@@ -10,15 +10,14 @@
|
||||
// ====
|
||||
// stackOptimization: true
|
||||
// ----
|
||||
// PUSH1 0x15
|
||||
// PUSH1 0x14
|
||||
// JUMP
|
||||
// JUMPDEST
|
||||
// POP
|
||||
// POP
|
||||
// PUSH1 0x0
|
||||
// JUMPDEST
|
||||
// SWAP3
|
||||
// SWAP2
|
||||
// POP
|
||||
// POP
|
||||
// SWAP1
|
||||
// JUMP
|
||||
// JUMPDEST
|
||||
// PUSH1 0x0
|
||||
@@ -28,13 +27,13 @@
|
||||
// SWAP2
|
||||
// JUMP
|
||||
// JUMPDEST
|
||||
// PUSH1 0x1F
|
||||
// PUSH1 0x1E
|
||||
// PUSH1 0x2
|
||||
// PUSH1 0x1
|
||||
// PUSH1 0x3
|
||||
// JUMP
|
||||
// JUMPDEST
|
||||
// PUSH1 0x29
|
||||
// PUSH1 0x28
|
||||
// PUSH1 0x4
|
||||
// PUSH1 0x3
|
||||
// PUSH1 0x3
|
||||
@@ -43,12 +42,12 @@
|
||||
// SWAP1
|
||||
// POP
|
||||
// POP
|
||||
// PUSH1 0x32
|
||||
// PUSH1 0xC
|
||||
// PUSH1 0x31
|
||||
// PUSH1 0xB
|
||||
// JUMP
|
||||
// JUMPDEST
|
||||
// PUSH1 0x38
|
||||
// PUSH1 0xC
|
||||
// PUSH1 0x37
|
||||
// PUSH1 0xB
|
||||
// JUMP
|
||||
// JUMPDEST
|
||||
// SWAP2
|
||||
|
||||
Reference in New Issue
Block a user