Closed Bug 549511 Opened 15 years ago Closed 12 years ago

JM: jsop input static type profiling

Categories

(Core :: JavaScript Engine, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: dmandelin, Unassigned)

References

Details

Sometimes, the input to a JSOp can have interesting static properties. Specifically: - One of the inputs may be provably constant. For example, if there is a sequence of bytecodes |int8,getarg,add|, then one of the arguments to add is constant, because it was generated by int8. The compiler might be able to use this to generate better code for the int8 and/or the add. - One of the inputs may be provably of a certain type. In the previous example, the constant input is also provably a JS Number. We want benchmark and app profiling results for these properties. The reason we need profiling for static properties is that for optimization purposes, we also care how many times we execute a bytecode with that property. For example, if constant inputs to |add| are rare, then we don't care to optimize them. But if they are very common, we might want to do that optimization first. So, for this bug we need a simple static analysis that can get the type and const/nonconst property for each input to each static jsval. Then, we need it hooked up to a runtime profiling system that will get a histogram of the type tuples for each JSOp. This should live in the tree so we can run it at any time.
I really think this Inferring of Types is something that should be looked into. Think of the possibilities!
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
This isn't fixed. This bug is about doing some profiling of the frequency at which various sorts of code are encountered in the real world so we can decide what things we need fast paths for more in our jits and can prioritize work (and reorder stubcalls, for that matter) accordingly.... This would still be useful for ionmonkey, if we actually do it.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
JM was removed.
Status: REOPENED → RESOLVED
Closed: 14 years ago12 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.