• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

daisytuner / docc / 24078663305

07 Apr 2026 11:19AM UTC coverage: 64.87%. First build
24078663305

Pull #622

github

web-flow
Merge dafb9ab5b into be4a18f39
Pull Request #622: Avoid Frequent Analysis Invalidation in Loop Scheduler

227 of 274 new or added lines in 14 files covered. (82.85%)

28840 of 44458 relevant lines covered (64.87%)

606.82 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

65.38
/opt/src/passes/offloading/gpu_tiling_pass.cpp
1
#include "sdfg/passes/offloading/gpu_tiling_pass.h"
2

3
#include "sdfg/analysis/loop_analysis.h"
4
#include "sdfg/structured_control_flow/structured_loop.h"
5
#include "sdfg/transformations/offloading/gpu_tiling.h"
6

7
namespace sdfg {
8
namespace passes {
9

10
GPUTilingPass::GPUTilingPass(const std::vector<structured_control_flow::Map*>& maps, size_t tile_size)
11
    : maps_(maps), tile_size_(tile_size) {}
3✔
12

13
bool GPUTilingPass::run_pass(builder::StructuredSDFGBuilder& builder, analysis::AnalysisManager& analysis_manager) {
3✔
14
    if (maps_.empty()) {
3✔
NEW
15
        return false;
×
NEW
16
    }
×
17

18
    auto& loop_analysis = analysis_manager.get<analysis::LoopAnalysis>();
3✔
19

20
    // Phase 1: Collect all applicable tiling targets
21
    std::vector<structured_control_flow::StructuredLoop*> candidates;
3✔
22

23
    for (auto* map : maps_) {
4✔
24
        for (auto* descendant : loop_analysis.descendants(map)) {
4✔
25
            if (auto* target_loop = dynamic_cast<structured_control_flow::StructuredLoop*>(descendant)) {
2✔
26
                transformations::GPUTiling tiling(*target_loop, tile_size_);
2✔
27
                if (tiling.can_be_applied(builder, analysis_manager)) {
2✔
NEW
28
                    candidates.push_back(target_loop);
×
NEW
29
                }
×
30
            }
2✔
31
        }
2✔
32
    }
4✔
33

34
    if (candidates.empty()) {
3✔
35
        return false;
3✔
36
    }
3✔
37

38
    // Phase 2: Apply all tilings
NEW
39
    for (auto* target_loop : candidates) {
×
NEW
40
        transformations::GPUTiling tiling(*target_loop, tile_size_);
×
NEW
41
        tiling.apply(builder, analysis_manager);
×
NEW
42
    }
×
43

NEW
44
    return true;
×
45
}
3✔
46

47
} // namespace passes
48
} // namespace sdfg
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc