Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[VM] Use uint256 library for big integer ops #2024

Merged
merged 5 commits into from Nov 9, 2023

Conversation

hyunsooda
Copy link
Contributor

Proposed changes

Ported ethereum/go-ethereum#20787

Changes

  • Replace the big integer operations by uint256 library
  • Added missing readonly protection to interpreter running
  • Added missing signature alignment for opcode executor (EVM to EVMInterpreter)

The major change is to replace the builtin big integer operations with the uin256 library.

Benchmark-dev

goos: linux
goarch: amd64
pkg: github.com/klaytn/klaytn/blockchain/vm
cpu: Intel(R) Core(TM) i9-10900 CPU @ 2.80GHz
BenchmarkJumpdestAnalysis_1200k-20       	    2260	    541758 ns/op
BenchmarkJumpdestHashing_1200k-20        	     442	   2602067 ns/op
BenchmarkPrecompiledEcrecover/CallEcrecoverUnrecoverableKey-Gas=3000-20         	  313350	      3778 ns/op
BenchmarkPrecompiledEcrecover/ValidKey-Gas=3000-20                              	   25660	     46689 ns/op
BenchmarkPrecompiledEcrecover/InvalidHighV-bits-1-Gas=3000-20                   	15871825	        74.26 ns/op
BenchmarkPrecompiledEcrecover/InvalidHighV-bits-2-Gas=3000-20                   	14929840	        81.76 ns/op
BenchmarkPrecompiledEcrecover/InvalidHighV-bits-3-Gas=3000-20                   	14052697	        81.17 ns/op
BenchmarkPrecompiledSha256/32-Gas=72-20                                         	 5943675	       177.9 ns/op
BenchmarkPrecompiledSha256/64-Gas=84-20                                         	 3683064	       299.2 ns/op
BenchmarkPrecompiledSha256/128-Gas=108-20                                       	 2937985	       417.1 ns/op
BenchmarkPrecompiledSha256/256-Gas=156-20                                       	 1810948	       639.4 ns/op
BenchmarkPrecompiledSha256/512-Gas=252-20                                       	 1000000	      1102 ns/op
BenchmarkPrecompiledRipeMD/128-Gas=1080-20                                      	 1306184	       940.9 ns/op
BenchmarkPrecompiledIdentity/128-Gas=27-20                                      	151750798	         7.901 ns/op
BenchmarkPrecompiledModExp/eip_example1-Gas=13056-20                            	   54337	     22850 ns/op
BenchmarkPrecompiledModExp/eip_example2-Gas=13056-20                            	 2203737	       537.5 ns/op
BenchmarkPrecompiledModExp/nagydani-1-square-Gas=204-20                         	  970033	      1268 ns/op
BenchmarkPrecompiledModExp/nagydani-1-qube-Gas=204-20                           	  680647	      1627 ns/op
BenchmarkPrecompiledModExp/nagydani-1-pow0x10001-Gas=3276-20                    	  153127	      8039 ns/op
BenchmarkPrecompiledModExp/nagydani-2-square-Gas=665-20                         	  592279	      2104 ns/op
BenchmarkPrecompiledModExp/nagydani-2-qube-Gas=665-20                           	  379174	      3076 ns/op
BenchmarkPrecompiledModExp/nagydani-2-pow0x10001-Gas=10649-20                   	   72397	     16802 ns/op
BenchmarkPrecompiledModExp/nagydani-3-square-Gas=1894-20                        	  322155	      3775 ns/op
BenchmarkPrecompiledModExp/nagydani-3-qube-Gas=1894-20                          	  191074	      6463 ns/op
BenchmarkPrecompiledModExp/nagydani-3-pow0x10001-Gas=30310-20                   	   31108	     38741 ns/op
BenchmarkPrecompiledModExp/nagydani-4-square-Gas=5580-20                        	  140998	      8616 ns/op
BenchmarkPrecompiledModExp/nagydani-4-qube-Gas=5580-20                          	   64531	     18782 ns/op
BenchmarkPrecompiledModExp/nagydani-4-pow0x10001-Gas=89292-20                   	   10000	    111286 ns/op
BenchmarkPrecompiledModExp/nagydani-5-square-Gas=17868-20                       	   48945	     23172 ns/op
BenchmarkPrecompiledModExp/nagydani-5-qube-Gas=17868-20                         	   22761	     53120 ns/op
BenchmarkPrecompiledModExp/nagydani-5-pow0x10001-Gas=285900-20                  	    3525	    343550 ns/op
BenchmarkPrecompiledModExpEip2565/eip_example1-Gas=1360-20                      	   53756	     22506 ns/op
BenchmarkPrecompiledModExpEip2565/eip_example2-Gas=1360-20                      	 2014210	       591.0 ns/op
BenchmarkPrecompiledModExpEip2565/nagydani-1-square-Gas=200-20                  	  958401	      1267 ns/op
BenchmarkPrecompiledModExpEip2565/nagydani-1-qube-Gas=200-20                    	  748410	      1697 ns/op
BenchmarkPrecompiledModExpEip2565/nagydani-1-pow0x10001-Gas=341-20              	  139233	      8015 ns/op
BenchmarkPrecompiledModExpEip2565/nagydani-2-square-Gas=200-20                  	  586514	      1917 ns/op
BenchmarkPrecompiledModExpEip2565/nagydani-2-qube-Gas=200-20                    	  426751	      2915 ns/op
BenchmarkPrecompiledModExpEip2565/nagydani-2-pow0x10001-Gas=1365-20             	   71444	     16388 ns/op
BenchmarkPrecompiledModExpEip2565/nagydani-3-square-Gas=341-20                  	  341893	      3617 ns/op
BenchmarkPrecompiledModExpEip2565/nagydani-3-qube-Gas=341-20                    	  194157	      6261 ns/op
BenchmarkPrecompiledModExpEip2565/nagydani-3-pow0x10001-Gas=5461-20             	   30074	     38615 ns/op
BenchmarkPrecompiledModExpEip2565/nagydani-4-square-Gas=1365-20                 	  142545	      8585 ns/op
BenchmarkPrecompiledModExpEip2565/nagydani-4-qube-Gas=1365-20                   	   65292	     18367 ns/op
BenchmarkPrecompiledModExpEip2565/nagydani-4-pow0x10001-Gas=21845-20            	   10834	    114871 ns/op
BenchmarkPrecompiledModExpEip2565/nagydani-5-square-Gas=5461-20                 	   52165	     22793 ns/op
BenchmarkPrecompiledModExpEip2565/nagydani-5-qube-Gas=5461-20                   	   22792	     52607 ns/op
BenchmarkPrecompiledModExpEip2565/nagydani-5-pow0x10001-Gas=87381-20            	    3022	    337711 ns/op
BenchmarkPrecompiledBn256Add/chfast1-Gas=150-20                                 	  128202	      9322 ns/op
BenchmarkPrecompiledBn256Add/chfast2-Gas=150-20                                 	  129702	      9336 ns/op
BenchmarkPrecompiledBn256Add/cdetrio1-Gas=150-20                                	 1681465	       716.9 ns/op
BenchmarkPrecompiledBn256Add/cdetrio2-Gas=150-20                                	 1607186	       742.6 ns/op
BenchmarkPrecompiledBn256Add/cdetrio3-Gas=150-20                                	 1654351	       748.1 ns/op
BenchmarkPrecompiledBn256Add/cdetrio4-Gas=150-20                                	 1569656	       765.6 ns/op
BenchmarkPrecompiledBn256Add/cdetrio5-Gas=150-20                                	 1473811	       706.8 ns/op
BenchmarkPrecompiledBn256Add/cdetrio6-Gas=150-20                                	 1272885	       928.5 ns/op
BenchmarkPrecompiledBn256Add/cdetrio7-Gas=150-20                                	 1296992	       934.9 ns/op
BenchmarkPrecompiledBn256Add/cdetrio8-Gas=150-20                                	 1232047	       950.8 ns/op
BenchmarkPrecompiledBn256Add/cdetrio9-Gas=150-20                                	 1280990	       929.8 ns/op
BenchmarkPrecompiledBn256Add/cdetrio10-Gas=150-20                               	 1305045	       942.1 ns/op
BenchmarkPrecompiledBn256Add/cdetrio11-Gas=150-20                               	  125408	      9363 ns/op
BenchmarkPrecompiledBn256Add/cdetrio12-Gas=150-20                               	  127965	      9311 ns/op
BenchmarkPrecompiledBn256Add/cdetrio13-Gas=150-20                               	  128780	      9312 ns/op
BenchmarkPrecompiledBn256Add/cdetrio14-Gas=150-20                               	  865078	      1415 ns/op
BenchmarkPrecompiledBn256ScalarMul/chfast1-Gas=6000-20                          	   19089	     62784 ns/op
BenchmarkPrecompiledBn256ScalarMul/chfast2-Gas=6000-20                          	   17677	     67794 ns/op
BenchmarkPrecompiledBn256ScalarMul/chfast3-Gas=6000-20                          	   18202	     65607 ns/op
BenchmarkPrecompiledBn256ScalarMul/cdetrio1-Gas=6000-20                         	   17300	     69732 ns/op
BenchmarkPrecompiledBn256ScalarMul/cdetrio6-Gas=6000-20                         	   17277	     70298 ns/op
BenchmarkPrecompiledBn256ScalarMul/cdetrio11-Gas=6000-20                        	   17260	     69552 ns/op
BenchmarkPrecompiledBn256Pairing/jeff1-Gas=113000-20                            	     589	   2061423 ns/op
BenchmarkPrecompiledBn256Pairing/jeff2-Gas=113000-20                            	     596	   2031619 ns/op
BenchmarkPrecompiledBn256Pairing/jeff3-Gas=113000-20                            	     596	   2018333 ns/op
BenchmarkPrecompiledBn256Pairing/jeff4-Gas=147000-20                            	     444	   2697912 ns/op
BenchmarkPrecompiledBn256Pairing/jeff5-Gas=147000-20                            	     417	   2726328 ns/op
BenchmarkPrecompiledBn256Pairing/jeff6-Gas=113000-20                            	     560	   2018092 ns/op
BenchmarkPrecompiledBn256Pairing/empty_data-Gas=45000-20                        	    1846	    650028 ns/op
BenchmarkPrecompiledBn256Pairing/one_point-Gas=79000-20                         	     902	   1328863 ns/op
BenchmarkPrecompiledBn256Pairing/two_point_match_2-Gas=113000-20                	     595	   2011933 ns/op
BenchmarkPrecompiledBn256Pairing/two_point_match_3-Gas=113000-20                	     588	   2042007 ns/op
BenchmarkPrecompiledBn256Pairing/two_point_match_4-Gas=113000-20                	     595	   2071387 ns/op
BenchmarkPrecompiledBn256Pairing/ten_point_match_1-Gas=385000-20                	     159	   7558761 ns/op
BenchmarkPrecompiledBn256Pairing/ten_point_match_2-Gas=385000-20                	     159	   7607009 ns/op
BenchmarkPrecompiledBn256Pairing/ten_point_match_3-Gas=113000-20                	     594	   2015014 ns/op
BenchmarkPrecompiledBlake2F/vector_4-Gas=0-20                                   	15918190	        78.78 ns/op
BenchmarkPrecompiledBlake2F/vector_5-Gas=12-20                                  	 6674228	       176.7 ns/op
BenchmarkPrecompiledBlake2F/vector_6-Gas=12-20                                  	 6697693	       175.8 ns/op
BenchmarkPrecompiledBlake2F/vector_7-Gas=1-20                                   	12972778	        87.08 ns/op
BenchmarkPrecompiledBlake2F/vector_8-Gas=8000000-20                             	      19	  61040287 ns/op
BenchmarkPrecompiledVmLog/test1-Gas=360-20                                      	  399157	      3165 ns/op
BenchmarkPrecompiledVmLog/test2-Gas=500-20                                      	  395450	      3159 ns/op
BenchmarkPrecompiledFeePayer/feePayerTest1-Gas=300-20                           	47461740	        24.68 ns/op
BenchmarkPrecompiledValidateSender/validateSenderTest1-Gas=5000-20              	   27706	     42742 ns/op
BenchmarkOpAdd64-20                                                             	 6389580	       184.7 ns/op
BenchmarkOpAdd128-20                                                            	 5805133	       205.1 ns/op
BenchmarkOpAdd256-20                                                            	 6724486	       178.5 ns/op
BenchmarkOpSub64-20                                                             	 8170815	       148.1 ns/op
BenchmarkOpSub128-20                                                            	 7192881	       174.3 ns/op
BenchmarkOpSub256-20                                                            	 6477882	       182.3 ns/op
BenchmarkOpMul-20                                                               	 4662840	       251.4 ns/op
BenchmarkOpDiv256-20                                                            	 3019508	       394.2 ns/op
BenchmarkOpDiv128-20                                                            	 4991413	       242.5 ns/op
BenchmarkOpDiv64-20                                                             	 6954345	       166.7 ns/op
BenchmarkOpSdiv-20                                                              	 2197248	       568.3 ns/op
BenchmarkOpMod-20                                                               	 3386023	       346.8 ns/op
BenchmarkOpSmod-20                                                              	 2164554	       548.4 ns/op
BenchmarkOpExp-20                                                               	   74359	     16268 ns/op
BenchmarkOpSignExtend-20                                                        	 7410776	       168.4 ns/op
BenchmarkOpLt-20                                                                	 7011552	       170.5 ns/op
BenchmarkOpGt-20                                                                	 7379890	       167.3 ns/op
BenchmarkOpSlt-20                                                               	 6528895	       184.3 ns/op
BenchmarkOpSgt-20                                                               	 6797352	       182.0 ns/op
BenchmarkOpEq-20                                                                	 7406314	       169.3 ns/op
BenchmarkOpEq2-20                                                               	 7190490	       171.7 ns/op
BenchmarkOpAnd-20                                                               	 7247768	       170.5 ns/op
BenchmarkOpOr-20                                                                	 6887988	       176.1 ns/op
BenchmarkOpXor-20                                                               	 7059610	       173.8 ns/op
BenchmarkOpByte-20                                                              	 7429712	       166.8 ns/op
BenchmarkOpAddmod-20                                                            	 2458675	       471.1 ns/op
BenchmarkOpMulmod-20                                                            	 1951495	       619.6 ns/op
BenchmarkOpSHL-20                                                               	 6153482	       199.2 ns/op
BenchmarkOpSHR-20                                                               	 6115051	       193.3 ns/op
BenchmarkOpSAR-20                                                               	 3853806	       322.8 ns/op
BenchmarkOpIsZero-20                                                            	12419674	        98.50 ns/op
BenchmarkOpMstore-20                                                            	73939088	        15.76 ns/op
BenchmarkOpSHA3-20                                                              	 2344908	       536.0 ns/op
BenchmarkOpStop-20                                                              	40349991	        28.71 ns/op
BenchmarkOpNot-20                                                               	 7082764	       164.7 ns/op
BenchmarkOpAddress-20                                                           	10807666	       103.8 ns/op
BenchmarkOpBalance-20                                                           	 6115756	       197.1 ns/op
BenchmarkOpOrigin-20                                                            	12259413	        95.63 ns/op
BenchmarkOpCaller-20                                                            	11838325	        98.66 ns/op
BenchmarkOpCallValue-20                                                         	19760181	        62.27 ns/op
BenchmarkOpCallDataLoad-20                                                      	 4833474	       242.0 ns/op
BenchmarkOpCallDataSize-20                                                      	14871902	        89.85 ns/op
BenchmarkOpCallDataCopy-20                                                      	 4017681	       294.8 ns/op
BenchmarkOpReturnDataSize-20                                                    	13634527	        80.90 ns/op
BenchmarkOpReturnDataCopy-20                                                    	 4487716	       265.7 ns/op
BenchmarkOpExtCodeSize-20                                                       	 4248782	       279.4 ns/op
BenchmarkOpCodeSize-20                                                          	14279857	        81.30 ns/op
BenchmarkOpCodeCopy-20                                                          	 4159791	       293.8 ns/op
BenchmarkOpExtCodeCopy-20                                                       	 2608986	       463.9 ns/op
BenchmarkOpExtCodeHash-20                                                       	 5576162	       216.4 ns/op
BenchmarkOpGasprice-20                                                          	14837850	        81.82 ns/op
BenchmarkOpBlockhash-20                                                         	 1000000	      1033 ns/op
BenchmarkOpCoinbase-20                                                          	11859506	        97.18 ns/op
BenchmarkOpTimestamp-20                                                         	13778859	        86.31 ns/op
BenchmarkOpNumber-20                                                            	14261548	        88.76 ns/op
BenchmarkOpDifficulty-20                                                        	18062602	        66.05 ns/op
BenchmarkOpRandom-20                                                            	 1314121	       937.5 ns/op
BenchmarkOpGasLimit-20                                                          	13563261	        86.49 ns/op
BenchmarkOpPop-20                                                               	12052620	        95.23 ns/op
BenchmarkOpMload-20                                                             	11002016	       105.6 ns/op
BenchmarkOpMstore8-20                                                           	 8237629	       154.5 ns/op
BenchmarkOpSload-20                                                             	 4752008	       246.2 ns/op
BenchmarkOpSstore-20                                                            	 3838986	       327.5 ns/op
BenchmarkOpJump-20                                                              	10983294	       102.4 ns/op
BenchmarkOpJumpi-20                                                             	 7239980	       168.5 ns/op
BenchmarkOpJumpdest-20                                                          	43570288	        29.01 ns/op
BenchmarkOpPc-20                                                                	20813329	        61.53 ns/op
BenchmarkOpMsize-20                                                             	14144655	        80.87 ns/op
BenchmarkOpGas-20                                                               	15031077	        79.85 ns/op
BenchmarkOpCreate-20                                                            	  855249	      1381 ns/op
BenchmarkOpCreate2-20                                                           	  568245	      1992 ns/op
BenchmarkOpCall-20                                                              	  477529	      2479 ns/op
BenchmarkOpCallCode-20                                                          	  490840	      2403 ns/op
BenchmarkOpDelegateCall-20                                                      	  385616	      3086 ns/op
BenchmarkOpStaticCall-20                                                        	  525265	      2236 ns/op
BenchmarkOpReturn-20                                                            	 8898330	       129.8 ns/op
BenchmarkOpRevert-20                                                            	 9479266	       131.0 ns/op
BenchmarkOpSelfDestruct-20                                                      	 2543239	       439.9 ns/op
BenchmarkOpPush1-20                                                             	19231168	        62.95 ns/op
BenchmarkOpPush2-20                                                             	12184794	        99.56 ns/op
BenchmarkOpPush3-20                                                             	11457312	        99.80 ns/op
BenchmarkOpPush4-20                                                             	12279415	       100.7 ns/op
BenchmarkOpPush5-20                                                             	11785023	       101.9 ns/op
BenchmarkOpPush6-20                                                             	11880037	       104.9 ns/op
BenchmarkOpPush7-20                                                             	11829147	       106.7 ns/op
BenchmarkOpPush8-20                                                             	12408098	        99.02 ns/op
BenchmarkOpPush9-20                                                             	10102870	       119.2 ns/op
BenchmarkOpPush10-20                                                            	10022505	       119.4 ns/op
BenchmarkOpPush11-20                                                            	10225684	       119.9 ns/op
BenchmarkOpPush12-20                                                            	 9994212	       120.8 ns/op
BenchmarkOpPush13-20                                                            	 9338134	       122.5 ns/op
BenchmarkOpPush14-20                                                            	 9583928	       123.6 ns/op
BenchmarkOpPush15-20                                                            	 9248656	       120.9 ns/op
BenchmarkOpPush16-20                                                            	10800418	       115.8 ns/op
BenchmarkOpPush17-20                                                            	 9277522	       122.1 ns/op
BenchmarkOpPush18-20                                                            	10012354	       119.8 ns/op
BenchmarkOpPush19-20                                                            	 9274394	       121.5 ns/op
BenchmarkOpPush20-20                                                            	 9343462	       126.9 ns/op
BenchmarkOpPush21-20                                                            	 9108669	       126.9 ns/op
BenchmarkOpPush22-20                                                            	10004029	       124.2 ns/op
BenchmarkOpPush23-20                                                            	 9484077	       126.4 ns/op
BenchmarkOpPush24-20                                                            	10226306	       118.8 ns/op
BenchmarkOpPush25-20                                                            	 9577140	       124.5 ns/op
BenchmarkOpPush26-20                                                            	 9365469	       123.6 ns/op
BenchmarkOpPush27-20                                                            	 9204542	       124.7 ns/op
BenchmarkOpPush28-20                                                            	 9549556	       125.0 ns/op
BenchmarkOpPush29-20                                                            	 9244886	       126.7 ns/op
BenchmarkOpPush30-20                                                            	 9429505	       129.7 ns/op
BenchmarkOpPush31-20                                                            	 9242584	       130.0 ns/op
BenchmarkOpPush32-20                                                            	 9889066	       123.1 ns/op
BenchmarkOpDup1-20                                                              	 6533030	       168.8 ns/op
BenchmarkOpDup2-20                                                              	 5394939	       300.9 ns/op
BenchmarkOpDup3-20                                                              	 3718418	       334.2 ns/op
BenchmarkOpDup4-20                                                              	 3025084	       445.9 ns/op
BenchmarkOpDup5-20                                                              	 2145471	       562.1 ns/op
BenchmarkOpDup6-20                                                              	 2075077	       707.8 ns/op
BenchmarkOpDup7-20                                                              	 1574618	       702.6 ns/op
BenchmarkOpDup8-20                                                              	 1307811	       862.6 ns/op
BenchmarkOpDup9-20                                                              	 1264993	      1003 ns/op
BenchmarkOpDup10-20                                                             	 1000000	      1021 ns/op
BenchmarkOpDup11-20                                                             	 1000000	      1232 ns/op
BenchmarkOpDup12-20                                                             	  932461	      1310 ns/op
BenchmarkOpDup13-20                                                             	 1000000	      1358 ns/op
BenchmarkOpDup14-20                                                             	 1000000	      1427 ns/op
BenchmarkOpDup15-20                                                             	  898838	      1446 ns/op
BenchmarkOpDup16-20                                                             	  829086	      1780 ns/op
BenchmarkOpSwap1-20                                                             	 6667320	       174.9 ns/op
BenchmarkOpSwap2-20                                                             	 4865584	       312.3 ns/op
BenchmarkOpSwap3-20                                                             	 3608110	       360.6 ns/op
BenchmarkOpSwap4-20                                                             	 2886174	       467.2 ns/op
BenchmarkOpSwap5-20                                                             	 2092005	       538.0 ns/op
BenchmarkOpSwap6-20                                                             	 1941446	       764.3 ns/op
BenchmarkOpSwap7-20                                                             	 1625803	       771.3 ns/op
BenchmarkOpSwap8-20                                                             	 1553559	       889.2 ns/op
BenchmarkOpSwap9-20                                                             	 1374540	       889.0 ns/op
BenchmarkOpSwap10-20                                                            	 1000000	      1027 ns/op
BenchmarkOpSwap11-20                                                            	 1000000	      1090 ns/op
BenchmarkOpSwap12-20                                                            	  783722	      1414 ns/op
BenchmarkOpSwap13-20                                                            	  872941	      1587 ns/op
BenchmarkOpSwap14-20                                                            	  759736	      1358 ns/op
BenchmarkOpSwap15-20                                                            	 1000000	      1499 ns/op
BenchmarkOpSwap16-20                                                            	  865213	      1537 ns/op
BenchmarkOpLog0-20                                                              	 3243693	       360.7 ns/op
BenchmarkOpLog1-20                                                              	 2420709	       492.3 ns/op
BenchmarkOpLog2-20                                                              	 2037580	       612.8 ns/op
BenchmarkOpLog3-20                                                              	 1616328	       737.2 ns/op
BenchmarkOpLog4-20                                                              	 1417135	       869.7 ns/op
BenchmarkOpChainID-20                                                           	14120136	        83.60 ns/op
BenchmarkOpSelfBalance-20                                                       	 9258763	       132.6 ns/op
BenchmarkOpBaseFee-20                                                           	14510991	        82.49 ns/op
BenchmarkOpMcopy-20                                                             	 8261917	       138.9 ns/op
BenchmarkOpTload-20                                                             	 6874744	       169.5 ns/op
BenchmarkOpTstore-20                                                            	 4719406	       264.1 ns/op
PASS
ok  	github.com/klaytn/klaytn/blockchain/vm	365.323s

