[all-commits] [llvm/llvm-project] fa7dd4: [BOLT][NFC] Add BOLTError and return it from passe...

Amir Ayupov via All-commits all-commits at lists.llvm.org
Mon Feb 12 14:53:18 PST 2024


  Branch: refs/heads/users/aaupov/spr/bolt-log-through-journalingstreams
  Home:   https://github.com/llvm/llvm-project
  Commit: fa7dd4919aa705f18f268fab5b2887d45f89d8dd
      https://github.com/llvm/llvm-project/commit/fa7dd4919aa705f18f268fab5b2887d45f89d8dd
  Author: Amir Ayupov <aaupov at fb.com>
  Date:   2024-02-12 (Mon, 12 Feb 2024)

  Changed paths:
    M bolt/include/bolt/Core/BinaryContext.h
    M bolt/lib/Core/BinaryContext.cpp
    M bolt/lib/Passes/ADRRelaxationPass.cpp
    M bolt/lib/Passes/BinaryPasses.cpp
    M bolt/lib/Passes/Instrumentation.cpp
    M bolt/lib/Passes/PatchEntries.cpp
    M bolt/lib/Passes/ReorderFunctions.cpp
    M bolt/lib/Passes/VeneerElimination.cpp

  Log Message:
  -----------
  [BOLT][NFC] Add BOLTError and return it from passes (1/2) (#81522)

As part of the effort to refactor old error handling code that
would directly call exit(1), in this patch we add a new class
BOLTError and auxiliary functions `createFatalBOLTError()` and
`createNonFatalBOLTError()` that allow BOLT code to bubble up the
problem to the caller by using the Error class as a return
type (or Expected). Also changes passes to use these.

Co-authored-by: Rafael Auler <rafaelauler at fb.com>

Test Plan: NFC


  Commit: 13d60ce2f262ef9055389908b63824e53b3054a1
      https://github.com/llvm/llvm-project/commit/13d60ce2f262ef9055389908b63824e53b3054a1
  Author: Amir Ayupov <aaupov at fb.com>
  Date:   2024-02-12 (Mon, 12 Feb 2024)

  Changed paths:
    M bolt/include/bolt/Core/BinaryFunction.h
    M bolt/include/bolt/Core/BinarySection.h
    M bolt/include/bolt/Passes/FrameOptimizer.h
    M bolt/include/bolt/Passes/LongJmp.h
    M bolt/include/bolt/Passes/ReorderFunctions.h
    M bolt/include/bolt/Passes/ShrinkWrapping.h
    M bolt/include/bolt/Rewrite/BinaryPassManager.h
    M bolt/lib/Core/BinaryFunction.cpp
    M bolt/lib/Core/BinarySection.cpp
    M bolt/lib/Core/Exceptions.cpp
    M bolt/lib/Passes/BinaryPasses.cpp
    M bolt/lib/Passes/FrameOptimizer.cpp
    M bolt/lib/Passes/LongJmp.cpp
    M bolt/lib/Passes/ReorderFunctions.cpp
    M bolt/lib/Passes/ShrinkWrapping.cpp
    M bolt/lib/Rewrite/BinaryPassManager.cpp
    M bolt/lib/Rewrite/MachORewriteInstance.cpp
    M bolt/lib/Rewrite/RewriteInstance.cpp
    M bolt/lib/Target/X86/X86MCSymbolizer.cpp
    M bolt/lib/Target/X86/X86MCSymbolizer.h

  Log Message:
  -----------
  [BOLT][NFC] Propagate BOLTErrors from Core, RewriteInstance, and passes (2/2) (#81523)

As part of the effort to refactor old error handling code that
would directly call exit(1), in this patch continue the migration
on libCore, libRewrite and libPasses to use the new BOLTError
class whenever a failure occurs.

Test Plan: NFC

Co-authored-by: Rafael Auler <rafaelauler at fb.com>


  Commit: 93cdd1b5cfa3735c599949b77e24dbfbe570441a
      https://github.com/llvm/llvm-project/commit/93cdd1b5cfa3735c599949b77e24dbfbe570441a
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2024-02-12 (Mon, 12 Feb 2024)

  Changed paths:
    M clang/lib/CodeGen/BackendUtil.cpp
    M llvm/include/llvm/Support/PGOOptions.h
    A llvm/include/llvm/Transforms/Instrumentation/PGOForceFunctionAttrs.h
    M llvm/lib/LTO/LTOBackend.cpp
    M llvm/lib/Passes/PassBuilder.cpp
    M llvm/lib/Passes/PassBuilderPipelines.cpp
    M llvm/lib/Passes/PassRegistry.def
    M llvm/lib/Support/PGOOptions.cpp
    M llvm/lib/Transforms/Instrumentation/CMakeLists.txt
    A llvm/lib/Transforms/Instrumentation/PGOForceFunctionAttrs.cpp
    A llvm/test/Instrumentation/PGOForceFunctionAttrs/basic.ll
    M llvm/tools/opt/NewPMDriver.cpp
    M llvm/utils/gn/secondary/llvm/lib/Transforms/Instrumentation/BUILD.gn

  Log Message:
  -----------
  [PGO] Add ability to mark cold functions as optsize/minsize/optnone (#69030)

The performance of cold functions shouldn't matter too much, so if we
care about binary sizes, add an option to mark cold functions as
optsize/minsize for binary size, or optnone for compile times [1]. Clang
patch will be in a future patch.

This is intended to replace `shouldOptimizeForSize(Function&, ...)`.
We've seen multiple cases where calls to this expensive function, if not
careful, can blow up compile times. I will clean up users of that
function in a followup patch.

Initial version: https://reviews.llvm.org/D149800

[1]
https://discourse.llvm.org/t/rfc-new-feature-proposal-de-optimizing-cold-functions-using-pgo-info/56388


  Commit: 0f09ab9a5eb5ee0d6c36ee7b103490dc14cc96e8
      https://github.com/llvm/llvm-project/commit/0f09ab9a5eb5ee0d6c36ee7b103490dc14cc96e8
  Author: Amir Ayupov <aaupov at fb.com>
  Date:   2024-02-12 (Mon, 12 Feb 2024)

  Changed paths:
    M clang/lib/CodeGen/BackendUtil.cpp
    M llvm/include/llvm/Support/PGOOptions.h
    A llvm/include/llvm/Transforms/Instrumentation/PGOForceFunctionAttrs.h
    M llvm/lib/LTO/LTOBackend.cpp
    M llvm/lib/Passes/PassBuilder.cpp
    M llvm/lib/Passes/PassBuilderPipelines.cpp
    M llvm/lib/Passes/PassRegistry.def
    M llvm/lib/Support/PGOOptions.cpp
    M llvm/lib/Transforms/Instrumentation/CMakeLists.txt
    A llvm/lib/Transforms/Instrumentation/PGOForceFunctionAttrs.cpp
    A llvm/test/Instrumentation/PGOForceFunctionAttrs/basic.ll
    M llvm/tools/opt/NewPMDriver.cpp
    M llvm/utils/gn/secondary/llvm/lib/Transforms/Instrumentation/BUILD.gn

  Log Message:
  -----------
  rebase

Created using spr 1.3.4


Compare: https://github.com/llvm/llvm-project/compare/27a2d22da3c3...0f09ab9a5eb5


More information about the All-commits mailing list