[Webkit-unassigned] [Bug 101740] [Qt][ARM][MIPS]REGRESSION(r133953): It broke the build
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Thu Nov 15 04:24:30 PST 2012
https://bugs.webkit.org/show_bug.cgi?id=101740
--- Comment #29 from Balazs Kilvady <kilvadyb at homejinni.com> 2012-11-15 04:26:19 PST ---
(In reply to comment #22)
> Any idea?
It's a very hacky solution but if with keeping templates much performance gain can be achieved then:
By the error messages the problem comes up when the body of the 3 inline functions from the JIT.h header should be linked. We could force the compiler to compile in the template codes instantiated with all the 3 type parameters with a simple function in JITPropertyAccess32_64.cpp:
void forceTemplateCompilation()
{
emitInt32PutByVal(currentInstruction, badType); // emitGenericContiguousPutByVal<(unsigned char)20>
emitDoublePutByVal(currentInstruction, badType);
emitContiguousPutByVal(currentInstruction, badType);
}
This function shouldn't be called ever but as an exportable one the compiler cannot optimize out the 3 version of the template whichever ENABLE_/USE_ macro combination are used. This function would be "Objective-C like private: not mentioned in the header).
As I tested the compilation the problems come from that that the above listed 3 functions declared in JIT.h so for <(unsigned char)20>, <(unsigned char)22>, <(unsigned char)26> the template codes of emitGenericContiguousPutByVal<> should be in the object file compiled from the cpp file which contains the template body. But with some ENABLE_ macro configurations the compiler sees that some of the 3 functions not used in JITPropertyAccess32_64.cpp so not compiled in.
I can't test it in EFL build env.
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list