Benchmark-PR

goos: linux
goarch: amd64
pkg: github.com/klaytn/klaytn/blockchain/vm
cpu: Intel(R) Core(TM) i9-10900 CPU @ 2.80GHz
BenchmarkJumpdestAnalysis_1200k-20       	    2227	    539055 ns/op
BenchmarkJumpdestHashing_1200k-20        	     453	   2624638 ns/op
BenchmarkPrecompiledEcrecover/CallEcrecoverUnrecoverableKey-Gas=3000-20         	  313137	      3796 ns/op
BenchmarkPrecompiledEcrecover/ValidKey-Gas=3000-20                              	   25567	     46876 ns/op
BenchmarkPrecompiledEcrecover/InvalidHighV-bits-1-Gas=3000-20                   	15648115	        74.45 ns/op
BenchmarkPrecompiledEcrecover/InvalidHighV-bits-2-Gas=3000-20                   	15224067	        79.07 ns/op
BenchmarkPrecompiledEcrecover/InvalidHighV-bits-3-Gas=3000-20                   	15185599	        80.41 ns/op
BenchmarkPrecompiledSha256/32-Gas=72-20                                         	 6198050	       182.3 ns/op
BenchmarkPrecompiledSha256/64-Gas=84-20                                         	 3997693	       321.3 ns/op
BenchmarkPrecompiledSha256/128-Gas=108-20                                       	 2901081	       411.6 ns/op
BenchmarkPrecompiledSha256/256-Gas=156-20                                       	 1865713	       695.9 ns/op
BenchmarkPrecompiledSha256/512-Gas=252-20                                       	 1000000	      1109 ns/op
BenchmarkPrecompiledRipeMD/128-Gas=1080-20                                      	 1232944	       914.1 ns/op
BenchmarkPrecompiledIdentity/128-Gas=27-20                                      	143759335	         8.198 ns/op
BenchmarkPrecompiledModExp/eip_example1-Gas=13056-20                            	   50762	     22980 ns/op
BenchmarkPrecompiledModExp/eip_example2-Gas=13056-20                            	 2237990	       542.2 ns/op
BenchmarkPrecompiledModExp/nagydani-1-square-Gas=204-20                         	  976681	      1284 ns/op
BenchmarkPrecompiledModExp/nagydani-1-qube-Gas=204-20                           	  676479	      1636 ns/op
BenchmarkPrecompiledModExp/nagydani-1-pow0x10001-Gas=3276-20                    	  153036	      7897 ns/op
BenchmarkPrecompiledModExp/nagydani-2-square-Gas=665-20                         	  536001	      2067 ns/op
BenchmarkPrecompiledModExp/nagydani-2-qube-Gas=665-20                           	  405973	      3059 ns/op
BenchmarkPrecompiledModExp/nagydani-2-pow0x10001-Gas=10649-20                   	   72265	     16681 ns/op
BenchmarkPrecompiledModExp/nagydani-3-square-Gas=1894-20                        	  325149	      3740 ns/op
BenchmarkPrecompiledModExp/nagydani-3-qube-Gas=1894-20                          	  177716	      6461 ns/op
BenchmarkPrecompiledModExp/nagydani-3-pow0x10001-Gas=30310-20                   	   30036	     39553 ns/op
BenchmarkPrecompiledModExp/nagydani-4-square-Gas=5580-20                        	  135814	      8793 ns/op
BenchmarkPrecompiledModExp/nagydani-4-qube-Gas=5580-20                          	   60802	     18541 ns/op
BenchmarkPrecompiledModExp/nagydani-4-pow0x10001-Gas=89292-20                   	   10000	    112781 ns/op
BenchmarkPrecompiledModExp/nagydani-5-square-Gas=17868-20                       	   50198	     23586 ns/op
BenchmarkPrecompiledModExp/nagydani-5-qube-Gas=17868-20                         	   22261	     53050 ns/op
BenchmarkPrecompiledModExp/nagydani-5-pow0x10001-Gas=285900-20                  	    3495	    346802 ns/op
BenchmarkPrecompiledModExpEip2565/eip_example1-Gas=1360-20                      	   50162	     23276 ns/op
BenchmarkPrecompiledModExpEip2565/eip_example2-Gas=1360-20                      	 2054107	       587.8 ns/op
BenchmarkPrecompiledModExpEip2565/nagydani-1-square-Gas=200-20                  	  955527	      1284 ns/op
BenchmarkPrecompiledModExpEip2565/nagydani-1-qube-Gas=200-20                    	  713901	      1666 ns/op
BenchmarkPrecompiledModExpEip2565/nagydani-1-pow0x10001-Gas=341-20              	  153014	      7977 ns/op
BenchmarkPrecompiledModExpEip2565/nagydani-2-square-Gas=200-20                  	  557546	      1906 ns/op
BenchmarkPrecompiledModExpEip2565/nagydani-2-qube-Gas=200-20                    	  406605	      2895 ns/op
BenchmarkPrecompiledModExpEip2565/nagydani-2-pow0x10001-Gas=1365-20             	   73682	     16503 ns/op
BenchmarkPrecompiledModExpEip2565/nagydani-3-square-Gas=341-20                  	  314166	      3614 ns/op
BenchmarkPrecompiledModExpEip2565/nagydani-3-qube-Gas=341-20                    	  196788	      6315 ns/op
BenchmarkPrecompiledModExpEip2565/nagydani-3-pow0x10001-Gas=5461-20             	   30442	     39296 ns/op
BenchmarkPrecompiledModExpEip2565/nagydani-4-square-Gas=1365-20                 	  144374	      8297 ns/op
BenchmarkPrecompiledModExpEip2565/nagydani-4-qube-Gas=1365-20                   	   63436	     18351 ns/op
BenchmarkPrecompiledModExpEip2565/nagydani-4-pow0x10001-Gas=21845-20            	   10000	    111347 ns/op
BenchmarkPrecompiledModExpEip2565/nagydani-5-square-Gas=5461-20                 	   51254	     23501 ns/op
BenchmarkPrecompiledModExpEip2565/nagydani-5-qube-Gas=5461-20                   	   22166	     52587 ns/op
BenchmarkPrecompiledModExpEip2565/nagydani-5-pow0x10001-Gas=87381-20            	    3404	    345844 ns/op
BenchmarkPrecompiledBn256Add/chfast1-Gas=150-20                                 	  129342	      9317 ns/op
BenchmarkPrecompiledBn256Add/chfast2-Gas=150-20                                 	  128920	      9339 ns/op
BenchmarkPrecompiledBn256Add/cdetrio1-Gas=150-20                                	 1717233	       716.9 ns/op
BenchmarkPrecompiledBn256Add/cdetrio2-Gas=150-20                                	 1598985	       740.0 ns/op
BenchmarkPrecompiledBn256Add/cdetrio3-Gas=150-20                                	 1614673	       757.4 ns/op
BenchmarkPrecompiledBn256Add/cdetrio4-Gas=150-20                                	 1559994	       768.3 ns/op
BenchmarkPrecompiledBn256Add/cdetrio5-Gas=150-20                                	 1680562	       718.5 ns/op
BenchmarkPrecompiledBn256Add/cdetrio6-Gas=150-20                                	 1284693	       947.0 ns/op
BenchmarkPrecompiledBn256Add/cdetrio7-Gas=150-20                                	 1297866	       934.9 ns/op
BenchmarkPrecompiledBn256Add/cdetrio8-Gas=150-20                                	 1249724	       966.0 ns/op
BenchmarkPrecompiledBn256Add/cdetrio9-Gas=150-20                                	 1274574	       938.3 ns/op
BenchmarkPrecompiledBn256Add/cdetrio10-Gas=150-20                               	 1256820	       939.5 ns/op
BenchmarkPrecompiledBn256Add/cdetrio11-Gas=150-20                               	  124808	      9456 ns/op
BenchmarkPrecompiledBn256Add/cdetrio12-Gas=150-20                               	  123296	      9409 ns/op
BenchmarkPrecompiledBn256Add/cdetrio13-Gas=150-20                               	  128716	      9299 ns/op
BenchmarkPrecompiledBn256Add/cdetrio14-Gas=150-20                               	  731989	      1540 ns/op
BenchmarkPrecompiledBn256ScalarMul/chfast1-Gas=6000-20                          	   18770	     63022 ns/op
BenchmarkPrecompiledBn256ScalarMul/chfast2-Gas=6000-20                          	   17185	     69287 ns/op
BenchmarkPrecompiledBn256ScalarMul/chfast3-Gas=6000-20                          	   18228	     65957 ns/op
BenchmarkPrecompiledBn256ScalarMul/cdetrio1-Gas=6000-20                         	   17095	     69890 ns/op
BenchmarkPrecompiledBn256ScalarMul/cdetrio6-Gas=6000-20                         	   17245	     69627 ns/op
BenchmarkPrecompiledBn256ScalarMul/cdetrio11-Gas=6000-20                        	   17146	     69751 ns/op
BenchmarkPrecompiledBn256Pairing/jeff1-Gas=113000-20                            	     591	   2054702 ns/op
BenchmarkPrecompiledBn256Pairing/jeff2-Gas=113000-20                            	     594	   2041365 ns/op
BenchmarkPrecompiledBn256Pairing/jeff3-Gas=113000-20                            	     553	   2025525 ns/op
BenchmarkPrecompiledBn256Pairing/jeff4-Gas=147000-20                            	     444	   2730048 ns/op
BenchmarkPrecompiledBn256Pairing/jeff5-Gas=147000-20                            	     441	   2707402 ns/op
BenchmarkPrecompiledBn256Pairing/jeff6-Gas=113000-20                            	     595	   2023714 ns/op
BenchmarkPrecompiledBn256Pairing/empty_data-Gas=45000-20                        	    1848	    651496 ns/op
BenchmarkPrecompiledBn256Pairing/one_point-Gas=79000-20                         	     900	   1335053 ns/op
BenchmarkPrecompiledBn256Pairing/two_point_match_2-Gas=113000-20                	     594	   2052276 ns/op
BenchmarkPrecompiledBn256Pairing/two_point_match_3-Gas=113000-20                	     590	   2062628 ns/op
BenchmarkPrecompiledBn256Pairing/two_point_match_4-Gas=113000-20                	     583	   2052477 ns/op
BenchmarkPrecompiledBn256Pairing/ten_point_match_1-Gas=385000-20                	     154	   7666160 ns/op
BenchmarkPrecompiledBn256Pairing/ten_point_match_2-Gas=385000-20                	     157	   7516604 ns/op
BenchmarkPrecompiledBn256Pairing/ten_point_match_3-Gas=113000-20                	     594	   2017300 ns/op
BenchmarkPrecompiledBlake2F/vector_4-Gas=0-20                                   	15318108	        80.93 ns/op
BenchmarkPrecompiledBlake2F/vector_5-Gas=12-20                                  	 6931728	       176.1 ns/op
BenchmarkPrecompiledBlake2F/vector_6-Gas=12-20                                  	 6904226	       175.2 ns/op
BenchmarkPrecompiledBlake2F/vector_7-Gas=1-20                                   	13448218	        87.68 ns/op
BenchmarkPrecompiledBlake2F/vector_8-Gas=8000000-20                             	      18	  61044045 ns/op
BenchmarkPrecompiledVmLog/test1-Gas=360-20                                      	  403483	      3092 ns/op
BenchmarkPrecompiledVmLog/test2-Gas=500-20                                      	  403208	      3114 ns/op
BenchmarkPrecompiledFeePayer/feePayerTest1-Gas=300-20                           	49704759	        24.36 ns/op
BenchmarkPrecompiledValidateSender/validateSenderTest1-Gas=5000-20              	   24732	     42693 ns/op
BenchmarkOpAdd64-20                                                             	27269757	        45.85 ns/op
BenchmarkOpAdd128-20                                                            	26842891	        46.14 ns/op
BenchmarkOpAdd256-20                                                            	26936528	        45.55 ns/op
BenchmarkOpSub64-20                                                             	23576220	        45.03 ns/op
BenchmarkOpSub128-20                                                            	25329409	        45.96 ns/op
BenchmarkOpSub256-20                                                            	26591748	        46.52 ns/op
BenchmarkOpMul-20                                                               	22552168	        52.86 ns/op
BenchmarkOpDiv256-20                                                            	10649703	       106.0 ns/op
BenchmarkOpDiv128-20                                                            	14808417	        81.37 ns/op
BenchmarkOpDiv64-20                                                             	23909890	        50.52 ns/op
BenchmarkOpSdiv-20                                                              	10786076	       111.5 ns/op
BenchmarkOpMod-20                                                               	25591981	        48.60 ns/op
BenchmarkOpSmod-20                                                              	20649555	        54.83 ns/op
BenchmarkOpExp-20                                                               	  332388	      3574 ns/op
BenchmarkOpSignExtend-20                                                        	26317122	        47.74 ns/op
BenchmarkOpLt-20                                                                	26104693	        46.01 ns/op
BenchmarkOpGt-20                                                                	26529258	        45.53 ns/op
BenchmarkOpSlt-20                                                               	26122765	        47.10 ns/op
BenchmarkOpSgt-20                                                               	24523862	        47.36 ns/op
BenchmarkOpEq-20                                                                	27094148	        45.89 ns/op
BenchmarkOpEq2-20                                                               	27508870	        45.34 ns/op
BenchmarkOpAnd-20                                                               	26453474	        45.34 ns/op
BenchmarkOpOr-20                                                                	25545640	        45.48 ns/op
BenchmarkOpXor-20                                                               	23568217	        45.12 ns/op
BenchmarkOpByte-20                                                              	27418234	        46.03 ns/op
BenchmarkOpAddmod-20                                                            	 9623852	       129.6 ns/op
BenchmarkOpMulmod-20                                                            	 6893130	       185.6 ns/op
BenchmarkOpSHL-20                                                               	26699638	        46.98 ns/op
BenchmarkOpSHR-20                                                               	26661442	        46.25 ns/op
BenchmarkOpSAR-20                                                               	26096389	        48.02 ns/op
BenchmarkOpIsZero-20                                                            	28949030	        36.70 ns/op
BenchmarkOpMstore-20                                                            	68701426	        16.95 ns/op
BenchmarkOpSHA3-20                                                              	 2929417	       405.5 ns/op
BenchmarkOpStop-20                                                              	43180291	        28.82 ns/op
BenchmarkOpNot-20                                                               	31305826	        36.72 ns/op
BenchmarkOpAddress-20                                                           	26317131	        45.12 ns/op
BenchmarkOpBalance-20                                                           	13248996	        88.43 ns/op
BenchmarkOpOrigin-20                                                            	34554640	        36.52 ns/op
BenchmarkOpCaller-20                                                            	30718844	        39.71 ns/op
BenchmarkOpCallValue-20                                                         	36026001	        33.43 ns/op
BenchmarkOpCallDataLoad-20                                                      	19294009	        65.28 ns/op
BenchmarkOpCallDataSize-20                                                      	35662231	        32.04 ns/op
BenchmarkOpCallDataCopy-20                                                      	21379610	        57.53 ns/op
BenchmarkOpReturnDataSize-20                                                    	35069017	        32.60 ns/op
BenchmarkOpReturnDataCopy-20                                                    	20948331	        58.54 ns/op
BenchmarkOpExtCodeSize-20                                                       	 7405272	       169.5 ns/op
BenchmarkOpCodeSize-20                                                          	35354517	        33.28 ns/op
BenchmarkOpCodeCopy-20                                                          	18487634	        57.80 ns/op
BenchmarkOpExtCodeCopy-20                                                       	10818862	       116.3 ns/op
BenchmarkOpExtCodeHash-20                                                       	 8334220	       139.0 ns/op
BenchmarkOpGasprice-20                                                          	32619326	        36.01 ns/op
BenchmarkOpBlockhash-20                                                         	 1388715	       850.6 ns/op
BenchmarkOpCoinbase-20                                                          	34557674	        36.30 ns/op
BenchmarkOpTimestamp-20                                                         	32879986	        32.88 ns/op
BenchmarkOpNumber-20                                                            	32567907	        35.61 ns/op
BenchmarkOpDifficulty-20                                                        	32890602	        33.07 ns/op
BenchmarkOpRandom-20                                                            	 1351597	       889.9 ns/op
BenchmarkOpGasLimit-20                                                          	38062717	        32.43 ns/op
BenchmarkOpPop-20                                                               	33565113	        39.23 ns/op
BenchmarkOpMload-20                                                             	29282644	        40.09 ns/op
BenchmarkOpMstore8-20                                                           	25262316	        45.44 ns/op
BenchmarkOpSload-20                                                             	 8925000	       133.0 ns/op
BenchmarkOpSstore-20                                                            	10733959	       111.7 ns/op
BenchmarkOpJump-20                                                              	27122013	        41.64 ns/op
BenchmarkOpJumpi-20                                                             	22819821	        48.68 ns/op
BenchmarkOpJumpdest-20                                                          	43963770	        28.72 ns/op
BenchmarkOpPc-20                                                                	32563642	        33.31 ns/op
BenchmarkOpMsize-20                                                             	38389984	        32.41 ns/op
BenchmarkOpGas-20                                                               	35586603	        32.42 ns/op
BenchmarkOpCreate-20                                                            	  972102	      1236 ns/op
BenchmarkOpCreate2-20                                                           	  618966	      1709 ns/op
BenchmarkOpCall-20                                                              	 1256628	       953.4 ns/op
BenchmarkOpCallCode-20                                                          	 1330518	       894.0 ns/op
BenchmarkOpDelegateCall-20                                                      	  801591	      1445 ns/op
BenchmarkOpStaticCall-20                                                        	 1546603	       791.9 ns/op
BenchmarkOpReturn-20                                                            	25923780	        47.96 ns/op
BenchmarkOpRevert-20                                                            	26305284	        47.97 ns/op
BenchmarkOpSelfDestruct-20                                                      	 3504580	       345.4 ns/op
BenchmarkOpPush1-20                                                             	38193111	        31.93 ns/op
BenchmarkOpPush2-20                                                             	23177785	        50.31 ns/op
BenchmarkOpPush3-20                                                             	24446827	        51.10 ns/op
BenchmarkOpPush4-20                                                             	20750709	        50.94 ns/op
BenchmarkOpPush5-20                                                             	22618158	        54.75 ns/op
BenchmarkOpPush6-20                                                             	23835015	        51.96 ns/op
BenchmarkOpPush7-20                                                             	21556340	        53.68 ns/op
BenchmarkOpPush8-20                                                             	21905098	        51.19 ns/op
BenchmarkOpPush9-20                                                             	22045244	        55.97 ns/op
BenchmarkOpPush10-20                                                            	20713414	        57.25 ns/op
BenchmarkOpPush11-20                                                            	21989971	        57.34 ns/op
BenchmarkOpPush12-20                                                            	19115827	        55.82 ns/op
BenchmarkOpPush13-20                                                            	22012822	        56.07 ns/op
BenchmarkOpPush14-20                                                            	17633233	        57.28 ns/op
BenchmarkOpPush15-20                                                            	21140982	        58.68 ns/op
BenchmarkOpPush16-20                                                            	18316910	        56.75 ns/op
BenchmarkOpPush17-20                                                            	17542387	        58.63 ns/op
BenchmarkOpPush18-20                                                            	21496681	        58.92 ns/op
BenchmarkOpPush19-20                                                            	21041434	        57.14 ns/op
BenchmarkOpPush20-20                                                            	19719369	        59.25 ns/op
BenchmarkOpPush21-20                                                            	21018018	        59.28 ns/op
BenchmarkOpPush22-20                                                            	20856384	        60.57 ns/op
BenchmarkOpPush23-20                                                            	18983858	        61.19 ns/op
BenchmarkOpPush24-20                                                            	18726615	        59.13 ns/op
BenchmarkOpPush25-20                                                            	20752784	        59.34 ns/op
BenchmarkOpPush26-20                                                            	18979316	        60.51 ns/op
BenchmarkOpPush27-20                                                            	20752029	        59.57 ns/op
BenchmarkOpPush28-20                                                            	20721600	        60.52 ns/op
BenchmarkOpPush29-20                                                            	20366170	        61.05 ns/op
BenchmarkOpPush30-20                                                            	20463556	        60.90 ns/op
BenchmarkOpPush31-20                                                            	20626278	        61.01 ns/op
BenchmarkOpPush32-20                                                            	20140030	        58.80 ns/op
BenchmarkOpDup1-20                                                              	17549413	        94.37 ns/op
BenchmarkOpDup2-20                                                              	15798750	       152.1 ns/op
BenchmarkOpDup3-20                                                              	12931806	       189.3 ns/op
BenchmarkOpDup4-20                                                              	 7780754	       165.8 ns/op
BenchmarkOpDup5-20                                                              	 8224318	       238.2 ns/op
BenchmarkOpDup6-20                                                              	 5768654	       231.8 ns/op
BenchmarkOpDup7-20                                                              	 6734986	       299.1 ns/op
BenchmarkOpDup8-20                                                              	 5482437	       347.7 ns/op
BenchmarkOpDup9-20                                                              	 4618641	       370.1 ns/op
BenchmarkOpDup10-20                                                             	 3896216	       460.4 ns/op
BenchmarkOpDup11-20                                                             	 3865489	       508.6 ns/op
BenchmarkOpDup12-20                                                             	 3363758	       549.0 ns/op
BenchmarkOpDup13-20                                                             	 3476642	       576.8 ns/op
BenchmarkOpDup14-20                                                             	 3248282	       811.9 ns/op
BenchmarkOpDup15-20                                                             	 2863689	       644.0 ns/op
BenchmarkOpDup16-20                                                             	 2289081	       762.0 ns/op
BenchmarkOpSwap1-20                                                             	15957334	        66.10 ns/op
BenchmarkOpSwap2-20                                                             	13421620	       119.3 ns/op
BenchmarkOpSwap3-20                                                             	 8178480	       155.8 ns/op
BenchmarkOpSwap4-20                                                             	 7848433	       186.5 ns/op
BenchmarkOpSwap5-20                                                             	 5754520	       257.9 ns/op
BenchmarkOpSwap6-20                                                             	 5643092	       278.8 ns/op
BenchmarkOpSwap7-20                                                             	 5502169	       332.9 ns/op
BenchmarkOpSwap8-20                                                             	 4954910	       326.2 ns/op
BenchmarkOpSwap9-20                                                             	 4205276	       434.8 ns/op
BenchmarkOpSwap10-20                                                            	 4166196	       430.7 ns/op
BenchmarkOpSwap11-20                                                            	 3541411	       533.1 ns/op
BenchmarkOpSwap12-20                                                            	 3486584	       515.6 ns/op
BenchmarkOpSwap13-20                                                            	 3443740	       556.1 ns/op
BenchmarkOpSwap14-20                                                            	 3451520	       611.5 ns/op
BenchmarkOpSwap15-20                                                            	 3084674	       670.1 ns/op
BenchmarkOpSwap16-20                                                            	 2986924	       688.9 ns/op
BenchmarkOpLog0-20                                                              	 5051236	       226.9 ns/op
BenchmarkOpLog1-20                                                              	 4893411	       248.6 ns/op
BenchmarkOpLog2-20                                                              	 4399232	       285.6 ns/op
BenchmarkOpLog3-20                                                              	 4293705	       301.4 ns/op
BenchmarkOpLog4-20                                                              	 3676776	       320.5 ns/op
BenchmarkOpChainID-20                                                           	33801882	        35.79 ns/op
BenchmarkOpSelfBalance-20                                                       	14279946	        85.72 ns/op
BenchmarkOpBaseFee-20                                                           	34793692	        35.53 ns/op
BenchmarkOpMcopy-20                                                             	24753478	        46.75 ns/op
BenchmarkOpTload-20                                                             	20924418	        58.14 ns/op
BenchmarkOpTstore-20                                                            	10234177	       123.5 ns/op
PASS
ok  	github.com/klaytn/klaytn/blockchain/vm	365.642s

