https://github.com/baioc/gyred

Gyre, a new compiler IR 🌀 (WIP)

https://github.com/baioc/gyred

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • â—‹
    CITATION.cff file
  • â—‹
    codemeta.json file
  • â—‹
    .zenodo.json file
  • ✓
    DOI references
    Found 2 DOI reference(s) in README
  • â—‹
    Academic publication links
  • â—‹
    Academic email domains
  • â—‹
    Institutional organization owner
  • â—‹
    JOSS paper metadata
  • â—‹
    Scientific vocabulary similarity
    Low similarity (13.8%) to scientific vocabulary

Keywords

compiler continuation-passing-style dlang gyre intermediate-representation join-calculus reference-implementation sea-of-nodes
Last synced: 5 months ago · JSON representation

Repository

Gyre, a new compiler IR 🌀 (WIP)

Basic Info
Statistics
  • Stars: 2
  • Watchers: 2
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Topics
compiler continuation-passing-style dlang gyre intermediate-representation join-calculus reference-implementation sea-of-nodes
Created about 4 years ago · Last pushed over 3 years ago
Metadata Files
Readme License

README.md

GyreD

pipeline status latest version

This is a reference implementation of Gyre, a compiler IR designed as a practical "linguistic switchbox", or UNCOL.

As such, the IR should be able to efficiently accommodate many high-level languages and target architectures. In order to test this, this repository ~~contains~~ will contain multiple compilers using the same middle-end infrastructure.

Work In Progress

This is an early-stage prototype of an IR designed as part of my Bachelor thesis, which provides an extensive survey on compilers, portable IRs and the UNCOL solution to "the problem of programming communication with changing machines", also known as "the compiler construction problem".

If you are looking for a ready-to-use optimization framework, a full compiler, or benchmark results for any of these, come back later. In that case, I suggest using GitHub to watch this repository's releases, and/or star it so I know there are people interested. In any case, here is an example of the current IR builder API.

Still, here are some figures from my thesis, to spark your curiosity. Check out the docs for more information.

| Logical structure of an optimizing compiler | UNCOL as a linguistic switchbox | |:---:|:---:| | compiler-structure | uncol-solution |

| Gyre subgraph with explicit concurrency | Mapping of classic SSACFG constructs | |:---:|:---:| | gyre-fork-join | gyre-vs-ssa-cfg |

| Memory operations in Gyre | IR types and macros | |:---:|:---:| | gyre-state | gyre-typed |

Development

These are the configuration files which I use to build, test and debug this project in VSCode.

The only tool needed is DUB, but I also recommend the awesome VSCode extensions by WebFreak.

tasks.json

json { "version": "2.0.0", "tasks": [ { "label": "dub: Run unit tests", "group": { "kind": "test", "isDefault": true }, "type": "shell", "command": "dub test --coverage", "problemMatcher": { "owner": "d", "fileLocation": ["relative", "${workspaceFolder}"], "pattern": { "regexp": "^(.*)@(.*)\\((\\d+)\\):\\s+(.*)$", "code": 1, "file": 2, "location": 3, "message": 4, } }, "presentation": { "echo": false, "clear": true, }, }, { "label": "dub: Build project docs", "group": { "kind": "build", "isDefault": true }, "type": "shell", "command": "dub run adrdox@2.5.2 -- . -i -o docs", "problemMatcher": { "owner": "d", "fileLocation": ["relative", "${workspaceFolder}"], "pattern": { "regexp": "^(.*)\\((\\d+,\\d+)\\):\\s+(Error|Warning):\\s+(.*)$", "file": 1, "location": 2, "severity": 3, "message": 4, } }, "presentation": { "echo": false, "clear": true, "reveal": "silent", }, } ], }

launch.json

json { "version": "0.2.0", "configurations": [ { "name": "Debug application", "type": "gdb", "request": "launch", "cwd": "${workspaceRoot}", "target": "gyred", }, { "name": "Debug unittest", "type": "gdb", "request": "launch", "cwd": "${workspaceRoot}", "target": "gyred-test-unittest", }, ] }

Owner

  • Name: Gabriel B. Sant'Anna
  • Login: baioc
  • Kind: user
  • Location: Earth, Solar System, Local Interstellar Cloud, Local Bubble, Orion-Cygnus Galactic Arm, Milky Way
  • Company: BRy Tecnologia

"Don't let school get in the way of your education." - Mark Twain

GitHub Events

Total
Last Year

Dependencies

dub.json dub
  • betterclist ==0.2.2