[Webkit-unassigned] [Bug 75342] Adjust spill order in DFG

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Oct 31 11:33:44 PDT 2013


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





--- Comment #8 from Filip Pizlo <fpizlo at apple.com>  2013-10-31 11:32:30 PST ---
(From update of attachment 121216)
View in context: https://bugs.webkit.org/attachment.cgi?id=121216&action=review

> Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h:169
>      enum SpillOrder {
>          SpillOrderConstant = 1, // no spill, and cheap fill
>          SpillOrderSpilled  = 2, // no spill
> -        SpillOrderJS       = 4, // needs spill
> -        SpillOrderCell     = 4, // needs spill
> -        SpillOrderStorage  = 4, // needs spill
> -        SpillOrderInteger  = 5, // needs spill and box
> -        SpillOrderBoolean  = 5, // needs spill and box
> -        SpillOrderDouble   = 6, // needs spill and convert
> +        SpillOrderStorage  = 3, // needs spill
> +        SpillOrderCell     = 3, // needs spill
> +        SpillOrderJS       = 3, // needs spill
> +        SpillOrderInteger  = 4, // needs spill, and complex fill
> +        SpillOrderDouble   = 5, // needs spill
>      };
>  #elif USE(JSVALUE32_64)
>      enum SpillOrder {
>          SpillOrderConstant = 1, // no spill, and cheap fill
>          SpillOrderSpilled  = 2, // no spill
> -        SpillOrderJS       = 4, // needs spill
> -        SpillOrderStorage  = 4, // needs spill
> -        SpillOrderDouble   = 4, // needs spill
> -        SpillOrderInteger  = 5, // needs spill and box
> -        SpillOrderCell     = 5, // needs spill and box
> -        SpillOrderBoolean  = 5, // needs spill and box
> +        SpillOrderStorage  = 3, // spill involving one GPR
> +        SpillOrderCell     = 3, // spill involving one GPR
> +        SpillOrderInteger  = 3, // spill involving one GPR
> +        SpillOrderBoolean  = 3, // spill involving one GPR
> +        SpillOrderJS       = 4, // spill involving two GPRs
> +        SpillOrderDouble   = 5, // spill involving one FPR
>      };
>  #endif

Does changing any of this have any effect on performance?

> Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h:-674
> -            // We need to box int32 and cell values ...
> -            // but on JSVALUE64 boxing a cell is a no-op!
> -            if (spillFormat == DataFormatInteger)
> -                m_jit.orPtr(GPRInfo::tagTypeNumberRegister, reg);
> -            

Why is this removed?  Seems wrong.

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