plutus-core-1.69.0.0: Language library for Plutus Core
Safe HaskellSafe-Inferred
LanguageHaskell2010

PlutusIR.Transform.Inline.Inline

Description

An inlining pass of *non-recursive* bindings. It includes (1) unconditional inlining: similar to PreInlineUnconditionally and PostInlineUnconditionally in the paper 'Secrets of the GHC Inliner'. (2) call site inlining of fully applied functions. See hs

Synopsis

Documentation

inline Source #

Arguments

∷ ∀ tyname name uni fun ann m. ExternalConstraints tyname name uni fun m 
⇒ AstSize

Unconditional inlining threshold

→ AstSize

Callsite inlining threshold

→ Bool

should we inline constants?

→ InlineHints name ann 
→ BuiltinsInfo uni fun 
→ Term tyname name uni fun ann 
→ m (Term tyname name uni fun ann) 

Inline non-recursive bindings. Relies on global uniqueness, and preserves it. See Note [Inlining and global uniqueness]

inlinePass Source #

Arguments

∷ ∀ uni fun ann m. (Typecheckable uni fun, GEq uni, Ord ann, ExternalConstraints TyName Name uni fun m) 
⇒ AstSize

Unconditional inlining threshold

→ AstSize

Callsite inlining threshold

→ Bool

should we inline constants?

→ PirTCConfig uni fun 
→ InlineHints Name ann 
→ BuiltinsInfo uni fun 
→ Pass m TyName Name uni fun ann 

inlinePassSC Source #

Arguments

∷ ∀ uni fun ann m. (Typecheckable uni fun, GEq uni, Ord ann, ExternalConstraints TyName Name uni fun m) 
⇒ AstSize

Unconditional inlining threshold

→ AstSize

Callsite inlining threshold

→ Bool

should we inline constants?

→ PirTCConfig uni fun 
→ InlineHints Name ann 
→ BuiltinsInfo uni fun 
→ Pass m TyName Name uni fun ann 

newtype InlineHints name a Source #

Constructors

InlineHints 

Fields

Instances

Instances details
Show (InlineHints name a) 
Instance details

Defined in PlutusCore.Annotation

Methods

showsPrec ∷ Int → InlineHints name a → ShowS Source #

show ∷ InlineHints name a → String Source #

showList ∷ [InlineHints name a] → ShowS Source #

Default (InlineHints name a) 
Instance details

Defined in PlutusCore.Annotation

Methods

def ∷ InlineHints name a #