This adds profile guided layout using the Call-Chain Clustering (C³) heuristic from https://research.fb.com/wp-content/uploads/2017/01/cgo2017-hfsort-final1.pdf . RFC: [llvm-dev] [RFC] Profile guided section layout http://lists.llvm.org/pipermail/llvm-dev/2017-June/114178.html Pass `--call-graph-ordering-file <file>` to read a call graph profile where each line has the format: <from symbol> <to symbol> <call count> Differential Revision: https://reviews.llvm.org/D36351 llvm-svn: 330234
24 lines
615 B
C++
24 lines
615 B
C++
//===- CallGraphSort.h ------------------------------------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Linker
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLD_ELF_CALL_GRAPH_SORT_H
|
|
#define LLD_ELF_CALL_GRAPH_SORT_H
|
|
|
|
#include "llvm/ADT/DenseMap.h"
|
|
|
|
namespace lld {
|
|
namespace elf {
|
|
class InputSectionBase;
|
|
|
|
llvm::DenseMap<const InputSectionBase *, int> computeCallGraphProfileOrder();
|
|
} // namespace elf
|
|
} // namespace lld
|
|
|
|
#endif
|