llvm-project/polly/test
Michael Kruse 7175cffb21 [Polly] Reuse multiple uses in operand tree.
Recursively traversing the operand tree leads to an exponential blowup
if instructions are used multiple times due to every path leading to an
additional copy of the instructions after forwarding. This problem was
marked as a TODO in the code and was reported as a bug in llvm.org/PR47340.

Fix by caching already visited instructions and returning the cached
version when already visited. Instead of calling forwardTree() twice,
return a ForwardingAction structure that contains a lambda which will
carry-out the forwarding when requested. The lambdas are executed in
reverse-postorder to mimic the previous recursive calls unless there
is a reuse.

Fixes llvm.org/PR47340
2020-10-20 18:05:35 -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 [Polly] Reuse multiple uses in operand tree. 2020-10-20 18:05:35 -05: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 Revert "Reland "[SCEV] Model ptrtoint(SCEVUnknown) cast not as unknown, but as zext/trunc/self of SCEVUnknown"" and it's follow-ups 2020-10-14 16:09:18 +03: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 - specify address space when creating a pointer to a vector type 2020-10-14 11:17:15 -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][NewPM] Port Simplify to the new pass manager 2020-09-20 19:18:01 -07: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
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