Skip to content

lucasFelixSilveira/morgana

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

127 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Morgana Logo



πŸ‘ Morgana IR language

Morgana is a lightweight, high-performance Intermediate Representation designed to cut through the heavy, bloated pipeline of LLVM. It powers the Carla compiler, but is fully usable as a standalone IR for any custom language or code generation tool.

πŸš€ Why Morgana Exists

LLVM is slow.

Yes, it's insanely powerful and feature-heavy β€” but that complexity comes with a price: massive pipelines, heavy abstractions, and sluggish code generation.

Morgana strips away the unnecessary layers and gives you a direct, nearly-metal IR, with a tiny translation pipeline that turns instructions into machine code with minimal overhead.

If you want real speed without drowning in LLVM’s complexity,

Morgana isn’t an upgrade β€” it’s the alternative.

✨ What Is Morgana?

Morgana is a clean and compact IR language originally built to replace LLVM in the Carla compiler project.

But nothing stops you from using it in your own compiler or VM. It was designed to be simple enough to generate, powerful enough to optimize, and low-level enough to map cleanly to native assembly.

Morgana Extensors

What is extensors?

Extensors are extensions to Morgana codegen, which allow you to add your custom instructions, types, and optimizations to the language.

  • I need implement my own extensors?: No, you can use the official extensors, third-party extensors or even write your own.
  • How can i write my own extensors?: You can write your own extensors using Runa (γƒ«γƒŠ) and the pattern who is teach on the Morgana Extensors repository.
  • I can write without overriding any of the existing extensors?: Yes, you can write your own extensors without overriding any of the existing ones. Compiling with the flag -o
# x86_64 extensor for example
$ morgana build -o x86_64-optimized

What official extensors are already implemented?

Linux Windows Android MacOS / IOS Embeded boards
x86_64 🟑 (In progress) 🟑 (Just cross-compiling) - ❌ ❌
i3286 ❌ ❌ ❌ ❌ ❌
aarch64 ❌ ❌ ❌ ❌ ❌
arm ❌ ❌ ❌ ❌ ❌
risc-V ❌ ❌ ❌ ❌ ❌
xtensa ❌ ❌ ❌ ❌ 🟠 (Pendent)
atmega - - - - 🟠 (Pendent)
NVIDIA ❌ ❌ ❌ ❌ ❌
AMD (GPU) ❌ ❌ ❌ ❌ ❌
Intel (GPU) ❌ ❌ ❌ ❌ ❌
Adreno ❌ ❌ ❌ ❌ ❌

About

πŸ‘ Comptime low than LLVM or MLIR - Morgana use community extensors for more compilation performance. Knowing exactly what it need to do since you run the build command

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages