[all-commits] [llvm/llvm-project] ea0638: [CodeGen][AArch64] Only split safe blocks in BBSec...

Daniel Hoekwater via All-commits all-commits at lists.llvm.org
Wed Feb 14 10:58:20 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ea06384bf667c635f78660f0bcfaa01372735b99
      https://github.com/llvm/llvm-project/commit/ea06384bf667c635f78660f0bcfaa01372735b99
  Author: Daniel Hoekwater <hoekwater at google.com>
  Date:   2024-02-14 (Wed, 14 Feb 2024)

  Changed paths:
    M llvm/lib/CodeGen/BasicBlockSections.cpp
    A llvm/test/CodeGen/AArch64/basic-block-sections-cold.ll
    A llvm/test/CodeGen/AArch64/basic-block-sections-unsafe.ll

  Log Message:
  -----------
  [CodeGen][AArch64] Only split safe blocks in BBSections (#81553)

Some types of machine function and machine basic block are unsafe to
split on AArch64: basic blocks that contain jump table dispatch or
targets (D157124), and blocks that contain inline ASM GOTO blocks
or their targets (D158647) all cause issues and have been excluded
from Machine Function Splitting on AArch64.

These issues are caused by any transformation pass that places
same-function basic blocks in different text sections
(MachineFunctionSplitter and BasicBlockSections) and must be
special-cased in both passes.




More information about the All-commits mailing list