[all-commits] [llvm/llvm-project] 83f549: [BOLT] BL/BH are considered aliases in regreassign

llongint via All-commits all-commits at lists.llvm.org
Mon Aug 28 08:04:12 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 83f5497155e1d37c9b08447a2225a789095d53b0
      https://github.com/llvm/llvm-project/commit/83f5497155e1d37c9b08447a2225a789095d53b0
  Author: hezuoqiang <hezuoqiang2 at huawei.com>
  Date:   2023-08-28 (Mon, 28 Aug 2023)

  Changed paths:
    M bolt/lib/Passes/RegReAssign.cpp
    A bolt/test/runtime/X86/reg-reassign-no-swap-bl.s

  Log Message:
  -----------
  [BOLT] BL/BH are considered aliases in regreassign

The relationship of X86 registers is shown in the diagram. BL and BH do
not have a direct alias relationship. However, if the BH register cannot be
swapped, then the BX/EBX/RBX registers cannot be swapped as well, which
means that BL register also cannot be swapped. Therefore, in the presence
of BX/EBX/RBX registers, BL and BH have an alias relationship.

    ┌────────────────┐
    │  RBX           │
    ├────┬───────────┤
    │    │ EBX       │
    ├────┴──┬────────┤
    │       │   BX   │
    ├───────┼───┬────┤
    │       │BH │BL  │
    └───────┴───┴────┘

Reviewed By: rafauler

Differential Revision: https://reviews.llvm.org/D155098




More information about the All-commits mailing list