[][src]Module souper_ir::ast

Abstract syntax tree type definitions.

Structs

Arena

An arena of objects of type T.

Assignment

An assignment, defining a value.

Block

A basic block.

BlockId

An identifier for a defined block.

BlockPc

A block path condition.

Cand

A candidate rewrite.

Constant

A constant value.

Id

An identifier for an object allocated within an arena.

Infer

The root of a left-hand side.

LeftHandSide

The left-hand side of a replacement.

LeftHandSideBuilder

A builder for a LeftHandSide.

Pc

A path condition.

Phi

A phi node.

ReplacementBuilder

A builder for a Replacement.

RightHandSide

The right-hand side of a replacement.

Type

A type.

ValueId

An identifier for a value defined by an assignment.

Var

An input variable.

Enums

AssignmentRhs

Any value that can be assigned to a name.

Attribute

Attributes describing data-flow facts known about a particular value or result of an instruction.

Instruction

A Souper instruction.

Operand

An operand for an instruction or some other kind of operation.

Replacement

A complete optimization that replaces a left-hand side with a right-hand side.

RootAttribute

Attributes describing data-flow facts known about the root of a left- or right-hand side.

Statement

A statement in a LHS or RHS.