From: drh Date: Mon, 9 Nov 2015 12:33:39 +0000 (+0000) Subject: Avoid unnecessary function prologues in the sqlite3VdbeAddOp3() routine. X-Git-Tag: version-3.10.0~155 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=d797035ac78a0854e6a4c13e03849318d92459af;p=thirdparty%2Fsqlite.git Avoid unnecessary function prologues in the sqlite3VdbeAddOp3() routine. FossilOrigin-Name: 7c6a19ba9b0bdb1cc0b9a9796b7c1c114944d927 --- diff --git a/manifest b/manifest index f46bfb5259..cd829a2bee 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Small\ssize\sreduction\sand\sperformance\sincrease\sin\sthe\sparser. -D 2015-11-09T02:08:09.483 +C Avoid\sunnecessary\sfunction\sprologues\sin\sthe\ssqlite3VdbeAddOp3()\sroutine. +D 2015-11-09T12:33:39.340 F Makefile.in 3a705bb4bd12e194212ddbdbf068310d17153cdb F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434 F Makefile.msc 702d3e98f3afc6587a78481257f3c4c900efc3a4 @@ -407,7 +407,7 @@ F src/vdbe.c 7a9b18027414368d800716e6319e2acd699c70db F src/vdbe.h efb7a8c1459e31f3ea4377824c6a7e4cb5068637 F src/vdbeInt.h 33403622c6a8feaaac5f0f3f17f5d1bf6df42286 F src/vdbeapi.c 020681b943e77766b32ae1cddf86d7831b7374ca -F src/vdbeaux.c 6d55530b05b69bc663c87d2d258318dcdf042644 +F src/vdbeaux.c da9eddc62e025148e30267600a6fe3882d5e912f F src/vdbeblob.c 565fabd302f5fca3bdf3d56cac330483616a39b6 F src/vdbemem.c fdd1578e47bea61390d472de53c565781d81e045 F src/vdbesort.c 8b23930a1289526f6d2a3a9f2e965bcc963e4a68 @@ -1401,7 +1401,7 @@ F tool/vdbe_profile.tcl 246d0da094856d72d2c12efec03250d71639d19f F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings.sh 48bd54594752d5be3337f12c72f28d2080cb630b F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f -P 7ea036ac37397ed8f6a0fa9f5bfc0994364b53dc -R 3231bc9f57ce7558e058f50c744abb1e +P d62cd757a69cc49c2d309e27c948610b5868632f +R a904c99753c26b60df840fbeb9147fea U drh -Z db3ec02e9e575bd3c4a05b8f4b24bc15 +Z 04359d40d10a11f87d61acdb694f52aa diff --git a/manifest.uuid b/manifest.uuid index cf6442cb11..d3a3f51b6e 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -d62cd757a69cc49c2d309e27c948610b5868632f \ No newline at end of file +7c6a19ba9b0bdb1cc0b9a9796b7c1c114944d927 \ No newline at end of file diff --git a/src/vdbeaux.c b/src/vdbeaux.c index 83a9047dc7..a5bc0b71a2 100644 --- a/src/vdbeaux.c +++ b/src/vdbeaux.c @@ -157,6 +157,12 @@ static void test_addop_breakpoint(void){ ** the sqlite3VdbeChangeP4() function to change the value of the P4 ** operand. */ +static SQLITE_NOINLINE int growOp3(Vdbe *p, int op, int p1, int p2, int p3){ + assert( p->pParse->nOpAlloc<=p->nOp ); + if( growOpArray(p, 1) ) return 1; + assert( p->pParse->nOpAlloc>p->nOp ); + return sqlite3VdbeAddOp3(p, op, p1, p2, p3); +} int sqlite3VdbeAddOp3(Vdbe *p, int op, int p1, int p2, int p3){ int i; VdbeOp *pOp; @@ -165,9 +171,7 @@ int sqlite3VdbeAddOp3(Vdbe *p, int op, int p1, int p2, int p3){ assert( p->magic==VDBE_MAGIC_INIT ); assert( op>0 && op<0xff ); if( p->pParse->nOpAlloc<=i ){ - if( growOpArray(p, 1) ){ - return 1; - } + return growOp3(p, op, p1, p2, p3); } p->nOp++; pOp = &p->aOp[i];