Relax the constraints that ScopInliner looks for. Also allow it to pick up
functions whose *unique child* of the entry block is a Scop.
TODO: Look into why this crashes on COSMO.
Paths
| Differential D36852
[Polly] [ScopInliner] [WIP] Teach ScopInliner to inline not-fully-scop'd functions. Needs ReviewPublic Authored by bollu on Aug 17 2017, 4:44 PM.
Details Summary Relax the constraints that ScopInliner looks for. Also allow it to pick up TODO: Look into why this crashes on COSMO.
Diff Detail
Event TimelineComment Actions
Herald added subscribers: kbarton, nemanjai, mehdi_amini. · View Herald TranscriptAug 22 2017, 6:31 AM Comment Actions As far as I can tell, you're only looking at ValidRegions here, thus you are ignoring second-to-top-level regions that are not scoppable. What if those regions have sideeffects?
Revision Contents
Diff 112165 include/polly/CodeGen/CodeGeneration.h
lib/Analysis/ScopInfo.cpp
lib/CodeGen/CodeGeneration.cpp
lib/CodeGen/ManagedMemoryRewrite.cpp
lib/CodeGen/PPCGCodeGeneration.cpp
lib/Support/ISLTools.cpp
lib/Transform/ScheduleOptimizer.cpp
lib/Transform/ScopInliner.cpp
lib/Transform/ZoneAlgo.cpp
test/GPGPU/Inputs/libdevice-functions-copied-into-kernel_libdevice.ll
test/GPGPU/intrinsic-copied-into-kernel.ll
test/GPGPU/invalid-kernel-assert-verifymodule.ll
test/GPGPU/libdevice-functions-copied-into-kernel.ll
test/ScheduleOptimizer/pattern_matching_based_opts_splitmap.ll
test/ScheduleOptimizer/pattern_matching_based_opts_splitmap___%for.body---%for.end23.jscop
test/ScheduleOptimizer/pattern_matching_based_opts_splitmap___%for.body---%for.end23.jscop.transformed
test/ScopInfo/allow-all-parameters-dereferencable.ll
test/ScopInliner/scop-from-entry-successor.ll
tools/GPURuntime/GPUJIT.c
unittests/Isl/IslTest.cpp
|
"Whether a child of the top-level region contains a SCoP" ?