[turbofan][x64] Avoid TruncateInt64ToInt32 when possible
Turbofan optimizes TruncateInt64ToInt32 by trying to merge it into its input. This can avoid generating a movl instruction. However, when the input is BitcastTaggedToWordForTagAndSmiBits, it fails to apply this optimization and this results in a redundant move: Turbofan IR: 149: Load[kRepTaggedSigned|kTypeInt32](...) 150: BitcastTaggedToWordForTagAndSmiBits(149) 151: TruncateInt64ToInt32(150) 152: Word32And(151, 558) Assembly: 103 movl r11,[r8+0x1f] 107 movl r11,r11 10a andl r11,0x4 This CL fixes this and avoids the redundant movl instruction. Change-Id: Id59d1ce1e3b139344f750e903726dd9f338cfdba Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3787681Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Hao A Xu <hao.a.xu@intel.com> Cr-Commit-Position: refs/heads/main@{#82156}
Showing
Please
register
or
sign in
to comment