P4C
The P4 Compiler
Loading...
Searching...
No Matches
Tofino Namespace Reference

Classes

struct  ActionDataBus
 
struct  InstructionMemory
 
struct  IXBar
 
class  MauAsmOutput
 
struct  Memories
 
class  SetupAttachedTables
 

Functions

void dump (const Memories *mem)
 
void emit_ixbar_hash (const PhvInfo &phv, std::ostream &out, indent_t indent, safe_vector< Slice > &match_data, safe_vector< Slice > &ghost, const ::IXBar::Use *use_, int hash_group, int &ident_bits_prev_alloc)
 
void emit_ixbar_hash_dist_ident (const PhvInfo &phv, std::ostream &out, indent_t indent, safe_vector< Slice > &match_data, const Tofino::IXBar::Use::HashDistHash &hdh, const safe_vector< const IR::Expression * > &)
 
void emit_ixbar_meter_alu_hash (const PhvInfo &phv, std::ostream &out, indent_t indent, const safe_vector< Slice > &match_data, const Tofino::IXBar::Use::MeterAluHash &mah, const safe_vector< const IR::Expression * > &field_list_order, const LTBitMatrix &sym_keys)
 
void emit_ixbar_proxy_hash (const PhvInfo &phv, std::ostream &out, indent_t indent, safe_vector< Slice > &match_data, const Tofino::IXBar::Use::ProxyHashKey &ph, const safe_vector< const IR::Expression * > &field_list_order, const LTBitMatrix &sym_keys)
 
std::ostream & operator<< (std::ostream &out, const Memories::result_bus_info &rbi)
 
std::ostream & operator<< (std::ostream &out, const Memories::search_bus_info &sbi)
 
std::ostream & operator<< (std::ostream &out, const Memories::table_alloc &ta)
 
std::ostream & operator<< (std::ostream &out, const safe_vector< Memories::table_alloc * > &v)
 

Detailed Description

Copyright (C) 2024 Intel Corporation

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

SPDX-License-Identifier: Apache-2.0

Function Documentation

◆ emit_ixbar_hash_dist_ident()

void Tofino::emit_ixbar_hash_dist_ident ( const PhvInfo & phv,
std::ostream & out,
indent_t indent,
safe_vector< Slice > & match_data,
const Tofino::IXBar::Use::HashDistHash & hdh,
const safe_vector< const IR::Expression * > &  )

Given a bitrange to allocate into the ixbar hash matrix, as well as a list of fields to be the identity, this coordinates the field slice to a portion of the bit range. This really only applies for identity matches.