{"id":15243384,"url":"https://github.com/vsl-lang/llir","last_synced_at":"2025-10-05T05:30:30.703Z","repository":{"id":140355261,"uuid":"100824769","full_name":"vsl-lang/LLIR","owner":"vsl-lang","description":"LLIR: Graph Optimizing LLVM-targetted backend","archived":true,"fork":false,"pushed_at":"2017-12-25T01:56:15.000Z","size":224,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-15T22:32:23.720Z","etag":null,"topics":["backend","llvm","optimizer","vsl"],"latest_commit_sha":null,"homepage":"https://staging.vihan.org/LLIR/docs","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vsl-lang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-08-19T22:28:30.000Z","updated_at":"2023-01-28T18:18:51.000Z","dependencies_parsed_at":"2023-07-24T02:29:19.610Z","dependency_job_id":null,"html_url":"https://github.com/vsl-lang/LLIR","commit_stats":{"total_commits":17,"total_committers":1,"mean_commits":17.0,"dds":0.0,"last_synced_commit":"ec19fbb56eed0732939abc8a2fb8207faf657885"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vsl-lang%2FLLIR","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vsl-lang%2FLLIR/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vsl-lang%2FLLIR/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vsl-lang%2FLLIR/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vsl-lang","download_url":"https://codeload.github.com/vsl-lang/LLIR/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235365159,"owners_count":18978314,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backend","llvm","optimizer","vsl"],"created_at":"2024-09-29T12:06:34.019Z","updated_at":"2025-10-05T05:30:30.281Z","avatar_url":"https://github.com/vsl-lang.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LLIR (vbeta)\nLLIR is an optimizing backend which analytically generates probability graphs to\nmaximize fallthrough contrast between branches. LLIR outputs LLVM and has a\nflexible input format so it can be used as a backend for many languages.\n\n## Documentation\nAPI documentation can be generated through `npm run docs` and is also [available\nonline](https://staging.vihan.org/LLIR/docs).\n\n### LLIR 101\nThe LLIR compiler is described in a paper (todo add link). It works around\ngenerating symmetric constraint graphs, all 'functions' having explicit\nDomain and Codomain nodes which can be simultaneously constrained.\n\nWhen generating code with LLIR you will generally need to do the following.\n\n 1. Choose a model for how your program will be stored in memory. By default\n     this is `MemoryStore`.\n 2. Create an `ExecutionGraph` with your memory store.\n 3. Create a `Subgraph` which contains your side-effect entry \u0026 exit points.\n     LLIR offers LLVM intrinsics so this is not necessary.\n 4. Populate your `ExecutionGraph`\n 5. Create a generator (typically `Generator.LL` but you can use a different\n     type of generator)\n 6. Create a `Churn` object which will essentially take say how you want to\n     generate the code. E.g. to a stream, or JIT-friendly formats. Generally\n     you'd want `AutoChurn` or `StreamChurn`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvsl-lang%2Fllir","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvsl-lang%2Fllir","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvsl-lang%2Fllir/lists"}