erigon-pulse/cmd
Suhabe Bugrara 8b31944611
Control Flow Analysis (#990)
* First

* More on SA interpreter

* Fixup

* Add cfg action to hack binary that invokes the SaInterpreter. Added an operation handler for PUSH1

* refactor cfg tests into separate file

* Move cfg tests into separate file

* More refactoring into new file

* dataflow interpreter

* work on cfg0

* finish cfg0

* df works on base examples

* refactor into dataflow spec

* add bounded stack

* add harder example

* fix switch pass thru

* fix switch pass thru

* bug fix, and better printing

* manual merge

* restore call to test gencfg

* abstract interpretation based cfg analysis

* fix post signature

* use uint256 instead uint64, add post function

* preprocess stmts

* initial implementation of resolve

* fix resolve

* fix resolve

* print stmts for edges

* print stmts for edges

* print states

* print states

* bug fixes, debugging

* fix jumpi dest - first working impl

* reachability analysis to filter out dead edges

* add all transfer functions

* larger contract bytecodes from solc compiler

* simple solidity contract goes thru

* add deposit contract bytecode

* rename deposit contract test

* fix new contract arg

* Address non-determinism leading to imprecise results

* improve debugging output

* improve debugging output

* improve debugging output

* fix for bug causing incorrect analysis results

* fix for bug causing incorrect analysis results

* fix for bug causing incorrect analysis results

* add more test cases

* fix coverage bug

* debugging for non-termination

* fix bad fixpoint check

* fix data inference

* fix transfer function for halting stmts

* switch to deposit contract test, disable debugging

* add anly counter to viz, fix stmt.valid check

* show all preds, adjust anlycounter behavior

* dfs instead of bfs to fail earlier

* viz improvements

* add worklist size to viz

* add test case for private functions

* valueset analysis

* add more checks to fail earlier in the analysis to help debugging, improve debugging output, catch additional bad jumps

* delete old code

* delete old code

* delete old code

* fix up minor changes to jump table

* copy over comments from cgf-1 branch

* remove minor diffs

* add recompiled deposit contract

* graph viz

* cleanup/refactoring

* initial impl of viz

* script to run cfg anly and generate dot file

* div example

* accept bytecode from cmd line

* add minimal deposit contract example

* replace valueset analysis with stackset analysis

* get in sync with master

* sync with master

* fix linting

* fix linting

* fix linting

* reformatting

* fix linting

* fix linting

* fix linting

* fix linting

* fix linting

* fix linting

* fix linting

Co-authored-by: Alexey Akhunov <akhounov@gmail.com>
2020-08-28 07:26:49 +01:00
..
abidump post-merge fixups 2020-02-27 17:22:25 +03:00
abigen Rpcdaemon as lib (#940) 2020-08-19 12:46:20 +01:00
bootnode Apply Turbo-Geth modifications to go-ethereum codebase 2019-11-01 21:52:03 +01:00
checkpoint-admin geth 1.9.18 post-rebase fixups 2020-08-08 17:33:35 +02:00
clef signer/storage: fix a badly ordered error check (#21379) 2020-08-12 11:49:58 +02:00
devp2p cmd/devp2p: print enode:// URL in enrdump (#21270) 2020-08-14 16:34:20 +02:00
ethkey geth 1.9.18 post-rebase fixups 2020-08-08 17:33:35 +02:00
evm geth 1.9.18 post-rebase fixups 2020-08-08 17:33:35 +02:00
geth Never store Ethash caches to disk (#944) 2020-08-20 11:12:51 +01:00
hack Control Flow Analysis (#990) 2020-08-28 07:26:49 +01:00
integration Transactional cycle (#966) 2020-08-26 07:02:10 +01:00
p2psim node: refactor package node (#21105) 2020-08-14 16:33:59 +02:00
pics KV reduce features amount (#975) 2020-08-26 07:03:50 +01:00
prometheus add get/sec chart (#856) 2020-08-02 12:53:30 +01:00
puppeth cmd/geth, cmd/puppeth: replace deprecated rpc and ws flags in tests and docs (#21317) 2020-08-07 12:54:50 +02:00
restapi Another step in migrating tests to staged sync (#970) 2020-08-24 18:00:40 +01:00
rlpdump Apply Turbo-Geth modifications to go-ethereum codebase 2019-11-01 21:52:03 +01:00
rpcdaemon Update Supported JSON-RPC calls in README (#983) 2020-08-27 19:19:58 +01:00
rpctest add net namespace (#974) 2020-08-25 20:04:01 +07:00
semantics Tx retrace extension for Rest API (#436) 2020-04-10 19:47:45 +01:00
state KV reduce features amount (#975) 2020-08-26 07:03:50 +01:00
tester Rpcdaemon as lib (#940) 2020-08-19 12:46:20 +01:00
utils Another step in migrating tests to staged sync (#970) 2020-08-24 18:00:40 +01:00