mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-06-19 08:28:21 +02:00
nv50/ir: add isUniform query to Values
This commit is contained in:
parent
e43a3a66a9
commit
a765d7880f
2 changed files with 24 additions and 0 deletions
|
|
@ -268,6 +268,16 @@ LValue::clone(ClonePolicy<Function>& pol) const
|
|||
return that;
|
||||
}
|
||||
|
||||
bool
|
||||
LValue::isUniform() const
|
||||
{
|
||||
if (defs.size() > 1)
|
||||
return false;
|
||||
Instruction *insn = getInsn();
|
||||
// let's not try too hard here for now ...
|
||||
return !insn->srcExists(1) && insn->getSrc(0)->isUniform();
|
||||
}
|
||||
|
||||
Symbol::Symbol(Program *prog, DataFile f, ubyte fidx)
|
||||
{
|
||||
baseSym = NULL;
|
||||
|
|
@ -297,6 +307,15 @@ Symbol::clone(ClonePolicy<Function>& pol) const
|
|||
return that;
|
||||
}
|
||||
|
||||
bool
|
||||
Symbol::isUniform() const
|
||||
{
|
||||
return
|
||||
reg.file != FILE_SYSTEM_VALUE &&
|
||||
reg.file != FILE_MEMORY_LOCAL &&
|
||||
reg.file != FILE_SHADER_INPUT;
|
||||
}
|
||||
|
||||
ImmediateValue::ImmediateValue(Program *prog, uint32_t uval)
|
||||
{
|
||||
memset(®, 0, sizeof(reg));
|
||||
|
|
|
|||
|
|
@ -460,6 +460,7 @@ public:
|
|||
|
||||
virtual bool equals(const Value *, bool strict = false) const;
|
||||
virtual bool interfers(const Value *) const;
|
||||
virtual bool isUniform() const { return true; }
|
||||
|
||||
inline Value *rep() const { return join; }
|
||||
|
||||
|
|
@ -500,6 +501,8 @@ public:
|
|||
LValue(Function *, LValue *);
|
||||
~LValue() { }
|
||||
|
||||
virtual bool isUniform() const;
|
||||
|
||||
virtual LValue *clone(ClonePolicy<Function>&) const;
|
||||
|
||||
virtual int print(char *, size_t, DataType ty = TYPE_NONE) const;
|
||||
|
|
@ -522,6 +525,8 @@ public:
|
|||
|
||||
virtual bool equals(const Value *that, bool strict) const;
|
||||
|
||||
virtual bool isUniform() const;
|
||||
|
||||
virtual int print(char *, size_t, DataType ty = TYPE_NONE) const;
|
||||
|
||||
// print with indirect values
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue