TPDE
Loading...
Searching...
No Matches
tpde::PHIRef Concept Reference

#include <IRAdaptor.hpp>

Concept definition

template<typename T, typename IRValue, typename IRBlockRef>
concept tpde::PHIRef = requires(T r) {
{ r.incoming_count() } -> std::convertible_to<u32>;
{
r.incoming_val_for_slot(std::declval<u32>())
} -> std::convertible_to<IRValue>;
{
r.incoming_block_for_slot(std::declval<u32>())
} -> std::convertible_to<IRBlockRef>;
{
r.incoming_val_for_block(std::declval<IRBlockRef>())
} -> std::convertible_to<IRValue>;
}

Detailed Description

PHI-Nodes are a special case of IRValues and need to be inspected more thoroughly by the compiler. Therefore, they need to expose their special properties, namely the number of incoming values, the value and block for each slot and the incoming value for each block

Definition at line 59 of file IRAdaptor.hpp.