@@ -235,12 +235,11 @@ class QD_DLL_EXPORT Program {
235235 // Identity-key for idempotent re-registration. The diagnose path NEVER dereferences this pointer;
236236 // it stores all size-expression data inline (`size_exprs`) so the entry is self-contained and
237237 // immune to lifetime issues from the underlying `AdStackSizingInfo` (LLVM) /
238- // `AdStackSizingAttribs` (SPIR-V) struct moves. Two structs because LLVM and SPIR-V backends store
239- // launch-time strides differently (byte-indexed vs element-indexed) and SPIR-V doesn't carry the
240- // dynamic-range-for fields LLVM needs - unifying them would be a backend-pipeline refactor far
241- // outside this PR's scope. Inlining `size_exprs` into the registry is the cheapest way to make
242- // the registry uniform across both backends without touching the launchers' on-the-hot-path
243- // structs.
238+ // `AdStackSizingAttribs` (SPIR-V) struct moves. Two structs because LLVM and SPIR-V backends store launch-time
239+ // strides differently (byte-indexed vs element-indexed) and SPIR-V doesn't carry the dynamic-range-for fields LLVM
240+ // needs - unifying them would be a backend-pipeline refactor far outside this PR's scope. Inlining `size_exprs`
241+ // into the registry is the cheapest way to make the registry uniform across both backends without touching the
242+ // launchers' on-the-hot-path structs.
244243 struct AdStackSizingInfoEntry {
245244 const void *identity_key{nullptr };
246245 std::string kernel_name;
@@ -253,10 +252,9 @@ class QD_DLL_EXPORT Program {
253252 int task_id_in_kernel,
254253 std::vector<int > allocated_max_sizes,
255254 std::vector<SerializedSizeExpr> size_exprs);
256- // Refresh just the `size_exprs` snapshot in an existing registry entry. Used by the LLVM launcher
257- // on the first launch of a task whose codegen-time registration could not capture size_exprs (the
258- // codegen-time `current_task->ad_stack` had not yet been finalized). No-op for `id == 0` and ids
259- // outside the registry range.
255+ // Refresh just the `size_exprs` snapshot in an existing registry entry. Used by the LLVM launcher on the first
256+ // launch of a task whose codegen-time registration could not capture size_exprs (the codegen-time
257+ // `current_task->ad_stack` had not yet been finalized). No-op for `id == 0` and ids outside the registry range.
260258 void update_adstack_sizing_info_size_exprs (uint32_t id, std::vector<SerializedSizeExpr> size_exprs);
261259 // Returns a *copy* of the registry entry (not a pointer into the underlying vector) so the caller can
262260 // safely hold the data across operations that might trigger another `register_adstack_sizing_info` and
@@ -278,9 +276,8 @@ class QD_DLL_EXPORT Program {
278276 bool confirmed_invalid_cache{false };
279277 };
280278 AdStackOverflowDiagnosis diagnose_adstack_overflow (uint32_t task_id) const ;
281- // Convenience wrapper retained for the C++ unit test surface that exercises just the message
282- // formatting; production code uses `diagnose_adstack_overflow` to also act on the confirmed-cause
283- // signal.
279+ // Convenience wrapper that returns just the message string; production code uses `diagnose_adstack_overflow` to
280+ // also act on the confirmed-cause signal.
284281 std::string diagnose_adstack_overflow_message (uint32_t task_id) const ;
285282
286283 /* *
0 commit comments