MIR means Medium Internal Representation. MIR project goal is to provide a basis to implement fast and lightweight interpreters and JITs. Plans to try MIR light-weight JIT first for CRuby or/and MRuby implementation. Each module can contain functions and declarations and data. Each function has a signature (parameters and return types), local variables (including function arguments) and instructions. Each local variable has a type which can be only a 64-bit integer, float, double, or long double. Each instruction has an opcode and operands. Operand can be a local variable (or a function argument), immediate, memory, label, or reference. The immediate operand can be a 64-bit integer, float, double, or long double value. There are conversion instructions for conversion between different 32- and 64-bit signed and unsigned values, float, double, and long double values. There are return instructions working on 32- and 64-bit integer values, float, double, and long double values.

Features

  • MIR is strongly typed
  • MIR can represent machine 32-bit and 64-bit insns of different architectures
  • MIR.md contains detail description of MIR and its API. Here is a brief MIR description:
  • Each module can contain functions and some declarations and data
  • opcode describes what the instruction does
  • There are function and procedural call instructions

Project Samples

Project Activity

See All Activity >

Categories

Compilers

License

MIT License

Follow MIR

MIR Web Site

Other Useful Business Software
Custom VMs From 1 to 96 vCPUs With 99.95% Uptime Icon
Custom VMs From 1 to 96 vCPUs With 99.95% Uptime

General-purpose, compute-optimized, or GPU/TPU-accelerated. Built to your exact specs.

Live migration and automatic failover keep workloads online through maintenance. One free e2-micro VM every month.
Try Free
Rate This Project
Login To Rate This Project

User Reviews

Be the first to post a review of MIR!

Additional Project Details

Operating Systems

Linux

Programming Language

C

Related Categories

C Compilers

Registered

2022-05-24