LazyCodeCore

Core definitions for the LCT oracle

LazyCodeOracle

LCT Oracle implementation

BTL_BlockOptimizer

Main interface to communicate with BTL oracles

BTL_BlockOptimizeraux

Auxiliary function of the BTL prepass scheduler oracle

InstructionScheduler
BTLcommonaux

Common tools for BTL oracles

BTL_IfLiftingOracle

Prepass oracle extension to lift conditional branches

BTL_Liveness

BTL additional tools to compute liveness information

BTL_RegisterRenaming

BTL register renaming oracle, to be used with if-lifting

BTL_Renumber

BTL CFG renumbering oracle

BTL_SyntheticNodes

BTL auxiliary functions for successorship calculus and synthetic nodes

BTLtoRTLaux

Translation from BTL to RTL and CFG factorization

RTLtoBTLaux

Translation from RTL to BTL and block selection

BTLtypes

Common type definitions for BTL: oracles' types and shadow fields

PrepassSchedulingOracleDeps

Common type definitions for prepass scheduling

PrintBTL

BTL instruction printer

StoreMotionOracle

Store motion oracle that tries to delay store instructions

Bitv

This module implements bit vectors, as an abstract datatype t.

CSE3analysisaux

CSE3 oracle implementation

Duplicateaux

Oracle for the Duplicate passes

LazyCodeBackend

Backend specific functions for the LCT algorithm

OpWeights

Latencies & resources information for prepass scheduling

ExpansionOracle

Rewriting oracle to lift up macro-instructions expansion from Asmgen to BTL (RISC-V only)

IntPromotionOracle

Oracle to promote integers into long (RISC-V only)

PrepassSchedulingOracle

Prepass scheduler backend specific implementation