llvm-project/llvm/lib/Bitcode/Reader
Zequan Wu cb22ab7403 Add nomerge function attribute to supress tail merge optimization in simplifyCFG
We want to add a way to avoid merging identical calls so as to keep the
separate debug-information for those calls. There is also an asan
usecase where having this attribute would be beneficial to avoid
alternative work-arounds.

Here is the link to the feature request:
https://bugs.llvm.org/show_bug.cgi?id=42783.

`nomerge` is different from `noline`. `noinline` prevents function from
inlining at callsites, but `nomerge` prevents multiple identical calls
from being merged into one.

This patch adds `nomerge` to disable the optimization in IR level. A
followup patch will be needed to let backend understands `nomerge` and
avoid tail merge at backend.

Reviewed By: asbirlea, rnk

Differential Revision: https://reviews.llvm.org/D78659
2020-05-12 16:49:20 -07:00
..
BitReader.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
BitcodeAnalyzer.cpp [llvm-bcanalyzer] Simplify code. NFCI. 2020-04-06 12:50:50 +02:00
BitcodeReader.cpp Add nomerge function attribute to supress tail merge optimization in simplifyCFG 2020-05-12 16:49:20 -07:00
CMakeLists.txt [cmake] Explicitly mark libraries defined in lib/ as "Component Libraries" 2019-11-21 10:48:08 -08:00
LLVMBuild.txt [Bitcode] Move Bitstream to a separate library 2019-07-03 22:40:07 +00:00
MetadataLoader.cpp Recommit: DebugInfo: Fix rangesBaseAddress DICompileUnit bitcode serialization/deserialization 2020-04-20 17:29:04 -07:00
MetadataLoader.h MetadataLoader.h - remove unnecessary Error forward declaration. NFC. 2020-04-24 15:33:10 +01:00
ValueList.cpp [BitcodeReader] Use tighter upper bound to validate forward references. 2019-07-14 12:35:50 +00:00
ValueList.h [BitcodeReader] Use tighter upper bound to validate forward references. 2019-07-14 12:35:50 +00:00