commit | 03dabcdca5606e67a484ddd41571590e2a027005 | [log] [tgz] |
---|---|---|
author | dan sinclair <dsinclair@chromium.org> | Tue Apr 01 08:43:40 2025 -0700 |
committer | Dawn LUCI CQ <dawn-scoped@luci-project-accounts.iam.gserviceaccount.com> | Tue Apr 01 08:43:40 2025 -0700 |
tree | 7099302f8e8c6d9de0db1be74703dcd1c5c7a896 | |
parent | ffa03675bbdd3fe92e309ce44dcd3159483baa41 [diff] |
Revert "Range Analysis: Get loop exit condition from body block" This reverts commit 1411699ba4cdf29eca037c4320543ab8189bad28. Reason for revert: Crashing on the cmake-linux-clang-dbg-x64-ubsan bot [ RUN ] IR_IntegerRangeAnalysisTest.AnalyzeLoopBody_Failure_Index_LessThan_Min_I32 /b/s/w/ir/cache/uncached/dawn/src/tint/lang/core/number.h:176:46: runtime error: negation of -2147483648 cannot be represented in type 'type' (aka 'int'); cast to an unsigned type to negate this value to itself Original change's description: > Range Analysis: Get loop exit condition from body block > > This patch is the third part to implement the computation of the > range on the loop control variables. In this patch we implement the > function `GetBinaryToCompareLoopControlVariableInLoopBody()` to get > the condition to exit the loop in the loop body block if the loop > meets the below requirements (a straightforward for-loop): > - The loop control variable is only used as the parameter of the > load instruction. > - The first instruction is to load the loop control variable into a > temporary variable. > - The second instruction is to compare the temporary variable with > a constant value and save the result to a boolean variable. > - The second instruction cannot be a comparison that will never be > true (out of range of 32-bit integer). > - The third instruction is an `ifelse` expression that uses the > boolean variable got in the second instruction as the condition. > - The true block of the above `ifelse` expression doesn't contain > `exit_loop`. > - The false block of the above `ifelse` expression only contains > `exit_loop`. > > Bug: chromium:348701956 > Test: tint_unittests > Change-Id: Ie99911791eb6530e6d081ac9b54c2ec74e1be64c > Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/233294 > Commit-Queue: Jiawei Shao <jiawei.shao@intel.com> > Reviewed-by: James Price <jrprice@google.com> TBR=jiawei.shao@intel.com,dneto@google.com,jrprice@google.com,dawn-scoped@luci-project-accounts.iam.gserviceaccount.com No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:348701956 Change-Id: Idf151f39c2b25d66d0ce40dd31300735f3aabf76 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/234094 Reviewed-by: James Price <jrprice@google.com> Commit-Queue: James Price <jrprice@google.com> Reviewed-by: dan sinclair <dsinclair@chromium.org> Auto-Submit: dan sinclair <dsinclair@chromium.org>
Dawn is an open-source and cross-platform implementation of the WebGPU standard. More precisely it implements webgpu.h
that is a one-to-one mapping with the WebGPU IDL. Dawn is meant to be integrated as part of a larger system and is the underlying implementation of WebGPU in Chromium.
Dawn provides several WebGPU building blocks:
webgpu.h
version that Dawn implements.webgpu.h
.Helpful links:
Developer documentation:
User documentation: (TODO, figure out what overlaps with the webgpu.h docs)
BSD 3-Clause License, please see LICENSE.
This is not an officially supported Google product.