|
| Argument (IR::ID n, le_bitrange pf) |
|
void | dbprint (std::ostream &out) const override |
|
bool | equiv_value (const Parameter *ad, bool check_cond=true) const override |
|
bool | from_p4_program () const override |
|
const Parameter * | get_extended_param (uint32_t extension, const Parameter *) const override |
|
bool | is_next_bit_of_param (const Parameter *ad, bool) const override |
|
cstring | name () const override |
|
bool | only_one_overlap_solution () const override |
|
cstring | originalName () const |
|
const Parameter * | overlap (const Parameter *ad, bool guaranteed_one_overlap, le_bitrange *my_overlap, le_bitrange *ad_overlap) const override |
|
le_bitrange | param_field () const |
|
int | size () const override |
|
const Parameter * | split (int lo, int hi) const override |
|
virtual bool | can_merge (const Parameter *param) const |
|
bool | can_overlap_ranges (le_bitrange my_range, le_bitrange ad_range, le_bitrange &overlap, le_bitrange *my_overlap, le_bitrange *ad_overlap) const |
|
cstring | cond_name () const |
|
bool | equiv_cond (const Parameter *p) const |
|
template<typename T > |
bool | is () const |
|
bool | is_cond_type (ModConditionally_t type) const |
|
virtual bool | is_subset_of (const Parameter *param) const |
|
virtual const Parameter * | merge (const Parameter *param) const |
|
void | set_cond (const Parameter *p) |
|
void | set_cond (ModConditionally_t ct, cstring n) |
|
template<typename T > |
const T * | to () const |
|
void | print () const |
|
This class is to represent a slice of an IR::MAU::ActionArg, essentially any argument that appears as a direct argument of an action and is used in an ALU operation:
Let's take the following example:
action act(bit<8> param1, bit<8> param2) { hdr.f1 = param1; hdr.f2 = param2; }
All valid bitranges of param1 and param2, e.g. param1[7:0] or param2[5:4] would be valid instantiations of the Argument class