[all-commits] [llvm/llvm-project] 49ee60: [BOLT][AArch64] Add support for compact code model...

Maksim Panchenko via All-commits all-commits at lists.llvm.org
Thu Nov 7 14:51:34 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 49ee6069db372ce326bc36678e745459868c3771
      https://github.com/llvm/llvm-project/commit/49ee6069db372ce326bc36678e745459868c3771
  Author: Maksim Panchenko <maks at fb.com>
  Date:   2024-11-07 (Thu, 07 Nov 2024)

  Changed paths:
    M bolt/include/bolt/Core/BinaryBasicBlock.h
    M bolt/include/bolt/Core/FunctionLayout.h
    M bolt/include/bolt/Passes/LongJmp.h
    M bolt/lib/Core/FunctionLayout.cpp
    M bolt/lib/Passes/LongJmp.cpp
    A bolt/test/AArch64/compact-code-model.s

  Log Message:
  -----------
  [BOLT][AArch64] Add support for compact code model (#112110)

Add `--compact-code-model` option that executes alternative branch
relaxation with an assumption that the resulting binary has less than
128MB of code. The relaxation is done in `relaxLocalBranches()`, which
operates on a function level and executes on multiple functions in
parallel.

Running the new option on AArch64 Clang binary produces slightly smaller
code and the relaxation finishes in about 1/10th of the time.

Note that the new `.text` has to be smaller than 128MB, *and* `.plt` has
to be closer than 128MB to `.text`.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list