> On Dec 30, 2019, at 6:23 PM, Alexander Vega <amve...@mail.usf.edu> wrote: > > -fdevirtualize > -fdevirtualize-speculatively
I believe those are C++ optimizations, specific to C++ virtual methods. What SQLite is doing is similar to a class with virtual methods, but done “by hand” in plain C, so the optimizer doesn’t know how to apply that optimization. (I’m fighting the urge to write an off-topic rant about why anyone still programs in C when they could write roughly the same code much more simply and cleanly in C++ using only the most basic features like classes and methods. I’ve spent too much time lately trying to figure out or debug hellacious C spaghetti code that’s awkwardly reinventing wheels like inheritance and constructors/destructors.) And in any case, de-virtualization only works when a virtual method has only one implementation, I.e. is monomorphic, and that isn’t true here. —Jens _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users