llvm-project/llvm
wlei b1a45c62f0 [llvm-profgen] Ignore branch count against outline function
For some transformations like hot-cold split or coro split, it can outline its part of function ranges. Since sample loader is the early stage of backend and no split happens at that time, compiler can't recognize those function, so in llvm-profgen we should attribute the sample to the original function. This is already done for the body range samples since we use the symbols from dwarf which is created before the split.

But for branch samples, the call from master function to its outlined function is actually not a call to the original function, we shouldn't add head/callsie samples for it. So instead of dwarf symbol, we use the symbols from symbol table and ignore those functions with special suffixes(like `.cold` ,`.resume`) for accumulating the callsite/head samples.

Reviewed By: hoy, wenlei

Differential Revision: https://reviews.llvm.org/D110864
2021-10-07 14:03:34 -07:00
..
benchmarks
bindings
cmake Add .cmt and .cmti files for OCaml bindings 2021-10-05 19:36:12 +05:30
docs [LangRef] Update ifunc syntax 2021-10-07 11:14:40 -07:00
examples [ORC][examples] Port LLJITWithRemoteDebugging to SimpleRemoteEPC 2021-09-29 10:20:41 +02:00
include [scev] Put comments on the right fields [nfc] 2021-10-07 13:39:26 -07:00
lib Do not emit prologue_end for line 0 locs if there is a non-zero loc present 2021-10-07 13:54:28 -07:00
projects
resources
runtimes [runtimes] Ensure required deps for tests targets are actually built 2021-09-29 14:41:33 -07:00
test [llvm-profgen] Ignore branch count against outline function 2021-10-07 14:03:34 -07:00
tools [llvm-profgen] Ignore branch count against outline function 2021-10-07 14:03:34 -07:00
unittests [MachineInstr] Move MIParser's DBG_VALUE RegState::Debug invariant into MachineInstr::addOperand 2021-10-07 16:08:52 +01:00
utils [gn build] Port 7fb9f99f3b 2021-10-07 15:19:45 +00:00
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt Revert "[CMake] Enable LLVM_ENABLE_PER_TARGET_RUNTIME_DIR by default on Linux" 2021-09-28 18:23:43 +03:00
CODE_OWNERS.TXT
CREDITS.TXT
LICENSE.TXT
README.txt
RELEASE_TESTERS.TXT
configure
llvm.spec.in

README.txt

The LLVM Compiler Infrastructure
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.