[all-commits] [llvm/llvm-project] 206b4c: [BOLT][AArch64] Implement PLTCall optimization

Paschalis Mpeis via All-commits all-commits at lists.llvm.org
Tue May 28 12:04:11 PDT 2024


  Branch: refs/heads/users/paschalis-mpeis/bolt-plt-call-opt
  Home:   https://github.com/llvm/llvm-project
  Commit: 206b4c90c03372ad0b0de04c520689baafc9bdc5
      https://github.com/llvm/llvm-project/commit/206b4c90c03372ad0b0de04c520689baafc9bdc5
  Author: Paschalis Mpeis <Paschalis.Mpeis at arm.com>
  Date:   2024-05-28 (Tue, 28 May 2024)

  Changed paths:
    M bolt/include/bolt/Core/MCPlusBuilder.h
    M bolt/lib/Passes/PLTCall.cpp
    M bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp
    M bolt/lib/Target/X86/X86MCPlusBuilder.cpp
    A bolt/test/AArch64/plt-call.test
    A bolt/test/Inputs/plt-tailcall.c

  Log Message:
  -----------
  [BOLT][AArch64] Implement PLTCall optimization

`convertCallToIndirectCall` applies the PLTCall optimization and returns
an (updated if needed) iterator to the converted call instruction.
Since AArch64 requires to inject additional instructions to implement this
pass, the relevant BasicBlock and an iterator was passed to the
`convertCallToIndirectCall`.

`NumCallsOptimized` is updated only on successful application of the pass.

Tests:
- Inputs/plt-tailcall.c: an example of a tail call optimized PLT call.
- AArch64/plt-call.test: it is the actual A64 test, that runs the PLTCall
  optimization on the above input file and verifies the application of
  the pass to the calls: 'printf' and 'puts'.



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