-
Notifications
You must be signed in to change notification settings - Fork 454
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Deploying to gh-pages from @ 660779e 🚀
- Loading branch information
Showing
20,863 changed files
with
2,381,881 additions
and
0 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
There are no files selected for viewing
Empty file.
Large diffs are not rendered by default.
Oops, something went wrong.
283 changes: 283 additions & 0 deletions
283
pr-preview/5112/abstract__execution__state_8h_source.html
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
427 changes: 427 additions & 0 deletions
427
pr-preview/5112/action__constraint__solver_8h_source.html
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,200 @@ | ||
<!-- HTML header for doxygen 1.13.0--> | ||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | ||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US"> | ||
<head> | ||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> | ||
<meta http-equiv="X-UA-Compatible" content="IE=11"/> | ||
<meta name="generator" content="Doxygen 1.13.0"/> | ||
<meta name="viewport" content="width=device-width, initial-scale=1"/> | ||
<title>P4 Compiler Documentation (P4C): action_mutex.h Source File</title> | ||
<link rel="icon" href="p4-fav.svg" type="image/x-icon" /> | ||
<link href="tabs.css" rel="stylesheet" type="text/css"/> | ||
<script type="text/javascript" src="jquery.js"></script> | ||
<script type="text/javascript" src="dynsections.js"></script> | ||
<!-- Add link to paragraphs --> | ||
<script type="text/javascript" src="doxygen-awesome-paragraph-link.js"></script> | ||
<script type="text/javascript"> | ||
DoxygenAwesomeParagraphLink.init() | ||
</script> | ||
<!-- Add copy button to code fragments --> | ||
<script type="text/javascript" src="doxygen-awesome-fragment-copy-button.js"></script> | ||
<script type="text/javascript"> | ||
DoxygenAwesomeFragmentCopyButton.init() | ||
</script> | ||
<!-- Add dark mode toggle --> | ||
<script type="text/javascript" src="doxygen-awesome-darkmode-toggle.js"></script> | ||
<script type="text/javascript"> | ||
DoxygenAwesomeDarkModeToggle.init() | ||
</script> | ||
<!-- Add interactive TOC --> | ||
<script type="text/javascript" src="doxygen-awesome-interactive-toc.js"></script> | ||
<script type="text/javascript"> | ||
DoxygenAwesomeInteractiveToc.init() | ||
</script> | ||
<link href="navtree.css" rel="stylesheet" type="text/css"/> | ||
<script type="text/javascript" src="navtreedata.js"></script> | ||
<script type="text/javascript" src="navtree.js"></script> | ||
<script type="text/javascript" src="resize.js"></script> | ||
<script type="text/javascript" src="cookie.js"></script> | ||
<link href="search/search.css" rel="stylesheet" type="text/css"/> | ||
<script type="text/javascript" src="search/searchdata.js"></script> | ||
<script type="text/javascript" src="search/search.js"></script> | ||
<link href="doxygen.css" rel="stylesheet" type="text/css" /> | ||
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/> | ||
<link href="doxygen-awesome-sidebar-only.css" rel="stylesheet" type="text/css"/> | ||
<link href="doxygen-awesome-sidebar-only-darkmode-toggle.css" rel="stylesheet" type="text/css"/> | ||
<link href="doxygen-awesome-interactive-toc.js" rel="stylesheet" type="text/css"/> | ||
<link href="cards.css" rel="stylesheet" type="text/css"/> | ||
<link href="flow.css" rel="stylesheet" type="text/css"/> | ||
<link href="p4c_custom.css" rel="stylesheet" type="text/css"/> | ||
</head> | ||
<body> | ||
<div id="top"><!-- do not remove this div, it is closed by doxygen! --> | ||
<div id="titlearea"> | ||
<table cellspacing="0" cellpadding="0"> | ||
<tbody> | ||
<tr id="projectrow"> | ||
<td id="projectlogo"><img alt="Logo" src="p4-logo.png"/></td> | ||
<td id="projectalign"> | ||
<div id="projectname">P4C | ||
</div> | ||
<div id="projectbrief">The P4 Compiler</div> | ||
</td> | ||
</tr> | ||
</tbody> | ||
</table> | ||
</div> | ||
<!-- end header part --> | ||
<!-- Generated by Doxygen 1.13.0 --> | ||
<script type="text/javascript"> | ||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ | ||
var searchBox = new SearchBox("searchBox", "search/",'.html'); | ||
/* @license-end */ | ||
</script> | ||
<script type="text/javascript"> | ||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ | ||
$(function() { codefold.init(0); }); | ||
/* @license-end */ | ||
</script> | ||
<script type="text/javascript" src="menudata.js"></script> | ||
<script type="text/javascript" src="menu.js"></script> | ||
<script type="text/javascript"> | ||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ | ||
$(function() { | ||
initMenu('',true,false,'search.php','Search',true); | ||
$(function() { init_search(); }); | ||
}); | ||
/* @license-end */ | ||
</script> | ||
<div id="main-nav"></div> | ||
</div><!-- top --> | ||
<div id="side-nav" class="ui-resizable side-nav-resizable"> | ||
<div id="nav-tree"> | ||
<div id="nav-tree-contents"> | ||
<div id="nav-sync" class="sync"></div> | ||
</div> | ||
</div> | ||
<div id="splitbar" style="-moz-user-select:none;" | ||
class="ui-resizable-handle"> | ||
</div> | ||
</div> | ||
<script type="text/javascript"> | ||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ | ||
$(function(){initNavTree('action__mutex_8h_source.html',''); initResizable(true); }); | ||
/* @license-end */ | ||
</script> | ||
<div id="doc-content"> | ||
<!-- window showing the filter options --> | ||
<div id="MSearchSelectWindow" | ||
onmouseover="return searchBox.OnSearchSelectShow()" | ||
onmouseout="return searchBox.OnSearchSelectHide()" | ||
onkeydown="return searchBox.OnSearchSelectKey(event)"> | ||
</div> | ||
|
||
<!-- iframe showing the search results (closed by default) --> | ||
<div id="MSearchResultsWindow"> | ||
<div id="MSearchResults"> | ||
<div class="SRPage"> | ||
<div id="SRIndex"> | ||
<div id="SRResults"></div> | ||
<div class="SRStatus" id="Loading">Loading...</div> | ||
<div class="SRStatus" id="Searching">Searching...</div> | ||
<div class="SRStatus" id="NoMatches">No Matches</div> | ||
</div> | ||
</div> | ||
</div> | ||
</div> | ||
|
||
<div class="header"> | ||
<div class="headertitle"><div class="title">action_mutex.h</div></div> | ||
</div><!--header--> | ||
<div class="contents"> | ||
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span></div> | ||
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div> | ||
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#ifndef BF_P4C_MAU_ACTION_MUTEX_H_</span></div> | ||
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#define BF_P4C_MAU_ACTION_MUTEX_H_</span></div> | ||
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div> | ||
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#include <map></span></div> | ||
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div> | ||
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor">#include "backends/tofino/bf-p4c/mau/mau_visitor.h"</span></div> | ||
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="preprocessor">#include "lib/symbitmatrix.h"</span></div> | ||
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div> | ||
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="keyword">using namespace </span><a class="code hl_namespace" href="namespace_p4.html">P4</a>;</div> | ||
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div> | ||
<div class="foldopen" id="foldopen00029" data-start="{" data-end="};"> | ||
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"><a class="line" href="class_action_mutually_exclusive.html"> 29</a></span><span class="keyword">class </span><a class="code hl_class" href="class_action_mutually_exclusive.html">ActionMutuallyExclusive</a> : <span class="keyword">public</span> <a class="code hl_class" href="class_mau_inspector.html">MauInspector</a> {</div> | ||
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <span class="comment">// map action to ids</span></div> | ||
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> std::map<const IR::MAU::Action *, int> action_ids;</div> | ||
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="comment">// map table to all actions that will be executed after applying it.</span></div> | ||
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> std::map<const IR::MAU::Table *, bitvec> action_succ;</div> | ||
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="comment">// action mutex matrix</span></div> | ||
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <a class="code hl_class" href="class_p4_1_1_sym_bit_matrix.html">SymBitMatrix</a> not_mutex;</div> | ||
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keywordtype">bool</span> preorder(<span class="keyword">const</span> IR::MAU::Table *t)<span class="keyword"> override </span>{</div> | ||
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> *act : Values(t->actions)) {</div> | ||
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keywordflow">if</span> (!action_ids.count(act)) action_ids.emplace(act, action_ids.size());</div> | ||
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> name_actions[t->externalName() + <span class="stringliteral">"."</span> + act->name] = act;</div> | ||
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> }</div> | ||
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div> | ||
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> }</div> | ||
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <span class="keywordtype">void</span> postorder(<span class="keyword">const</span> IR::MAU::Table *tbl) <span class="keyword">override</span>;</div> | ||
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="keywordtype">void</span> postorder(<span class="keyword">const</span> IR::MAU::TableSeq *seq) <span class="keyword">override</span>;</div> | ||
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div> | ||
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <a class="code hl_class" href="class_p4_1_1_visitor_1_1profile__t.html">profile_t</a> init_apply(<span class="keyword">const</span> <a class="code hl_class" href="class_p4_1_1_i_r_1_1_node.html">IR::Node</a> *root)<span class="keyword"> override </span>{</div> | ||
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <a class="code hl_class" href="class_p4_1_1_visitor_1_1profile__t.html">profile_t</a> rv = MauInspector::init_apply(root);</div> | ||
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> action_ids.clear();</div> | ||
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> action_succ.clear();</div> | ||
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> not_mutex.clear();</div> | ||
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keywordflow">return</span> rv;</div> | ||
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> }</div> | ||
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div> | ||
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">public</span>:</div> | ||
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordtype">bool</span> operator()(<span class="keyword">const</span> IR::MAU::Action *a, <span class="keyword">const</span> IR::MAU::Action *b)<span class="keyword"> const </span>{</div> | ||
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keywordflow">return</span> !not_mutex(action_ids.at(a), action_ids.at(b));</div> | ||
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> }</div> | ||
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> </div> | ||
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="comment">// For unit-tests</span></div> | ||
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">const</span> std::map<const IR::MAU::Action *, int> &actions()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> action_ids; }</div> | ||
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="comment">// Maping action names to pointers</span></div> | ||
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> std::map<cstring, const IR::MAU::Action *> name_actions;</div> | ||
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span>};</div> | ||
</div> | ||
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> </div> | ||
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><span class="preprocessor">#endif </span><span class="comment">/* BF_P4C_MAU_ACTION_MUTEX_H_ */</span><span class="preprocessor"></span></div> | ||
<div class="ttc" id="aclass_action_mutually_exclusive_html"><div class="ttname"><a href="class_action_mutually_exclusive.html">ActionMutuallyExclusive</a></div><div class="ttdef"><b>Definition</b> action_mutex.h:29</div></div> | ||
<div class="ttc" id="aclass_mau_inspector_html"><div class="ttname"><a href="class_mau_inspector.html">MauInspector</a></div><div class="ttdef"><b>Definition</b> mau_visitor.h:29</div></div> | ||
<div class="ttc" id="aclass_p4_1_1_i_r_1_1_node_html"><div class="ttname"><a href="class_p4_1_1_i_r_1_1_node.html">P4::IR::Node</a></div><div class="ttdef"><b>Definition</b> node.h:94</div></div> | ||
<div class="ttc" id="aclass_p4_1_1_sym_bit_matrix_html"><div class="ttname"><a href="class_p4_1_1_sym_bit_matrix.html">P4::SymBitMatrix</a></div><div class="ttdef"><b>Definition</b> symbitmatrix.h:27</div></div> | ||
<div class="ttc" id="aclass_p4_1_1_visitor_1_1profile__t_html"><div class="ttname"><a href="class_p4_1_1_visitor_1_1profile__t.html">P4::Visitor::profile_t</a></div><div class="ttdef"><b>Definition</b> visitor.h:78</div></div> | ||
<div class="ttc" id="anamespace_p4_html"><div class="ttname"><a href="namespace_p4.html">P4</a></div><div class="ttdoc">TODO: this is not really specific to BMV2, it should reside somewhere else.</div><div class="ttdef"><b>Definition</b> applyOptionsPragmas.cpp:24</div></div> | ||
</div><!-- fragment --></div><!-- contents --> | ||
</div><!-- doc-content --> | ||
<!-- HTML footer for doxygen 1.13.0--> | ||
<!-- start footer part --> | ||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> | ||
<ul> | ||
<li class="navelem"><a class="el" href="dir_dec21994cd756836ecefab773235960a.html">backends</a></li><li class="navelem"><a class="el" href="dir_c4ded715df726299fc9cd18b15628924.html">tofino</a></li><li class="navelem"><a class="el" href="dir_cfcd49738e4a3dfd100d5c3f88ec2338.html">bf-p4c</a></li><li class="navelem"><a class="el" href="dir_857f3c92975693a500d20eb2ae0a0f68.html">mau</a></li><li class="navelem"><b>action_mutex.h</b></li> | ||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.0 </li> | ||
</ul> | ||
</div> | ||
</body> | ||
</html> |
Oops, something went wrong.