llvm-project/llvm/test
Hongtao Yu 9641b9be9d [Inliner] Preserve !prof metadata when converting call to invoke.
When a callee function is inlined via an invoke instruction, every function call inside the callee, if not an invoke,  will be converted to an invoke after cloned to the caller body. I found that during the conversion the !prof metadata was dropped. This in turned caused a cloned indirect call not properly promoted in subsequent passes.

The particular scenario I was investigating was with AutoFDO and thinLTO. In prelink, no ICP was triggered (neither by the sample loader nor PGO ICP), no indirect call was promoted. This is because 1) the particular indirect call did not have inlined samples;  and 2) PGO ICP was intentionally disabled.  After inlining, the prof metadata was dropped. Then in postlink, PGO ICP jumped in but didn't do anything. Thus the opportunity was missed.

I'm making a simple fix to preserve !prof metadata when converting call to invoke.

Reviewed By: davidxl

Differential Revision: https://reviews.llvm.org/D125249
2022-05-09 15:08:09 -07:00
..
Analysis [SCEV] Fold umin_seq using known predicate 2022-05-09 16:35:08 +02:00
Assembler
Bindings [OCaml] Remove add_loop_unswitch use in test. 2022-04-29 11:09:51 +01:00
Bitcode Attributes: add a new `allocptr` attribute 2022-04-26 13:57:11 -04:00
BugPoint
CodeGen Modify DXILPrepare to emit no-op bitcasts 2022-05-09 13:40:47 -05:00
DebugInfo DWARFVerifier: Verify CU/TU index overlap issues 2022-05-05 18:18:53 +00:00
Demangle
Examples
ExecutionEngine
Feature [Passes] Remove legacy LoopUnswitch pass. 2022-04-29 10:30:49 +01:00
FileCheck
Instrumentation [test][msan] Relax order of param shadow 2022-05-07 21:17:44 -07:00
Integer
JitListener
LTO
Linker
MC [MC][X86] Add vcmpps disassembler tests for Issue #41491 2022-05-06 15:39:17 +01:00
MachineVerifier GlobalISel: Relax handling of G_ASSERT_* with source register classes 2022-04-22 10:49:50 -04:00
Object [AMDGPU] Add gfx11 subtarget ELF definition 2022-04-29 12:27:17 -04:00
ObjectYAML
Other [opt] Error on `opt -O# --foo-pass` 2022-05-09 09:53:24 -07:00
SafepointIRVerifier
Support
SymbolRewriter
TableGen [NFC][test] Replace hardcoded number with numeric substitution blocks 2022-05-06 08:08:34 +08:00
ThinLTO/X86
Transforms [Inliner] Preserve !prof metadata when converting call to invoke. 2022-05-09 15:08:09 -07:00
Unit
Verifier Revert "[asan] Emit .size directive for global object size before redzone" 2022-04-21 16:21:17 -07:00
YAMLParser
tools [LLVM][sancov] Inclusive language: Add -ignorelist option 2022-05-09 11:06:08 -04:00
.clang-format
CMakeLists.txt
TestRunner.sh
lit.cfg.py [NVPTX] Integrate ptxas to LIT tests 2022-04-28 14:59:45 +03:00
lit.site.cfg.py.in [NVPTX] Integrate ptxas to LIT tests 2022-04-28 14:59:45 +03:00