//===-- CodeGen/MachineJumpTableInfo.h - Abstract Jump Tables --*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // The MachineJumpTableInfo class keeps track of jump tables referenced by // lowered switch instructions in the MachineFunction. // // Instructions reference the address of these jump tables through the use of // MO_JumpTableIndex values. When emitting assembly or machine code, these // virtual address references are converted to refer to the address of the // function jump tables. // //===----------------------------------------------------------------------===// #ifndef LLVM_CODEGEN_MACHINEJUMPTABLEINFO_H #define LLVM_CODEGEN_MACHINEJUMPTABLEINFO_H #include "llvm/Support/Printable.h" #include <cassert> #include <vector> namespace llvm { class MachineBasicBlock; class DataLayout; class raw_ostream; /// MachineJumpTableEntry - One jump table in the jump table info. /// struct MachineJumpTableEntry { … }; class MachineJumpTableInfo { … }; /// Prints a jump table entry reference. /// /// The format is: /// %jump-table.5 - a jump table entry with index == 5. /// /// Usage: OS << printJumpTableEntryReference(Idx) << '\n'; Printable printJumpTableEntryReference(unsigned Idx); } // End llvm namespace #endif