[Webkit-unassigned] [Bug 67826] JavaScriptCore does not have speculative->baseline OSR

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Sun Sep 11 14:33:09 PDT 2011


https://bugs.webkit.org/show_bug.cgi?id=67826





--- Comment #23 from Filip Pizlo <fpizlo at apple.com>  2011-09-11 14:33:09 PST ---
> > Source/JavaScriptCore/dfg/DFGJITCompiler.cpp:103
> > +#if DFG_OSR
> 
> I'd prefer we used the ENABLE() style macros, e.g. ENABLE(DFG_OSR)
> 
> > Source/JavaScriptCore/dfg/DFGJITCompiler.cpp:109
> > +#if DFG_DEBUG_VERBOSE
> 
> ENABLE() again
> 
> > Source/JavaScriptCore/dfg/DFGJITCompiler.cpp:113
> > +#if DFG_JIT_BREAK_ON_SPECULATION_FAILURE
> 
> and again
> 
> > Source/JavaScriptCore/dfg/DFGJITCompiler.cpp:117
> > +#if DFG_VERBOSE_SPECULATION_FAILURE
> 
> ...
> 

I've filed a bug against this: https://bugs.webkit.org/show_bug.cgi?id=67907

> This seems more related to the presence or absence of VERBOSE logging rather than debug build vs. not debug build -- perhaps it should be 
> #if ENABLE(....) || !defined(NDEBUG) 
> ?

The goal there was to enable us to plant dump() statements wherever necessary when debugging, without having to enable DFG_DEBUG_VERBOSE, since in some (admittedly rare) situations DFG_DEBUG_VERBOSE causes too much output.

This isn't a big deal since I've happily browsed the interwebs with DFG_DEBUG_VERBOSE and was reasonably happy.

> 
> > Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h:219
> > +    JSValue constant() const
> > +    {
> > +        ASSERT(m_technique == Constant);
> > +        return JSValue::decode(m_source.constant);
> > +    }
> 
> Just for reference can a constant be a JSString?  Does this end up relying on the containing code block for marking?

All constants come from the CodeBlock's constant pool, so yes.

> 
> > Source/JavaScriptCore/runtime/JSGlobalData.h:239
> > +        Vector<int64_t*> osrScratchBuffers;
> 
> Honestly I think i'd prefer a Vector of vectors here -- If we really felt it would be beneficial we could come up with a more sensible "Array" class -> the absence of range checking in debug builds and the need to manually free the arrays is just a little icky to me.

Vector<void*> it is for now, as per our discussions on IRC.

-- 
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