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 |
|
chriseth
|
05541e5adb
|
Fixed internal error related to ecrecover and ABIEncoderV2.
|
2019-02-19 14:17:03 +01:00 |
|
chriseth
|
d5791fef41
|
Fix combination of delegatecall and ABIEncoderV2.
We can set the flag to false for bare delegatecall, because we always
send a memory string and never a storage reference.
|
2019-02-19 13:57:03 +01:00 |
|
chriseth
|
c690f679cb
|
Allow cleanup for mappings (do nothing).
|
2019-02-18 18:50:22 +01:00 |
|
Daniel Kirchner
|
0408130338
|
Merge pull request #6003 from ethereum/moreStyleChecks
Even more style checks.
|
2019-02-15 11:52:32 +01:00 |
|
Daniel Kirchner
|
809b9a95f9
|
Even more style checks.
|
2019-02-14 11:53:00 +01:00 |
|
Daniel Kirchner
|
8ca6715e18
|
More style checks.
|
2019-02-14 11:41:20 +01:00 |
|
Daniel Kirchner
|
32190dac48
|
Add stride helpers to ArrayType.
|
2019-02-14 10:51:39 +01:00 |
|
chriseth
|
1a823f0bf8
|
Fix tabs/spaces.
|
2019-02-13 17:05:48 +01:00 |
|
chriseth
|
17ea467e5b
|
Fix style of "const".
|
2019-02-13 16:34:53 +01:00 |
|
chriseth
|
02373c2225
|
Adjust uses of AsmCodeGen.
|
2019-02-13 11:35:49 +01:00 |
|
chriseth
|
1ff6f2c71c
|
Move AsmCodeGen.
|
2019-02-13 11:20:15 +01:00 |
|
Daniel Kirchner
|
0e4912a203
|
ABIEncoderV2: Implement calldata structs without dynamically encoded members.
|
2019-02-11 15:46:58 +01:00 |
|
chriseth
|
a8d0ef4bad
|
Allow indexed structs in events with encoder v2.
|
2019-02-11 11:37:47 +01:00 |
|
chriseth
|
a08f4f43fa
|
Add packed encoder V2.
|
2019-02-11 11:37:47 +01:00 |
|
chriseth
|
1b9d30f05f
|
Packed encoding.
|
2019-02-11 11:37:47 +01:00 |
|
chriseth
|
fc18258250
|
Remove type check that is covered by assertions.
|
2019-02-07 12:02:15 +01:00 |
|
chriseth
|
49f8fa4cfe
|
Extract storing length to its own function.
|
2019-02-06 14:03:49 +01:00 |
|
chriseth
|
77baf6caf7
|
Compilability checker.
|
2019-02-04 17:32:05 +01:00 |
|
chriseth
|
cd8cf7745b
|
Merge pull request #5888 from ethereum/betterStackErrorMessages
Better error message for out of stack in assembly.
|
2019-02-04 15:26:55 +01:00 |
|
chriseth
|
17a1e7aed5
|
Better error message for out of stack in assembly.
|
2019-01-30 12:24:10 +01:00 |
|
chriseth
|
35483422f3
|
Pad code to multiple of 32 bytes.
|
2019-01-30 11:31:28 +01:00 |
|
chriseth
|
64312584dc
|
Do not provide access to external assembly variables from within functions.
|
2019-01-28 14:42:38 +01:00 |
|
chriseth
|
628d665474
|
Merge pull request #5843 from ethereum/abi-typos
Do not ignore revertOnFailure flag when validating Address/Contract
|
2019-01-22 18:44:09 +01:00 |
|
Alex Beregszaszi
|
3f2898ea47
|
Do not ignore revertOnFailure flag when validating Address/Contract
|
2019-01-22 14:45:08 +00:00 |
|
chriseth
|
01e87cfc08
|
Refactor struct encoder.
|
2019-01-22 14:45:25 +01:00 |
|
chriseth
|
7a69455c13
|
Provide ABI encoding options as single struct parameter.
|
2019-01-21 16:43:32 +01:00 |
|
chriseth
|
29f6aa7d56
|
Do not create a copy of the assembly.
|
2019-01-17 20:36:48 +01:00 |
|
chriseth
|
e6fee257e6
|
Code generation for access to contract code.
|
2019-01-17 20:36:48 +01:00 |
|
chriseth
|
2fcfb216b5
|
Syntax for meta type information.
|
2019-01-17 20:36:48 +01:00 |
|
Christian Parpart
|
62fe57479e
|
make use of C++ = default constructor declarations as well as more non-static member initialization syntax.
|
2018-12-19 11:26:42 +01:00 |
|
chriseth
|
d8218b7eef
|
Formatting.
|
2018-12-18 23:50:39 +01:00 |
|
Mathias Baumann
|
1b8570f829
|
Only generate sort/search code when interface functions exist
|
2018-12-17 21:24:37 +01:00 |
|
Leonardo Alt
|
ab76676271
|
Sort includes in libsolidity/codegen
|
2018-12-17 17:06:11 +01:00 |
|
Alex Beregszaszi
|
c863cbf80d
|
Add missing header guards
|
2018-12-12 15:47:05 +00:00 |
|
chriseth
|
fb3a0ac1c7
|
Codegen for object access.
|
2018-12-11 19:24:44 +01:00 |
|
chriseth
|
8d49e53995
|
Provide Dialect to EVMCodeTransform.
|
2018-12-11 19:24:31 +01:00 |
|
chriseth
|
b5deca0383
|
Merge pull request #4779 from ethereum/optimise-string-literals
Decide better in storing string literals as data
|
2018-12-11 17:50:14 +01:00 |
|
Mathias Baumann
|
2f6dc2e773
|
Replace push_back with emplace_back where it makes sense
|
2018-12-10 19:02:39 +01:00 |
|
chriseth
|
53f531ecb0
|
Set codecopy limit for data to 32 bytes.
|
2018-12-10 17:11:48 +01:00 |
|
liangdzou
|
362648a450
|
Reuse stack slots in Yul to EVM code generation.
|
2018-12-10 14:28:56 +01:00 |
|
chriseth
|
6a9e8a6fe3
|
Merge pull request #4936 from ethereum/binSelect
Binary search for dispatch.
|
2018-12-07 00:55:09 +01:00 |
|
chriseth
|
f6ed29b88b
|
Extend abstract assembly to be able to handle sub-objects.
|
2018-12-06 14:32:04 +01:00 |
|
chriseth
|
4721cf332f
|
Expose EthAssemblyAdapter.
|
2018-12-06 14:32:04 +01:00 |
|
Christian Parpart
|
073b03d90c
|
liblangutil: refactor SourceReferenceFormatter, splitting out retrieval and making use of new SourceLocation's CharStream knowledge
|
2018-12-06 14:01:01 +01:00 |
|
chriseth
|
7f39c3e522
|
Binary search for dispatch.
|
2018-12-06 13:07:14 +01:00 |
|
chriseth
|
7ee1ddc172
|
Switch namespaces.
|
2018-12-04 15:36:03 +01:00 |
|
chriseth
|
0b1125281a
|
Remove some includes.
|
2018-12-04 15:31:00 +01:00 |
|
chriseth
|
3ebb78a886
|
Adjust include paths.
|
2018-12-04 15:20:29 +01:00 |
|
chriseth
|
0ec7a0e72c
|
Move AsmCodeGen.
|
2018-12-04 15:20:23 +01:00 |
|
chriseth
|
99db4e3ff4
|
Introduce the concept of builtin functions.
|
2018-12-04 12:06:33 +01:00 |
|
chriseth
|
aaeb74f592
|
Merge pull request #5537 from ethereum/cp-SourceLocation-related-refactoring
[1/3] SourceLocation related refactoring.
|
2018-11-30 23:45:31 +01:00 |
|
Christian Parpart
|
435f7b3b72
|
liblangutil: Scanner: remove superfluous sourceName field (it's in CharStream already)
Also, ParserBase::sourceName() was dead code. Eliminating it should
increase test coverage (how sneaky) :-)
|
2018-11-30 17:07:17 +01:00 |
|
chriseth
|
73a64da041
|
Fix bug related to state variables of function type accessed via base contract.
|
2018-11-29 19:30:27 +01:00 |
|
Christian Parpart
|
22eff22492
|
liblangutil: extends CharStream to know about the respective (file-)name (and adapt codebase to it)
|
2018-11-29 12:45:27 +01:00 |
|
hydai
|
9326adc3db
|
Replace IntegerType(256) with static function IntegerType::uint256()
|
2018-11-29 17:07:18 +08:00 |
|
Daniel Kirchner
|
30e6f8d3fb
|
Allow mapping arguments for public and external library functions.
|
2018-11-26 16:31:46 +01:00 |
|
chriseth
|
764d618c44
|
Merge pull request #5404 from ethereum/jumpFixes
Annotate jump from calldata decode to function as "jump in".
|
2018-11-26 16:08:04 +01:00 |
|
chriseth
|
0b474d5299
|
Merge pull request #5497 from ethereum/langutil-SourceReferenceFormatter
Moving SourceReferenceFormatter into langutil namespace.
|
2018-11-26 12:44:25 +01:00 |
|
chriseth
|
bc137c2eeb
|
Merge pull request #5485 from ethereum/refactorCallableFunction
Refactor callable function
|
2018-11-26 12:34:43 +01:00 |
|
chriseth
|
0e08fb7469
|
Use "in" tag for jumps from unpacker to function.
|
2018-11-26 11:02:58 +01:00 |
|