chriseth
|
1c16124a09
|
Constant optimiser for Yul.
|
2019-05-28 11:35:07 +02:00 |
|
chriseth
|
fbf189151d
|
[SolYul] Division.
|
2019-05-27 17:53:46 +02:00 |
|
chriseth
|
5b1a984882
|
Explicitly turn uninitialized internal function pointers into invalid function when loaded from storage.
|
2019-05-27 17:26:37 +02:00 |
|
chriseth
|
a600126703
|
Merge pull request #6833 from sifmelcara/fix-struct-array-mapping
Fix assignment of struct containing array of mappings
|
2019-05-27 11:14:28 +02:00 |
|
mingchuan
|
bf8af89bba
|
Fix assignment of struct containing array of mappings
|
2019-05-25 01:33:49 +08:00 |
|
chriseth
|
fb40063253
|
Compound assignment.
|
2019-05-23 21:32:30 +02:00 |
|
Mathias Baumann
|
981983089c
|
[Sol -> Yul] Implement delete for function pointers
|
2019-05-23 15:51:59 +02:00 |
|
Mathias Baumann
|
81702717b0
|
[Sol -> Yul] Enable function pointer comparison
|
2019-05-23 12:52:50 +02:00 |
|
chriseth
|
97fa21841d
|
Use different way to fall back to FunctionalInstruction for loose assembly.
|
2019-05-23 11:30:12 +02:00 |
|
chriseth
|
e324deabd6
|
Merge pull request #6740 from ethereum/unary-ops
[Sol -> Yul] Implement Int/Bool Unary: ++, --, ~, !
|
2019-05-20 18:06:01 +02:00 |
|
Daniel Kirchner
|
b6f4d4e9bc
|
[Sol - Yul] Implement checked multiplication.
|
2019-05-20 17:36:53 +02:00 |
|
Mathias Baumann
|
86000fdcce
|
[Sol -> Yul] Implement unary - , +
|
2019-05-20 16:14:46 +02:00 |
|
Mathias Baumann
|
7dbcb80523
|
[Sol -> Yul] Implement Int/Bool Unary: ++, --, ~, !
|
2019-05-20 11:43:12 +02:00 |
|
chriseth
|
f2ae30f620
|
Fix handling of structs of dynamic size as constructor parameters.
|
2019-05-16 17:10:54 +02:00 |
|
Mathias Baumann
|
f5980f08cc
|
Remove m_code from IRValue
Only one place to append to m_code avoids confusion and bugs
|
2019-05-14 11:15:04 +02:00 |
|
chriseth
|
8c232e8196
|
Merge pull request #6690 from ethereum/useConditionalWhiskers
Use conditional whiskers
|
2019-05-13 10:23:30 +02:00 |
|
chriseth
|
a28b6224a4
|
Merge pull request #6714 from ethereum/finishERC20
Finish ERC20
|
2019-05-13 10:00:38 +02:00 |
|
chriseth
|
e047c8d4d9
|
Code generator for external function calls.
|
2019-05-09 18:55:12 +02:00 |
|
chriseth
|
63a072f122
|
[SolYul] Partially implement constructor.
|
2019-05-09 17:57:33 +02:00 |
|
chriseth
|
021b312264
|
Revert with reason.
|
2019-05-09 17:57:33 +02:00 |
|
chriseth
|
60a42f58a0
|
Fix internal function calls.
|
2019-05-09 17:57:33 +02:00 |
|
chriseth
|
45ee3fc007
|
Subtraction for unsigned integers.
|
2019-05-09 17:57:30 +02:00 |
|
chriseth
|
b3e51bcae1
|
Some more compression.
|
2019-05-09 15:25:21 +02:00 |
|
chriseth
|
d3d205b6eb
|
Some more compression.
|
2019-05-09 15:25:21 +02:00 |
|
chriseth
|
c6b9fa96ae
|
Use conditional Whiskers.
|
2019-05-09 15:25:21 +02:00 |
|
Daniel Kirchner
|
b83f6d8d46
|
[Sol -> Yul] Implement if statements
|
2019-05-09 14:52:20 +02:00 |
|
Mathias Baumann
|
0abe00d393
|
[Sol -> Yul] Fix ForLoops and implement WhileLoops
|
2019-05-09 09:46:19 +02:00 |
|
chriseth
|
595544645e
|
Mappings.
|
2019-05-08 15:54:52 +02:00 |
|
chriseth
|
b4d6f847b4
|
Events.
|
2019-05-08 13:29:11 +02:00 |
|
chriseth
|
acca390ef5
|
Most trivial members.
|
2019-05-07 17:19:45 +02:00 |
|
chriseth
|
b99ad2aaa3
|
Merge pull request #6639 from ethereum/yul-require-assert
Yul generation of "require" and "assert"
|
2019-05-07 16:59:37 +02:00 |
|
chriseth
|
f68c09272b
|
Simple tuple expressions.
|
2019-05-07 15:59:56 +02:00 |
|
chriseth
|
c604481cef
|
Logical operators.
|
2019-05-07 15:59:35 +02:00 |
|
chriseth
|
785b369b89
|
Add type helper function.
|
2019-05-07 12:36:54 +02:00 |
|
chriseth
|
3fa4c3da1e
|
Comparison operations.
|
2019-05-07 12:35:05 +02:00 |
|
chriseth
|
4069b19734
|
Unary operation for literals.
|
2019-05-07 12:35:04 +02:00 |
|
Mathias Baumann
|
7f14352bbf
|
Yul generation of require and assert
|
2019-05-07 12:19:41 +02:00 |
|
chriseth
|
e6f8aaafa5
|
Conversion for string literals.
|
2019-05-07 11:55:17 +02:00 |
|
chriseth
|
3365cb9b4a
|
Add type helper function.
|
2019-05-06 12:01:13 +02:00 |
|
chriseth
|
7c62193524
|
Change some AST elements to post visit.
|
2019-05-06 11:43:18 +02:00 |
|
chriseth
|
aa4d4afcdc
|
LValues and state variables of value type.
|
2019-05-02 17:03:22 +02:00 |
|
chriseth
|
31b7037749
|
Move storage access functions to utils.
|
2019-05-02 12:11:41 +02:00 |
|
chriseth
|
e66ab6c036
|
Helper function to define the value of expressions.
|
2019-04-30 13:10:37 +02:00 |
|
chriseth
|
0eef51ffa4
|
Conversion during binary operation.
|
2019-04-30 13:10:37 +02:00 |
|
chriseth
|
597d37b731
|
Implement for loops.
|
2019-04-30 13:10:37 +02:00 |
|
chriseth
|
c1ca16cd33
|
Implement return.
|
2019-04-30 13:10:36 +02:00 |
|
Erik Kundt
|
381ed5a302
|
Unifies behavior for member access of ABI functions.
|
2019-04-29 14:27:10 +02:00 |
|
Erik Kundt
|
c02257207b
|
Removes assert on magic ABI functions during codegen.
|
2019-04-26 15:01:35 +02:00 |
|
chriseth
|
309d3e65cf
|
Merge pull request #6585 from ethereum/fixInvalidFunctionTags
Fix invalid function tags
|
2019-04-25 16:30:37 +02:00 |
|
chriseth
|
5b991c1e59
|
Fix use of uninitialized functions stored in storage.
|
2019-04-25 15:40:48 +02:00 |
|
Mathias Baumann
|
1ef213cc15
|
Sol -> Yul: Implement explicit cast
|
2019-04-24 22:52:17 +02:00 |
|
Mathias Baumann
|
441369d5f1
|
Sol -> Yul Generator: Mark "return" as unimplemented
|
2019-04-24 22:52:17 +02:00 |
|
Mathias Baumann
|
944ac6fb6d
|
Sol -> Yul Generation: Implicit conversions
|
2019-04-24 22:52:17 +02:00 |
|
Mathias Baumann
|
3d061c83d7
|
IR: Generate inline asm blocks
|
2019-04-18 16:49:19 +02:00 |
|
Christian Parpart
|
721bf367a3
|
[libsolidity] TypeProvider: eliminate redundant "Type" suffix in provider function signatures.
|
2019-04-17 14:42:07 +02:00 |
|
Christian Parpart
|
58a45f2cb6
|
[libsolidity] TypeProvider: adds explicit uint256() accessor and removes default params in integerType(...).
|
2019-04-16 18:28:40 +02:00 |
|
Christian Parpart
|
bf43eebea9
|
libsolidity: Introducing TypeProvider API, for clear type system ownership.
|
2019-04-16 18:26:45 +02:00 |
|
Leonardo
|
dbc9442f9c
|
Merge pull request #6484 from sifmelcara/create-SourceReferenceFormatter-shortcut
Add a shortcut for formatting error information
|
2019-04-12 12:34:08 +02:00 |
|
chriseth
|
565d9837e4
|
Virtual function calls.
|
2019-04-11 15:45:43 +02:00 |
|
chriseth
|
18ab8aeb85
|
Overflow-checked addition.
|
2019-04-11 15:45:14 +02:00 |
|
mingchuan
|
f1374066af
|
Add shortcuts for formatting error information
|
2019-04-10 18:44:45 +08:00 |
|
Mathias Baumann
|
b4380a2137
|
Move convert functions to Yul module
|
2019-04-09 15:31:46 +02:00 |
|
chriseth
|
3df4936b6f
|
Merge pull request #6179 from ethereum/solidity-yul1
Solidity to Yul compiler
|
2019-04-04 16:33:39 +02:00 |
|
chriseth
|
420a7dc3d6
|
Initial IR generator.
|
2019-04-04 15:02:42 +02:00 |
|
Daniel Kirchner
|
91a2a9a9c3
|
Implement ABI encoding of calldata arrays and structs.
|
2019-04-04 13:05:32 +02:00 |
|
Daniel Kirchner
|
d82157d46a
|
Refactor abi encoding functions to prepare implementing calldata arrays and structs.
|
2019-04-04 11:18:03 +02:00 |
|
Daniel Kirchner
|
b0cb330397
|
Allow encoding calldata arrays for base types that do not require cleanup.
|
2019-04-04 11:18:03 +02:00 |
|
Alex Beregszaszi
|
43008dd08e
|
Validate value types in decoder of ABIEncoderV2.
|
2019-04-03 11:32:02 +02:00 |
|
Daniel Kirchner
|
ab8dfed144
|
Implement copying recursive structs from storage to memory.
|
2019-04-02 16:01:44 +02:00 |
|
chriseth
|
529aca5cbd
|
Merge pull request #6407 from ethereum/changeNamespace
Remove "using namespace" from header and move Instruction to dev::eth.
|
2019-03-28 14:32:07 +01:00 |
|
chriseth
|
2308904f68
|
Remove "using namespace" from header and move Instruction to dev::eth.
|
2019-03-28 13:48:11 +01:00 |
|
chriseth
|
a1fe2562c4
|
Move suffixedVariableNameList to utils.
|
2019-03-27 17:14:17 +01:00 |
|
chriseth
|
d079cdbfaa
|
Merge pull request #6362 from ethereum/fixABIEncoderV2StorageRead
Fix abi encoder v2 storage read
|
2019-03-26 10:23:08 +01:00 |
|
Alex Beregszaszi
|
d2185bf529
|
Remove obsolete identifer for the identity precompile
|
2019-03-25 20:57:59 +00:00 |
|
chriseth
|
6b69c31703
|
Fix ABIEncoderV2 array overwrite bug.
|
2019-03-25 18:28:43 +01:00 |
|
chriseth
|
68d4a85575
|
Properly read and clean value types read from storage.
|
2019-03-25 18:28:43 +01:00 |
|
Daniel Kirchner
|
66d6711364
|
ABIFunctions: Split out a function for generating a comma separated list of variable names.
|
2019-03-25 10:58:18 +01:00 |
|
chriseth
|
38cbf8d230
|
Pass "optimize stack allocation" flag down to the stack compressor.
|
2019-03-20 15:03:27 +01:00 |
|
chriseth
|
7c524f794f
|
Also output optimized yul code if requested.
|
2019-03-19 17:24:36 +01:00 |
|
chriseth
|
6d1ed93247
|
Use stack optimizations.
|
2019-03-14 15:34:23 +01:00 |
|
chriseth
|
2e7794d8a6
|
Defensively pad memory for `type(C).name ` to multiples of 32.
|
2019-03-13 18:51:32 +01:00 |
|
Daniel Kirchner
|
66fc7ffab2
|
Allow dynamically encoded calldata structs with ABIEncoderV2.
|
2019-03-11 16:40:13 +01:00 |
|
chriseth
|
4d8c57006b
|
Merge pull request #6195 from ethereum/extractYulUtils
[REF] Extract utility functions from ABI encoder.
|
2019-03-08 00:51:58 +01:00 |
|
Daniel Kirchner
|
f7c6eda2c3
|
Allow calldata arrays with dynamically encoded base type.
|
2019-03-06 18:04:12 +01:00 |
|
chriseth
|
d515d77bfe
|
Extract utility functions from ABI encoder.
|
2019-03-05 22:13:55 +01:00 |
|
chriseth
|
a27ef3489c
|
Allow encoding and decoding functions with empty type list.
|
2019-03-05 15:55:50 +01:00 |
|
Alex Beregszaszi
|
a96cc6e0e8
|
Add allocateMemory helper with value known at compile time
|
2019-03-04 17:46:42 +01:00 |
|
Alex Beregszaszi
|
bd51589f1a
|
Use "if" instead of "switch" in codegen for the deployment time address of a library
|
2019-03-04 15:16:58 +01:00 |
|
chriseth
|
2e0ea16a0f
|
Merge pull request #5959 from ethereum/optimiser2
Introduce global optimiser settings.
|
2019-03-04 12:54:59 +01:00 |
|
chriseth
|
6a32f6e1ac
|
Properly assign reference to context.
|
2019-03-04 12:00:47 +01:00 |
|
chriseth
|
851dd635eb
|
Remove defaults in constructor arguments.
|
2019-03-04 11:41:52 +01:00 |
|
chriseth
|
83d1382e78
|
Take yul optimizer setting into account.
|
2019-03-04 11:40:28 +01:00 |
|
chriseth
|
1ff562d28a
|
Provide full optimiser settings to ContractCompiler.
|
2019-03-04 11:40:28 +01:00 |
|
Alex Beregszaszi
|
cf5c13f9c7
|
Introduce global optimiser settings.
|
2019-03-04 11:40:28 +01:00 |
|
Mathias Baumann
|
e4a52aa2f6
|
Allow dynamic types in public mappings
|
2019-02-26 15:48:54 +01:00 |
|
Alex Beregszaszi
|
d2f493268b
|
Provide access to the name of contracts.
|
2019-02-26 14:07:03 +00:00 |
|
Alex Beregszaszi
|
358ccbe372
|
Properly issue unimplemented assertion on FixedPointType in type conversion
|
2019-02-25 21:21:33 +00:00 |
|
Leonardo Alt
|
2405b2151a
|
EVMVersion in langutil namespace instead of solidity
|
2019-02-25 15:29:57 +01:00 |
|
chriseth
|
7f5b335b47
|
Make EVM version part of EVM dialect.
|
2019-02-21 21:59:46 +01:00 |
|
Mathias Baumann
|
c65a96d189
|
Small documentation fixes in the code
|
2019-02-21 12:54:39 +01:00 |
|