llvm-project/polly/test
Michael Kruse fe0e5b3e43 [Polly] Insert !dbg metadata for emitted CallInsts.
The IR Verifier requires that every call instruction to an inlineable
function (among other things, its implementation must be visible in the
translation unit) must also have !dbg metadata attached to it. When
parallelizing, Polly emits calls to OpenMP runtime function out of thin
air, or at least not directly derived from a bounded list of previous
instruction. While we could search for instructions in the SCoP that has
some debug info attached to it, there is no guarantee that we find any.
Our solution is to generate a new DILocation that points to line 0 to
represent optimized code.

The OpenMP function implementation is usually not available in the
user's translation unit, but can become visible in an LTO build. For
the bug to appear, libomp must also be built with debug symbols.

IMHO, the IR verifier rule is too strict. Runtime functions can
also be inserted by other optimization passes, such as
LoopIdiomRecognize. When inserting a call to e.g. memset, it uses the
DebugLoc from a StoreInst from the unoptimized code. It is not
required to have !dbg metadata attached either.

Fixes #56692
2022-07-26 19:43:53 -05:00
..
CodeGen [Polly] Insert !dbg metadata for emitted CallInsts. 2022-07-26 19:43:53 -05:00
DeLICM [ValueTracking] Enable -branch-on-poison-as-ub by default 2022-06-01 10:46:06 +02:00
DeadCodeElimination Reland "Load pass plugins during option processing, so that plugin options are registered and live." 2022-03-18 03:27:53 +00:00
DependenceInfo [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
FlattenSchedule [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
ForwardOpTree Reland "Load pass plugins during option processing, so that plugin options are registered and live." 2022-03-18 03:27:53 +00:00
GPGPU [FileCheck] GetCheckTypeAbbreviation() to handle the misspelled case. 2022-05-26 12:20:15 +01:00
IstAstInfo [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
JSONExporter [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
MaximalStaticExpansion [Polly] Migrate -polly-mse to the new pass manager. 2022-06-01 13:37:58 -05:00
PruneUnprofitable Reland "Load pass plugins during option processing, so that plugin options are registered and live." 2022-03-18 03:27:53 +00:00
ScheduleOptimizer [Polly][MatMul] Abandon dependence analysis. 2022-06-29 17:20:05 -05:00
ScopDetect [IR] Don't use blockaddresses as callbr arguments 2022-07-15 10:18:17 +02:00
ScopDetectionDiagnostics [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
ScopInfo [IR] Enable opaque pointers by default 2022-06-02 09:40:56 +02:00
ScopInliner [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
Simplify Reland "Load pass plugins during option processing, so that plugin options are registered and live." 2022-03-18 03:27:53 +00:00
Support [polly] Fix NPM unittests after D121566. 2022-03-18 14:25:44 -05:00
Unit [lit] Fix setup of sanitizer environment 2022-05-19 19:24:16 -07:00
UnitIsl
CMakeLists.txt [Polly][test] Add dependency to count. 2021-08-28 22:50:07 -05:00
README
create_ll.sh [polly] Introduce -polly-print-* passes to replace -analyze. 2022-03-14 10:27:15 -05:00
lit.cfg [polly] Fix up regression test config with current features. 2021-07-30 13:44:48 -07:00
lit.site.cfg.in Reland "Load pass plugins during option processing, so that plugin options are registered and live." 2022-03-18 03:27:53 +00:00
polly.ll
update_check.py

README

place tests here