//===- bolt/Passes/PettisAndHansen.cpp ------------------------------------===// // // 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 file implements Pettis and Hansen code-layout algorithm. // //===----------------------------------------------------------------------===// #include "bolt/Passes/HFSort.h" #include "llvm/Support/Debug.h" #include "llvm/Support/Format.h" #include "llvm/Support/raw_ostream.h" #include <set> #include <unordered_map> #define DEBUG_TYPE … namespace llvm { namespace bolt { NodeId; Arc; Node; namespace { class ClusterArc { … }; class ClusterArcHash { … }; ClusterArcSet; void orderFuncs(const CallGraph &Cg, Cluster *C1, Cluster *C2) { … } } // namespace std::vector<Cluster> pettisAndHansen(const CallGraph &Cg) { … } } // namespace bolt } // namespace llvm