mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-11-03 16:39:01 -06:00 
			
		
		
		
	shader: Add TryInstRecursive utility to values
This commit is contained in:
		@@ -57,6 +57,7 @@ public:
 | 
			
		||||
 | 
			
		||||
    [[nodiscard]] IR::Inst* Inst() const;
 | 
			
		||||
    [[nodiscard]] IR::Inst* InstRecursive() const;
 | 
			
		||||
    [[nodiscard]] IR::Inst* TryInstRecursive() const;
 | 
			
		||||
    [[nodiscard]] IR::Value Resolve() const;
 | 
			
		||||
    [[nodiscard]] IR::Reg Reg() const;
 | 
			
		||||
    [[nodiscard]] IR::Pred Pred() const;
 | 
			
		||||
@@ -308,6 +309,13 @@ inline IR::Inst* Value::InstRecursive() const {
 | 
			
		||||
    return inst;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
inline IR::Inst* Value::TryInstRecursive() const {
 | 
			
		||||
    if (IsIdentity()) {
 | 
			
		||||
        return inst->Arg(0).TryInstRecursive();
 | 
			
		||||
    }
 | 
			
		||||
    return type == Type::Opaque ? inst : nullptr;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
inline IR::Value Value::Resolve() const {
 | 
			
		||||
    if (IsIdentity()) {
 | 
			
		||||
        return inst->Arg(0).Resolve();
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user