//===-- FuncletLayout.cpp - Contiguously lay out funclets -----------------===// // // 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 // //===----------------------------------------------------------------------===// // // This file implements basic block placement transformations which result in // funclets being contiguous. // //===----------------------------------------------------------------------===// #include "llvm/CodeGen/Analysis.h" #include "llvm/CodeGen/MachineFunction.h" #include "llvm/CodeGen/MachineFunctionPass.h" #include "llvm/CodeGen/Passes.h" #include "llvm/InitializePasses.h" usingnamespacellvm; #define DEBUG_TYPE … namespace { class FuncletLayout : public MachineFunctionPass { … }; } char FuncletLayout::ID = …; char &llvm::FuncletLayoutID = …; INITIALIZE_PASS(…) bool FuncletLayout::runOnMachineFunction(MachineFunction &F) { … }