From: drh Date: Tue, 12 Apr 2016 00:26:59 +0000 (+0000) Subject: Performance optimization the Vdbe allocator. X-Git-Tag: version-3.13.0~99 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6f077343499e27a354dc924afe601f3a8ef947c9;p=thirdparty%2Fsqlite.git Performance optimization the Vdbe allocator. FossilOrigin-Name: e2c4995bf1099cc02bcb1dc4a4631f06a870d171 --- diff --git a/manifest b/manifest index 1df6af9754..1b9939804f 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Avoid\sunnecessary\scalls\sto\sobject\sdestructors\sfor\sa\ssmall\sperformance\sgain. -D 2016-04-12T00:16:54.551 +C Performance\soptimization\sthe\sVdbe\sallocator. +D 2016-04-12T00:26:59.031 F Makefile.in eba680121821b8a60940a81454316f47a341487a F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434 F Makefile.msc 71b8b16cf9393f68e2e2035486ca104872558836 @@ -375,7 +375,7 @@ F src/printf.c 63e6fb12bbe702dd664dc3703776c090383a5a26 F src/random.c ba2679f80ec82c4190062d756f22d0c358180696 F src/resolve.c b8f7174e5f8c33c44ded3a25a973d0bb89228c20 F src/rowset.c 9fe4b3ad7cc00944386bb600233d8f523de07a6e -F src/select.c ac6d3e0cb7bd40863d228097dd8f08376d413877 +F src/select.c a07e6022e2b559f3c2ec80442472c5965fa7a3fc F src/shell.c b7922fa264f8c8d72a5ec6dd0b091e15a93c4de5 F src/sqlite.h.in c8f41612dc1a9b5212a891e1b65a5f589b8b884a F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8 @@ -1482,7 +1482,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P fdf752394b48fb7b9afe7b8a7d83f859985cc2d2 -R a8b7046af026a40f393575d3c7a134ae +P aec94b6ee68fe50e2cc14388281e2ef531e21d68 +R 253cd694af93304b2692f192acabe757 U drh -Z 78d3bdd6a4f18eec259d071eee201b93 +Z 22234bdd82888c7db3f11967733fa3c5 diff --git a/manifest.uuid b/manifest.uuid index bcfa76f96b..eaf9d622d5 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -aec94b6ee68fe50e2cc14388281e2ef531e21d68 \ No newline at end of file +e2c4995bf1099cc02bcb1dc4a4631f06a870d171 \ No newline at end of file diff --git a/src/select.c b/src/select.c index 2be62ed42c..fc37db5747 100644 --- a/src/select.c +++ b/src/select.c @@ -1789,20 +1789,20 @@ Table *sqlite3ResultSetOfSelect(Parse *pParse, Select *pSelect){ ** Get a VDBE for the given parser context. Create a new one if necessary. ** If an error occurs, return NULL and leave a message in pParse. */ -Vdbe *sqlite3GetVdbe(Parse *pParse){ - Vdbe *v = pParse->pVdbe; - if( v==0 ){ - v = pParse->pVdbe = sqlite3VdbeCreate(pParse); - if( v ) sqlite3VdbeAddOp0(v, OP_Init); - if( pParse->pToplevel==0 - && OptimizationEnabled(pParse->db,SQLITE_FactorOutConst) - ){ - pParse->okConstFactor = 1; - } - +static SQLITE_NOINLINE Vdbe *allocVdbe(Parse *pParse){ + Vdbe *v = pParse->pVdbe = sqlite3VdbeCreate(pParse); + if( v ) sqlite3VdbeAddOp0(v, OP_Init); + if( pParse->pToplevel==0 + && OptimizationEnabled(pParse->db,SQLITE_FactorOutConst) + ){ + pParse->okConstFactor = 1; } return v; } +Vdbe *sqlite3GetVdbe(Parse *pParse){ + Vdbe *v = pParse->pVdbe; + return v ? v : allocVdbe(pParse); +} /*