2019-09-06 15:57:44 -07:00

58 lines
20 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `ir` mod in crate `cranelift_codegen`."><meta name="keywords" content="rust, rustlang, rust-lang, ir"><title>cranelift_codegen::ir - Rust</title><link rel="stylesheet" type="text/css" href="../../normalize.css"><link rel="stylesheet" type="text/css" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../dark.css"><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><script src="../../storage.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="shortcut icon" href="../../favicon.ico"><style type="text/css">#crate-search{background-image:url("../../down-arrow.svg");}</style></head><body class="rustdoc mod"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../../cranelift_codegen/index.html'><div class='logo-container'><img src='../../rust-logo.png' alt='logo'></div></a><p class='location'>Module ir</p><div class="sidebar-elems"><div class="block items"><ul><li><a href="#reexports">Re-exports</a></li><li><a href="#modules">Modules</a></li><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li><li><a href="#traits">Traits</a></li><li><a href="#functions">Functions</a></li><li><a href="#types">Type Definitions</a></li></ul></div><p class='location'><a href='../index.html'>cranelift_codegen</a></p><script>window.sidebarCurrent = {name: 'ir', ty: 'mod', relpath: '../'};</script><script defer src="../sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../theme.js"></script><nav class="sub"><form class="search-form js-only"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><a id="settings-menu" href="../../settings.html"><img src="../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../../src/cranelift_codegen/ir/mod.rs.html#1-104' title='goto source code'>[src]</a></span><span class='in-band'>Module <a href='../index.html'>cranelift_codegen</a>::<wbr><a class="mod" href=''>ir</a></span></h1><div class='docblock'><p>Representation of Cranelift IR functions.</p>
</div><h2 id='reexports' class='section-header'><a href="#reexports">Re-exports</a></h2>
<table><tr><td><code>pub use crate::ir::dfg::<a class="struct" href="../../cranelift_codegen/ir/dfg/struct.DataFlowGraph.html" title="struct cranelift_codegen::ir::dfg::DataFlowGraph">DataFlowGraph</a>;</code></td></tr><tr><td><code>pub use crate::ir::dfg::<a class="enum" href="../../cranelift_codegen/ir/dfg/enum.ValueDef.html" title="enum cranelift_codegen::ir::dfg::ValueDef">ValueDef</a>;</code></td></tr><tr><td><code>pub use crate::ir::entities::<a class="struct" href="../../cranelift_codegen/ir/entities/struct.Ebb.html" title="struct cranelift_codegen::ir::entities::Ebb">Ebb</a>;</code></td></tr><tr><td><code>pub use crate::ir::entities::<a class="struct" href="../../cranelift_codegen/ir/entities/struct.FuncRef.html" title="struct cranelift_codegen::ir::entities::FuncRef">FuncRef</a>;</code></td></tr><tr><td><code>pub use crate::ir::entities::<a class="struct" href="../../cranelift_codegen/ir/entities/struct.GlobalValue.html" title="struct cranelift_codegen::ir::entities::GlobalValue">GlobalValue</a>;</code></td></tr><tr><td><code>pub use crate::ir::entities::<a class="struct" href="../../cranelift_codegen/ir/entities/struct.Heap.html" title="struct cranelift_codegen::ir::entities::Heap">Heap</a>;</code></td></tr><tr><td><code>pub use crate::ir::entities::<a class="struct" href="../../cranelift_codegen/ir/entities/struct.Inst.html" title="struct cranelift_codegen::ir::entities::Inst">Inst</a>;</code></td></tr><tr><td><code>pub use crate::ir::entities::<a class="struct" href="../../cranelift_codegen/ir/entities/struct.JumpTable.html" title="struct cranelift_codegen::ir::entities::JumpTable">JumpTable</a>;</code></td></tr><tr><td><code>pub use crate::ir::entities::<a class="struct" href="../../cranelift_codegen/ir/entities/struct.SigRef.html" title="struct cranelift_codegen::ir::entities::SigRef">SigRef</a>;</code></td></tr><tr><td><code>pub use crate::ir::entities::<a class="struct" href="../../cranelift_codegen/ir/entities/struct.StackSlot.html" title="struct cranelift_codegen::ir::entities::StackSlot">StackSlot</a>;</code></td></tr><tr><td><code>pub use crate::ir::entities::<a class="struct" href="../../cranelift_codegen/ir/entities/struct.Table.html" title="struct cranelift_codegen::ir::entities::Table">Table</a>;</code></td></tr><tr><td><code>pub use crate::ir::entities::<a class="struct" href="../../cranelift_codegen/ir/entities/struct.Value.html" title="struct cranelift_codegen::ir::entities::Value">Value</a>;</code></td></tr><tr><td><code>pub use crate::ir::function::<a class="struct" href="../../cranelift_codegen/ir/function/struct.DisplayFunctionAnnotations.html" title="struct cranelift_codegen::ir::function::DisplayFunctionAnnotations">DisplayFunctionAnnotations</a>;</code></td></tr><tr><td><code>pub use crate::ir::function::<a class="struct" href="../../cranelift_codegen/ir/function/struct.Function.html" title="struct cranelift_codegen::ir::function::Function">Function</a>;</code></td></tr><tr><td><code>pub use crate::ir::instructions::<a class="enum" href="../../cranelift_codegen/ir/instructions/enum.InstructionData.html" title="enum cranelift_codegen::ir::instructions::InstructionData">InstructionData</a>;</code></td></tr><tr><td><code>pub use crate::ir::instructions::<a class="enum" href="../../cranelift_codegen/ir/instructions/enum.Opcode.html" title="enum cranelift_codegen::ir::instructions::Opcode">Opcode</a>;</code></td></tr><tr><td><code>pub use crate::ir::instructions::<a class="type" href="../../cranelift_codegen/ir/instructions/type.ValueList.html" title="type cranelift_codegen::ir::instructions::ValueList">ValueList</a>;</code></td></tr><tr><td><code>pub use crate::ir::instructions::<a class="type" href="../../cranelift_codegen/ir/instructions/type.ValueListPool.html" title="type cranelift_codegen::ir::instructions::ValueListPool">ValueListPool</a>;</code></td></tr><tr><td><code>pub use crate::ir::instructions::<a class="struct" href="../../cranelift_codegen/ir/instructions/struct.VariableArgs.html" title="struct cranelift_codegen::ir::instructions::VariableArgs">VariableArgs</a>;</code></td></tr><tr><td><code>pub use crate::ir::jumptable::<a class="struct" href="../../cranelift_codegen/ir/jumptable/struct.JumpTableData.html" title="struct cranelift_codegen::ir::jumptable::JumpTableData">JumpTableData</a>;</code></td></tr><tr><td><code>pub use crate::ir::layout::<a class="struct" href="../../cranelift_codegen/ir/layout/struct.Layout.html" title="struct cranelift_codegen::ir::layout::Layout">Layout</a>;</code></td></tr><tr><td><code>pub use crate::ir::stackslot::<a class="struct" href="../../cranelift_codegen/ir/stackslot/struct.StackSlotData.html" title="struct cranelift_codegen::ir::stackslot::StackSlotData">StackSlotData</a>;</code></td></tr><tr><td><code>pub use crate::ir::stackslot::<a class="enum" href="../../cranelift_codegen/ir/stackslot/enum.StackSlotKind.html" title="enum cranelift_codegen::ir::stackslot::StackSlotKind">StackSlotKind</a>;</code></td></tr><tr><td><code>pub use crate::ir::stackslot::<a class="struct" href="../../cranelift_codegen/ir/stackslot/struct.StackSlots.html" title="struct cranelift_codegen::ir::stackslot::StackSlots">StackSlots</a>;</code></td></tr><tr><td><code>pub use crate::ir::types::<a class="struct" href="../../cranelift_codegen/ir/types/struct.Type.html" title="struct cranelift_codegen::ir::types::Type">Type</a>;</code></td></tr></table><h2 id='modules' class='section-header'><a href="#modules">Modules</a></h2>
<table><tr class='module-item'><td><a class="mod" href="condcodes/index.html" title='cranelift_codegen::ir::condcodes mod'>condcodes</a></td><td class='docblock-short'><p>Condition codes for the Cranelift code generator.</p>
</td></tr><tr class='module-item'><td><a class="mod" href="dfg/index.html" title='cranelift_codegen::ir::dfg mod'>dfg</a></td><td class='docblock-short'><p>Data flow graph tracking Instructions, Values, and EBBs.</p>
</td></tr><tr class='module-item'><td><a class="mod" href="entities/index.html" title='cranelift_codegen::ir::entities mod'>entities</a></td><td class='docblock-short'><p>Cranelift IR entity references.</p>
</td></tr><tr class='module-item'><td><a class="mod" href="function/index.html" title='cranelift_codegen::ir::function mod'>function</a></td><td class='docblock-short'><p>Intermediate representation of a function.</p>
</td></tr><tr class='module-item'><td><a class="mod" href="immediates/index.html" title='cranelift_codegen::ir::immediates mod'>immediates</a></td><td class='docblock-short'><p>Immediate operands for Cranelift instructions</p>
</td></tr><tr class='module-item'><td><a class="mod" href="instructions/index.html" title='cranelift_codegen::ir::instructions mod'>instructions</a></td><td class='docblock-short'><p>Instruction formats and opcodes.</p>
</td></tr><tr class='module-item'><td><a class="mod" href="jumptable/index.html" title='cranelift_codegen::ir::jumptable mod'>jumptable</a></td><td class='docblock-short'><p>Jump table representation.</p>
</td></tr><tr class='module-item'><td><a class="mod" href="layout/index.html" title='cranelift_codegen::ir::layout mod'>layout</a></td><td class='docblock-short'><p>Function layout.</p>
</td></tr><tr class='module-item'><td><a class="mod" href="stackslot/index.html" title='cranelift_codegen::ir::stackslot mod'>stackslot</a></td><td class='docblock-short'><p>Stack slots.</p>
</td></tr><tr class='module-item'><td><a class="mod" href="types/index.html" title='cranelift_codegen::ir::types mod'>types</a></td><td class='docblock-short'><p>Common types for the Cranelift code generator.</p>
</td></tr></table><h2 id='structs' class='section-header'><a href="#structs">Structs</a></h2>
<table><tr class='module-item'><td><a class="struct" href="struct.AbiParam.html" title='cranelift_codegen::ir::AbiParam struct'>AbiParam</a></td><td class='docblock-short'><p>Function parameter or return value descriptor.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.ExtFuncData.html" title='cranelift_codegen::ir::ExtFuncData struct'>ExtFuncData</a></td><td class='docblock-short'><p>An external function.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.HeapData.html" title='cranelift_codegen::ir::HeapData struct'>HeapData</a></td><td class='docblock-short'><p>Information about a heap declaration.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.InsertBuilder.html" title='cranelift_codegen::ir::InsertBuilder struct'>InsertBuilder</a></td><td class='docblock-short'><p>Builder that inserts an instruction at the current position.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.MemFlags.html" title='cranelift_codegen::ir::MemFlags struct'>MemFlags</a></td><td class='docblock-short'><p>Flags for memory operations like load/store.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.ProgramPoint.html" title='cranelift_codegen::ir::ProgramPoint struct'>ProgramPoint</a></td><td class='docblock-short'><p>A <code>ProgramPoint</code> represents a position in a function where the live range of an SSA value can
begin or end. It can be either:</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.Signature.html" title='cranelift_codegen::ir::Signature struct'>Signature</a></td><td class='docblock-short'><p>Function signature.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.SourceLoc.html" title='cranelift_codegen::ir::SourceLoc struct'>SourceLoc</a></td><td class='docblock-short'><p>A source location.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.TableData.html" title='cranelift_codegen::ir::TableData struct'>TableData</a></td><td class='docblock-short'><p>Information about a table declaration.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.ValueLabel.html" title='cranelift_codegen::ir::ValueLabel struct'>ValueLabel</a></td><td class='docblock-short'><p>Marked with a label value.</p>
</td></tr><tr class='module-item'><td><a class="struct" href="struct.ValueLabelStart.html" title='cranelift_codegen::ir::ValueLabelStart struct'>ValueLabelStart</a></td><td class='docblock-short'><p>A label of a Value.</p>
</td></tr></table><h2 id='enums' class='section-header'><a href="#enums">Enums</a></h2>
<table><tr class='module-item'><td><a class="enum" href="enum.ArgumentExtension.html" title='cranelift_codegen::ir::ArgumentExtension enum'>ArgumentExtension</a></td><td class='docblock-short'><p>Function argument extension options.</p>
</td></tr><tr class='module-item'><td><a class="enum" href="enum.ArgumentLoc.html" title='cranelift_codegen::ir::ArgumentLoc enum'>ArgumentLoc</a></td><td class='docblock-short'><p>Function argument location.</p>
</td></tr><tr class='module-item'><td><a class="enum" href="enum.ArgumentPurpose.html" title='cranelift_codegen::ir::ArgumentPurpose enum'>ArgumentPurpose</a></td><td class='docblock-short'><p>The special purpose of a function argument.</p>
</td></tr><tr class='module-item'><td><a class="enum" href="enum.ExpandedProgramPoint.html" title='cranelift_codegen::ir::ExpandedProgramPoint enum'>ExpandedProgramPoint</a></td><td class='docblock-short'><p>An expanded program point directly exposes the variants, but takes twice the space to
represent.</p>
</td></tr><tr class='module-item'><td><a class="enum" href="enum.ExternalName.html" title='cranelift_codegen::ir::ExternalName enum'>ExternalName</a></td><td class='docblock-short'><p>The name of an external is either a reference to a user-defined symbol
table, or a short sequence of ascii bytes so that test cases do not have
to keep track of a symbol table.</p>
</td></tr><tr class='module-item'><td><a class="enum" href="enum.GlobalValueData.html" title='cranelift_codegen::ir::GlobalValueData enum'>GlobalValueData</a></td><td class='docblock-short'><p>Information about a global value declaration.</p>
</td></tr><tr class='module-item'><td><a class="enum" href="enum.HeapStyle.html" title='cranelift_codegen::ir::HeapStyle enum'>HeapStyle</a></td><td class='docblock-short'><p>Style of heap including style-specific information.</p>
</td></tr><tr class='module-item'><td><a class="enum" href="enum.LibCall.html" title='cranelift_codegen::ir::LibCall enum'>LibCall</a></td><td class='docblock-short'><p>The name of a runtime library routine.</p>
</td></tr><tr class='module-item'><td><a class="enum" href="enum.TrapCode.html" title='cranelift_codegen::ir::TrapCode enum'>TrapCode</a></td><td class='docblock-short'><p>A trap code describing the reason for a trap.</p>
</td></tr><tr class='module-item'><td><a class="enum" href="enum.ValueLabelAssignments.html" title='cranelift_codegen::ir::ValueLabelAssignments enum'>ValueLabelAssignments</a></td><td class='docblock-short'><p>Value label assignements: label starts or value aliases.</p>
</td></tr><tr class='module-item'><td><a class="enum" href="enum.ValueLoc.html" title='cranelift_codegen::ir::ValueLoc enum'>ValueLoc</a></td><td class='docblock-short'><p>Value location.</p>
</td></tr></table><h2 id='traits' class='section-header'><a href="#traits">Traits</a></h2>
<table><tr class='module-item'><td><a class="trait" href="trait.InstBuilder.html" title='cranelift_codegen::ir::InstBuilder trait'>InstBuilder</a></td><td class='docblock-short'><p>Convenience methods for building instructions.</p>
</td></tr><tr class='module-item'><td><a class="trait" href="trait.InstBuilderBase.html" title='cranelift_codegen::ir::InstBuilderBase trait'>InstBuilderBase</a></td><td class='docblock-short'><p>Base trait for instruction builders.</p>
</td></tr><tr class='module-item'><td><a class="trait" href="trait.InstInserterBase.html" title='cranelift_codegen::ir::InstInserterBase trait'>InstInserterBase</a></td><td class='docblock-short'><p>Base trait for instruction inserters.</p>
</td></tr><tr class='module-item'><td><a class="trait" href="trait.ProgramOrder.html" title='cranelift_codegen::ir::ProgramOrder trait'>ProgramOrder</a></td><td class='docblock-short'><p>Context for ordering program points.</p>
</td></tr></table><h2 id='functions' class='section-header'><a href="#functions">Functions</a></h2>
<table><tr class='module-item'><td><a class="fn" href="fn.get_libcall_funcref.html" title='cranelift_codegen::ir::get_libcall_funcref fn'>get_libcall_funcref</a></td><td class='docblock-short'><p>Get a function reference for <code>libcall</code> in <code>func</code>, following the signature
for <code>inst</code>.</p>
</td></tr><tr class='module-item'><td><a class="fn" href="fn.get_probestack_funcref.html" title='cranelift_codegen::ir::get_probestack_funcref fn'>get_probestack_funcref</a></td><td class='docblock-short'><p>Get a function reference for the probestack function in <code>func</code>.</p>
</td></tr></table><h2 id='types' class='section-header'><a href="#types">Type Definitions</a></h2>
<table><tr class='module-item'><td><a class="type" href="type.EbbOffsets.html" title='cranelift_codegen::ir::EbbOffsets type'>EbbOffsets</a></td><td class='docblock-short'><p>Code offsets for EBBs.</p>
</td></tr><tr class='module-item'><td><a class="type" href="type.InstEncodings.html" title='cranelift_codegen::ir::InstEncodings type'>InstEncodings</a></td><td class='docblock-short'><p>Map of instruction encodings.</p>
</td></tr><tr class='module-item'><td><a class="type" href="type.JumpTableOffsets.html" title='cranelift_codegen::ir::JumpTableOffsets type'>JumpTableOffsets</a></td><td class='docblock-short'><p>Code offsets for Jump Tables.</p>
</td></tr><tr class='module-item'><td><a class="type" href="type.JumpTables.html" title='cranelift_codegen::ir::JumpTables type'>JumpTables</a></td><td class='docblock-short'><p>Map of jump tables.</p>
</td></tr><tr class='module-item'><td><a class="type" href="type.SourceLocs.html" title='cranelift_codegen::ir::SourceLocs type'>SourceLocs</a></td><td class='docblock-short'><p>Source locations for instructions.</p>
</td></tr><tr class='module-item'><td><a class="type" href="type.ValueLocations.html" title='cranelift_codegen::ir::ValueLocations type'>ValueLocations</a></td><td class='docblock-short'><p>Map of value locations.</p>
</td></tr></table></section><section id="search" class="content hidden"></section><section class="footer"></section><aside id="help" class="hidden"><div><h1 class="hidden">Help</h1><div class="shortcuts"><h2>Keyboard Shortcuts</h2><dl><dt><kbd>?</kbd></dt><dd>Show this help dialog</dd><dt><kbd>S</kbd></dt><dd>Focus the search field</dd><dt><kbd></kbd></dt><dd>Move up in search results</dd><dt><kbd></kbd></dt><dd>Move down in search results</dd><dt><kbd></kbd></dt><dd>Switch tab</dd><dt><kbd>&#9166;</kbd></dt><dd>Go to active search result</dd><dt><kbd>+</kbd></dt><dd>Expand all sections</dd><dt><kbd>-</kbd></dt><dd>Collapse all sections</dd></dl></div><div class="infos"><h2>Search Tricks</h2><p>Prefix searches with a type followed by a colon (e.g., <code>fn:</code>) to restrict the search to a given type.</p><p>Accepted types are: <code>fn</code>, <code>mod</code>, <code>struct</code>, <code>enum</code>, <code>trait</code>, <code>type</code>, <code>macro</code>, and <code>const</code>.</p><p>Search functions by type signature (e.g., <code>vec -> usize</code> or <code>* -> vec</code>)</p><p>Search multiple things at once by splitting your query with comma (e.g., <code>str,u8</code> or <code>String,struct:Vec,test</code>)</p></div></div></aside><script>window.rootPath = "../../";window.currentCrate = "cranelift_codegen";</script><script src="../../aliases.js"></script><script src="../../main.js"></script><script defer src="../../search-index.js"></script></body></html>