Commit Graph

131 Commits

Author SHA1 Message Date
Kamil Śliwak
465e4d4088 Extract more functions for generating function and variable names into IRNames 2020-05-15 14:51:00 +02:00
Kamil Śliwak
7af7273b60 Move static functions for constructing names from IRGenerationContext into the new Common module 2020-05-14 19:48:00 +02:00
Alexander Arlt
91e9d54c71 [Sol - Yul] Add support for ripemd160 & ecrecover. 2020-05-14 10:44:39 -05:00
Daniel Kirchner
c2f5a66a79 Implement .creationCode for Sol->Yul. 2020-05-11 18:51:51 +02:00
chriseth
c0bf529236 Support bare calls. 2020-05-11 15:11:46 +02:00
chriseth
0248303c15
Merge pull request #8872 from ethereum/int-min-max
implemented type(X).min and type(X).max for all integer types
2020-05-11 15:08:19 +02:00
Harikrishnan Mulackal
e54c4eecfc implemented type(X).min and type(X).max for all integer types 2020-05-11 14:51:13 +05:30
chriseth
a0e291bd06 Implement Yul IR generation for abi.encode* 2020-05-07 19:39:15 +02:00
chriseth
f38cf85482 Use vector of slots. 2020-05-07 17:54:04 +02:00
chriseth
f42dc70c9f
Merge pull request #8863 from ethereum/nonReversedEncoder
Introduce non-reversed version of tupleEncoder.
2020-05-07 15:47:32 +02:00
chriseth
e986fde0c1 Introduce non-reversed version of tupleEncoder. 2020-05-07 15:08:09 +02:00
chriseth
6fb112fa8e Remove some unneeded headers. 2020-05-07 01:49:46 +02:00
Alex Beregszaszi
327c75bc1b IR generation for shifts 2020-05-06 19:14:23 +02:00
chriseth
76275cf34a
Merge pull request #8824 from ethereum/solYulDirtyMemory
Fix accessing memory reference types in yul codegen and clean up on memory reads.
2020-05-06 16:17:19 +02:00
Daniel Kirchner
234ffcf278
Merge pull request #8718 from ethereum/irConstants
IR generation for constants.
2020-05-06 16:05:17 +02:00
Daniel Kirchner
c25a3eba14 Fix accessing memory reference types in yul codegen and clean up on memory reads. 2020-05-06 11:34:11 +02:00
chriseth
02c20698c9 IR generation for constants. 2020-05-05 17:07:55 +02:00
Daniel Kirchner
7ad319687d Sol->Yul: Add cleanup to operations. 2020-05-05 13:06:01 +02:00
Djordje Mijovic
e8f6f63e77 [Sol2Yul] Adding support for builtin revert(string) 2020-05-05 07:05:39 +02:00
chriseth
1aef9c7d20
Merge pull request #8777 from ethereum/sol_yul_simplefunctions
[Sol - Yul] Add some built-in functions.
2020-05-04 16:07:10 +02:00
chriseth
51ccb1519f Yul codegen for immutables. 2020-05-04 15:00:50 +02:00
Alexander Arlt
a9f4d14010 [Sol - Yul] Add support for send(..) & transfer(..) 2020-05-01 08:32:51 -05:00
Alexander Arlt
151e637336 [Sol - Yul] Add some built-in functions.
- simplifications for GasLeft, Selfdestruct and BlockHash.
- add support for addmod & mulmod.
2020-04-30 14:10:09 -05:00
Djordje Mijovic
f3f729549d [Sol->Yul] Enabling creation function call 2020-04-27 16:15:57 +02:00
Alex Beregszaszi
99aa821410
Merge pull request #8720 from ethereum/irSha256
IR generation for sha256.
2020-04-27 13:44:26 +01:00
Alex Beregszaszi
aa0a69b47f IRGenerator: include assertion for FunctionType::Kind::Declaration 2020-04-27 12:03:44 +01:00
chriseth
dda883b585 IR generation for sha256. 2020-04-27 11:10:20 +02:00
Alexander Arlt
66edaf43f4 [Sol - Yul] Add support for built-in logN(). 2020-04-25 11:10:28 -05:00
Alexander Arlt
2fa26f4e92 [Sol - Yul] Add support for built-in selfdestruct(..). 2020-04-24 17:03:41 -05:00
Kamil Śliwak
d3da878200 Enable internal library calls 2020-04-24 15:00:51 +02:00
Kamil Śliwak
56a85d6cb3 IRGeneratorForStatements: Handle internal calls to functions from specific base contracts as static calls rather than calls via pointers 2020-04-24 15:00:16 +02:00
Alexander Arlt
aafa4583df [Sol - Yul] Add support for built-in gasleft(). 2020-04-23 17:14:03 -05:00
chriseth
16ed53ddd0
Merge pull request #8591 from mijovic/sol2YulConstructorParams
[Sol2Yul] Adding support for constructors with parameters (inheritance)
2020-04-23 12:56:54 +02:00
chriseth
edef6a0edd
Merge pull request #8757 from ethereum/removeMove
Remove unnecessary move.
2020-04-23 12:28:33 +02:00
chriseth
a371910674
Merge pull request #8642 from ethereum/interfaceid
Add support for interfaceId.
2020-04-23 12:24:49 +02:00
chriseth
b864fe1c43 Remove unnecessary move. 2020-04-23 12:13:26 +02:00
Djordje Mijovic
5329da93fb [Sol2Yul] Adding support for constructors with parameters in case of inheritance 2020-04-22 14:47:08 +02:00
chriseth
4908101ad7 Yul IR generation for member access to type types. 2020-04-22 11:25:27 +02:00
chriseth
1d8e742296
Merge pull request #8684 from ethereum/yulForSelector
Yul codegen for `.selector`.
2020-04-20 16:32:11 +02:00
chriseth
55483445e9
Merge pull request #8663 from ethereum/ir-function-generation-queue
[Sol->Yul] IR function generation queue (refactor)
2020-04-20 15:17:53 +02:00
hrkrshnn
4760b8589d Replaced all instances of lValueRequested to willBeWrittenTo 2020-04-20 12:33:30 +05:30
Kamil Śliwak
c7947c1af6 Implement lazy function generation using function generation queue 2020-04-17 13:28:07 +02:00
Alexander Arlt
3754a86ab2 Add support for interfaceID. 2020-04-16 12:17:40 -05:00
chriseth
f271dfa2e2 Yul codegen for .selector. 2020-04-16 13:42:58 +02:00
chriseth
06adbc2c59 Implement bit operations. 2020-04-16 00:33:45 +02:00
Daniel Kirchner
0c5c93f3c2 Fix tuple assignments for empty tuples in Yul IR. 2020-04-15 11:10:52 +02:00
Christian Parpart
d00d3c45b1 [Sol2Yul] Implements codegen part for try/catch statements. 2020-04-14 18:42:37 +02:00
Leonardo Alt
39ff0deb05 Zero initialize memory arrays 2020-04-02 15:55:18 +02:00
chriseth
2853cba3e5 Fix call to internalDispatch. 2020-04-01 12:13:32 +02:00
chriseth
173f234860 Refactor: Replace inheritance hierarchy by most derived contract. 2020-03-26 18:27:39 +01:00