These are some of the key comparisons between PR (above) and dev (bottom). Approximately 4-5x faster.


BenchmarkOpAdd64-20                                                             	27269757	        45.85 ns/op
BenchmarkOpAdd128-20                                                            	26842891	        46.14 ns/op
BenchmarkOpAdd256-20                                                            	26936528	        45.55 ns/op
BenchmarkOpSub64-20                                                             	23576220	        45.03 ns/op
BenchmarkOpSub128-20                                                            	25329409	        45.96 ns/op
BenchmarkOpSub256-20                                                            	26591748	        46.52 ns/op
BenchmarkOpMul-20                                                               	22552168	        52.86 ns/op
BenchmarkOpDiv256-20                                                            	10649703	       106.0 ns/op
BenchmarkOpDiv128-20                                                            	14808417	        81.37 ns/op
BenchmarkOpDiv64-20                                                             	23909890	        50.52 ns/op
BenchmarkOpSdiv-20                                                              	10786076	       111.5 ns/op
BenchmarkOpMod-20                                                               	25591981	        48.60 ns/op
BenchmarkOpSmod-20                                                              	20649555	        54.83 ns/op
BenchmarkOpExp-20                                                               	  332388	      3574 ns/op
BenchmarkOpSignExtend-20                                                        	26317122	        47.74 ns/op
BenchmarkOpLt-20                                                                	26104693	        46.01 ns/op
BenchmarkOpGt-20                                                                	26529258	        45.53 ns/op
BenchmarkOpSlt-20                                                               	26122765	        47.10 ns/op
BenchmarkOpSgt-20                                                               	24523862	        47.36 ns/op
BenchmarkOpEq-20                                                                	27094148	        45.89 ns/op
BenchmarkOpEq2-20                                                               	27508870	        45.34 ns/op
BenchmarkOpAnd-20                                                               	26453474	        45.34 ns/op
BenchmarkOpAdd64-20                                                             	 6389580	       184.7 ns/op
BenchmarkOpAdd128-20                                                            	 5805133	       205.1 ns/op
BenchmarkOpAdd256-20                                                            	 6724486	       178.5 ns/op
BenchmarkOpSub64-20                                                             	 8170815	       148.1 ns/op
BenchmarkOpSub128-20                                                            	 7192881	       174.3 ns/op
BenchmarkOpSub256-20                                                            	 6477882	       182.3 ns/op
BenchmarkOpMul-20                                                               	 4662840	       251.4 ns/op
BenchmarkOpDiv256-20                                                            	 3019508	       394.2 ns/op
BenchmarkOpDiv128-20                                                            	 4991413	       242.5 ns/op
BenchmarkOpDiv64-20                                                             	 6954345	       166.7 ns/op
BenchmarkOpSdiv-20                                                              	 2197248	       568.3 ns/op
BenchmarkOpMod-20                                                               	 3386023	       346.8 ns/op
BenchmarkOpSmod-20                                                              	 2164554	       548.4 ns/op
BenchmarkOpExp-20                                                               	   74359	     16268 ns/op
BenchmarkOpSignExtend-20                                                        	 7410776	       168.4 ns/op
BenchmarkOpLt-20                                                                	 7011552	       170.5 ns/op
BenchmarkOpGt-20                                                                	 7379890	       167.3 ns/op
BenchmarkOpSlt-20                                                               	 6528895	       184.3 ns/op
BenchmarkOpSgt-20                                                               	 6797352	       182.0 ns/op
BenchmarkOpEq-20                                                                	 7406314	       169.3 ns/op
BenchmarkOpEq2-20                                                               	 7190490	       171.7 ns/op
BenchmarkOpAnd-20                                                               	 7247768	       170.5 ns/op

