//===----------------------------------------------------------------------===// // // 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 // //===----------------------------------------------------------------------===// /// /// \file /// This file enumerates the bit fields of BBAddrMap::Features and /// BBAddrMap::BBEntry::Metadata. /// //===----------------------------------------------------------------------===// // NOTE: NO INCLUDE GUARD DESIRED! // Each entry below defines a single 1-bit flag. New entries MUST be appended // to the end of the feature/metadata list. DO NOT insert in the middle or // reorder existing entries. #ifndef HANDLE_BB_ADDR_MAP_FEATURE #define HANDLE_BB_ADDR_MAP_FEATURE(Name) #endif HANDLE_BB_ADDR_MAP_FEATURE(FuncEntryCount) HANDLE_BB_ADDR_MAP_FEATURE(BBFreq) HANDLE_BB_ADDR_MAP_FEATURE(BrProb) HANDLE_BB_ADDR_MAP_FEATURE(MultiBBRange) HANDLE_BB_ADDR_MAP_FEATURE(OmitBBEntries) HANDLE_BB_ADDR_MAP_FEATURE(CallsiteEndOffsets) HANDLE_BB_ADDR_MAP_FEATURE(BBHash) HANDLE_BB_ADDR_MAP_FEATURE(PostLinkCfg) #ifndef HANDLE_BB_ADDR_MAP_BB_METADATA #define HANDLE_BB_ADDR_MAP_BB_METADATA(Name) #endif HANDLE_BB_ADDR_MAP_BB_METADATA(HasReturn) // Block ends with a return (or tail call). HANDLE_BB_ADDR_MAP_BB_METADATA(HasTailCall) // Block ends with a tail call. HANDLE_BB_ADDR_MAP_BB_METADATA(IsEHPad) // Exception handling block. HANDLE_BB_ADDR_MAP_BB_METADATA(CanFallThrough) // Block can fall through to its next. HANDLE_BB_ADDR_MAP_BB_METADATA(HasIndirectBranch) // Block ends with an indirect branch. #undef HANDLE_BB_ADDR_MAP_FEATURE #undef HANDLE_BB_ADDR_MAP_BB_METADATA