llvm-project/polly/test
Michael Kruse 6983741eaa [Polly] Fix use-after-free.
VirtualUse of type UseKind::Inter expects the definition of a
llvm::Value to be represented in another statement. In the bug report
that statement has been removed due to its domain being empty.
Scop::InstStmtMap for the llvm::Value's defintion still pointed to the
removed statement, which resulted in the use-after-free.

The defintion statement was removed by Simplify because it was
considered to not be reachable by other uses; trivially because it is
never executed due to its empty domain. However, no such thing happend
to the using statement using the value altough its domain is also empty.

Fix by always removing statements with empty domains in Simplify since
these are not properly analyzable. A UseKind::Inter should always have a
statement with its defintion due to LLVM's SSA form.
Scop::removeStmtNotInDomainMap() also removes statements with empty
domains but does so without considering the context as used by
Simplify's analyzes.

In another angle, InstStmtMap pointing to removed statements should not
happen either and ForwardOpTree would have bailed out if the llvm::Value
definition was not represented by a statement. This will be corrected in
a followup-commit.

This fixes llvm.org/PR47098
2020-08-22 10:10:49 -05:00
..
CodeGen
DeLICM Revert "Update polly test for SCEV change." 2019-09-30 07:47:08 +00:00
DeadCodeElimination [BasicAA] Replace -basicaa with -basic-aa in polly 2020-06-30 15:50:17 -07:00
DependenceInfo [BasicAA] Replace -basicaa with -basic-aa in polly 2020-06-30 15:50:17 -07:00
FlattenSchedule
ForwardOpTree Fix polly tests after D79968. 2020-05-15 15:15:09 -07:00
GPGPU Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
Isl [Polly] Update isl to isl-0.22.1-416-g61d6dc75. 2020-08-21 00:28:44 -05:00
JSONExporter Revert "Revert "Reland "[Support] make report_fatal_error `abort` instead of `exit`""" 2020-02-13 10:16:06 -08:00
MaximalStaticExpansion
PruneUnprofitable
RewriteByReferenceParameters
ScheduleOptimizer [Polly] Fix prevectorization of fused loops. 2020-07-10 16:42:03 -05:00
ScopDetect [BasicAA] Replace -basicaa with -basic-aa in polly 2020-06-30 15:50:17 -07:00
ScopDetectionDiagnostics [BasicAA] Replace -basicaa with -basic-aa in polly 2020-06-30 15:50:17 -07:00
ScopInfo [FIX] Resolve test failure in polly/test/ScopInfo/memcpy-raw-source.ll 2020-07-28 09:15:40 -07:00
ScopInliner
Simplify [Polly] Fix use-after-free. 2020-08-22 10:10:49 -05:00
Support
Unit Generalize the pass registration mechanism used by Polly to any third-party tool 2020-01-02 16:45:31 +01:00
UnitIsl
CMakeLists.txt
README
create_ll.sh Pass compiler arguments in the create_ll.sh script 2018-05-02 15:27:32 +00:00
lit.cfg
lit.site.cfg.in Generalize the pass registration mechanism used by Polly to any third-party tool 2020-01-02 16:45:31 +01:00
polly.ll
update_check.py Harmonize Python shebang 2020-07-16 21:53:45 +02:00

README

place tests here