[llvm] [BOLT] Enhance fixed indirect branch handling (PR #71324)

Amir Ayupov via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 8 23:24:14 PST 2023


================
@@ -54,7 +54,6 @@ enum class IndirectBranchType : char {
   POSSIBLE_TAIL_CALL,      /// Possibly a tail call.
   POSSIBLE_JUMP_TABLE,     /// Possibly a switch/jump table.
   POSSIBLE_PIC_JUMP_TABLE, /// Possibly a jump table for PIC.
-  POSSIBLE_GOTO,           /// Possibly a gcc's computed goto.
----------------
aaupov wrote:

My understanding is that tailcall is inter-function control transfer, computed goto is an indirect internal control transfer with a slightly more general address calculation pattern at least on x86 (jump table base address is computed and stored in a register?), and a possible fixed branch is an internal indirect branch to a single target known statically. So it's partially overlapping but pretty well defined classification.

https://github.com/llvm/llvm-project/pull/71324


More information about the llvm-commits mailing list