@yoomee1313, Could you reassess the experiment to determine the computation cost based on these improvements?

Types of changes

Please put an x in the boxes related to your change.

  • Bugfix
  • New feature or enhancement
  • Others

Checklist

Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

  • I have read the CONTRIBUTING GUIDELINES doc
  • I have signed the CLA
  • Lint and unit tests pass locally with my changes ($ make test)
  • I have added tests that prove my fix is effective or that my feature works
  • I have added necessary documentation (if appropriate)
  • Any dependent changes have been merged and published in downstream modules

Related issues

  • Please leave the issue numbers or links related to this PR here.

Further comments

If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution you did and what alternatives you considered, etc...

@yoomee1313
Copy link
Contributor

yoomee1313 commented Nov 7, 2023

@yoomee1313, Could you reassess the experiment to determine the computation cost based on these improvements?

I'll leave the sync test since it is time-consuming test, instead I'll conduct one more sync test syncing from the latest 100,000 blocks based on this PR for comparison. In addition, I'll update the benchmark test result. Thank you very much.

blockchain/vm/contracts_test.go Outdated Show resolved Hide resolved
blockchain/vm/gas.go Outdated Show resolved Hide resolved
blockchain/vm/instructions.go Outdated Show resolved Hide resolved
blockchain/vm/logger_json.go Outdated Show resolved Hide resolved
node/cn/tracers/tracer.go Outdated Show resolved Hide resolved
@hyunsooda hyunsooda mentioned this pull request Nov 8, 2023
9 tasks
@hyunsooda hyunsooda merged commit 35ff6bf into klaytn:dev Nov 9, 2023
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants