RESOLVED FIXED 226849
Air ARM64 sub32 opcode should indicate that it zero-extends its result
https://bugs.webkit.org/show_bug.cgi?id=226849
Summary Air ARM64 sub32 opcode should indicate that it zero-extends its result
Saam Barati
Reported 2021-06-09 13:43:10 PDT
...
Attachments
Patch (232 bytes, patch)
2021-06-09 17:24 PDT, Yijia Huang
no flags
Patch (232 bytes, patch)
2021-06-09 17:42 PDT, Yijia Huang
no flags
Patch (548 bytes, patch)
2021-06-10 13:55 PDT, Yijia Huang
no flags
Patch (1.30 KB, patch)
2021-06-10 14:10 PDT, Yijia Huang
no flags
Patch (1.97 KB, patch)
2021-06-10 15:27 PDT, Yijia Huang
no flags
Patch (2.16 KB, patch)
2021-06-10 15:52 PDT, Yijia Huang
no flags
Patch (2.16 KB, patch)
2021-06-10 15:57 PDT, Yijia Huang
no flags
Yijia Huang
Comment 1 2021-06-09 17:24:51 PDT
Yijia Huang
Comment 2 2021-06-09 17:42:37 PDT
Yijia Huang
Comment 3 2021-06-10 13:55:30 PDT
Mark Lam
Comment 4 2021-06-10 14:09:30 PDT
Comment on attachment 431124 [details] Patch This patch needs a ChangeLog.
Yijia Huang
Comment 5 2021-06-10 14:10:10 PDT
Mark Lam
Comment 6 2021-06-10 14:15:57 PDT
Comment on attachment 431127 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=431127&action=review > Source/JavaScriptCore/ChangeLog:8 > + * b3/air/AirOpcode.opcodes: Zero def the destination of arm64 sub32 This description is not accurate. You're not defining the destination register as zero. Instead, you're indicating that the opcode will zero extend the 32-bit result to full register length in the destination. Please also fix the title accordingly. Also to provide context for this patch, I indicate that this is in Air opcode. For example, something like "Air ARM64 sub32 opcode should indicate that it zero-extends its result".
Yijia Huang
Comment 7 2021-06-10 15:27:54 PDT
Saam Barati
Comment 8 2021-06-10 15:38:13 PDT
Comment on attachment 431143 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=431143&action=review > Source/JavaScriptCore/ChangeLog:9 > + When the result of sub32 needs to be stored to a 64-sized register, > + the current Air optimizer will generate an extra Move32 instruction. I'd be more precise here. Maybe something like this: "Sub32 was previously not saying that its result is zero defined. However, sub32 on arm64 architectures zero defines its result, so the top 32 bits are zeroed. The issue with this is what we were not eliding provably redundant zero extend operations." > Source/JavaScriptCore/ChangeLog:19 > + // Optimized Air IR I'd say that this is the "Old optimized Air IR" > Source/JavaScriptCore/ChangeLog:25 > + To remove that redundant instruction (Move32), Air arm64 sub32 opcode > + should indicate that it zero-extends its result. "To remove that redundant instruction (Move32)" => "To remove that redundant zero extend instruction (Move32)" > Source/JavaScriptCore/ChangeLog:26 > + maybe also show what the new Optimized IR is here: > Source/JavaScriptCore/ChangeLog:28 > + * b3/air/AirOpcode.opcodes: Changed "D:G:32" to "ZD:G:32" in Air ARM64 > + sub32 opcode. No need for this here. We typically don't say "what" a patch does for a simple patch like this, since if you look at the file below, it already says that.
Yijia Huang
Comment 9 2021-06-10 15:52:53 PDT
Yijia Huang
Comment 10 2021-06-10 15:57:30 PDT
Saam Barati
Comment 11 2021-06-10 17:37:15 PDT
Comment on attachment 431151 [details] Patch NIce. r=me
EWS
Comment 12 2021-06-11 11:27:04 PDT
Committed r278769 (238728@main): <https://commits.webkit.org/238728@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 431151 [details].
Radar WebKit Bug Importer
Comment 13 2021-06-11 11:28:20 PDT
Note You need to log in before you can comment on or make changes to this bug.