diff options
| author | Ulf Hermann <[email protected]> | 2025-10-30 10:15:15 +0100 | 
|---|---|---|
| committer | Ulf Hermann <[email protected]> | 2025-10-31 12:29:24 +0100 | 
| commit | c7d5375714f5dc706416ea62375092f5c1214422 (patch) | |
| tree | 1f6c47a34ad6adc7df6d6a0d1b97b5016301a8ea /tests/auto/quickcontrols/qquickapplicationwindow/tst_qquickapplicationwindow.cpp | |
| parent | 27f66343163b6d565c93f3969459d350da812d13 (diff) | |
We cannot pass registers that are potentially affected by side effect
as arguments to calls. For this to work, we need to sharpen the side
effect detection some more.
1. A conversion is always "var" which can be affected by side effects.
   However, the actual question is whether one of the conversion
   origins can be affected by side effects. A conversion of "int" and
   "undefined", for example, can certainly not be affected.
2. When determining side effects we need to look at the original types,
   not the adjusted ones. Adjusted types are often "var" because we need
   to pass a value as "var" to some function. That doesn't mean the
   value can be affected by side effects, though.
3. When generating the write-back, we should first check if it's
   necessary at all before looking for side effects.
Furthermore, we need to slightly adjust the deltablue benchmark since
two values were potentially affected by side effects. The walkStrength
may be shadowed by a type with internal structure. Only at the call site
of the weaker() and stronger() functions it would then be collapsed into
int. However, those function calls might change the original
walkStrength, thereby producing a side effect for further calls. We can
exclude this effect by collapsing to Number right away using the '+'
operator.
Finally, we need to make the initialization of the Categorizer benchmark
non-Strict. The loop that writes into an array of type unknown until the
return statement while calling a function on every iteration is
obviously affected by side effects. However, the meat of the benchmark
is actually not the initialization. So that should be fine.
Pick-to: 6.10 6.8
Fixes: QTBUG-141420
Change-Id: Iad47eddcf0afaa4e502f1d151cf383a6fd23f5ba
Reviewed-by: Olivier De Cannière <[email protected]>
Reviewed-by: Sami Shalayel <[email protected]>
Diffstat (limited to 'tests/auto/quickcontrols/qquickapplicationwindow/tst_qquickapplicationwindow.cpp')
0 files changed, 0 insertions, 0 deletions
