mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 05:08:08 +02:00
glsl: mark variable as loop constant when it is set read only
Patch modifies is_loop_constant() to take advantage of 'read_only' bit in ir_variable to detect a loop constant. Variables marked read-only are loop constant like mentioned by a comment in the function. v2: remove unnecessary comment (Francisco) Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=82537 Tested-by: Michel Dänzer <michel.daenzer@amd.com> Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com> Reviewed-by: Francisco Jerez <currojerez@riseup.net>
This commit is contained in:
parent
82edcb918b
commit
096ee4c3b0
1 changed files with 2 additions and 7 deletions
|
|
@ -205,10 +205,10 @@ public:
|
|||
inline bool is_loop_constant() const
|
||||
{
|
||||
const bool is_const = (this->num_assignments == 0)
|
||||
|| ((this->num_assignments == 1)
|
||||
|| (((this->num_assignments == 1)
|
||||
&& !this->conditional_or_nested_assignment
|
||||
&& !this->read_before_write
|
||||
&& this->rhs_clean);
|
||||
&& this->rhs_clean) || this->var->data.read_only);
|
||||
|
||||
/* If the RHS of *the* assignment is clean, then there must be exactly
|
||||
* one assignment of the variable.
|
||||
|
|
@ -216,11 +216,6 @@ public:
|
|||
assert((this->rhs_clean && (this->num_assignments == 1))
|
||||
|| !this->rhs_clean);
|
||||
|
||||
/* Variables that are marked read-only *MUST* be loop constant.
|
||||
*/
|
||||
assert(!this->var->data.read_only
|
||||
|| (this->var->data.read_only && is_const));
|
||||
|
||||
return is_const;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue