Closed Bug 605700 Opened 9 years ago Closed 9 years ago

TM: improve naming in LIR dumps

Categories

(Core :: JavaScript Engine, defect)

x86
macOS
defect
Not set

Tracking

()

RESOLVED FIXED

People

(Reporter: njn, Assigned: njn)

References

Details

(Whiteboard: fixed-in-tracemonkey)

Attachments

(1 file)

Bug 602703 overhauls how LIR is generated in jstracer.cpp.  To facilitate testing, in that bug's patches I ensured that the generated LIR was unchanged.  But there are opportunities to give more meaningful names to a lot of values in LIR dumps.  This bug is for doing that.
This patch adds a lot of extra names to LIR instructions.  Here's a small example of the changes, from GETELEM:

-      addi3 = addi slots4, lshi1
-      ldi7 = ldi.slots addi3[4]
-      eqi5 = eqi ldi7, JSVAL_TAG_INT32/*......*/
-      xf5: xf eqi5 -> pc=...... imacpc=(nil) sp+32 rp+0 (......)
-      ldi5 = ldi.slots addi3[0]
-      sti.sp sp[16] = ldi5
+      elemp3 = addi slots4, lshi1
+      tag4 = ldi.slots elemp3[4]
+      isInt3 = eqi tag4, JSVAL_TAG_INT32/*......*/
+      xf5: xf isInt3 -> pc=...... imacpc=(nil) sp+32 rp+0 (......)
+      payload3 = ldi.slots elemp3[0]
+      sti.sp sp[16] = payload3

And some of the cases where the naming was done in jstracer.cpp, the naming is now done in Writer.h.  It also removes some stupid cases where eg. 0 is given the name "0" (unnecessary because immediates always have their value printed next to their name).  And there's a tiny bit of LIR reordering that won't affect perf at all.
Attachment #487803 - Flags: review?(lw)
Attachment #487803 - Flags: review?(lw) → review+
http://hg.mozilla.org/tracemonkey/rev/b38546e5b5f8
Whiteboard: fixed-in-tracemonkey
http://hg.mozilla.org/mozilla-central/rev/b38546e5b5f8
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.