{"id":29110624,"url":"https://github.com/assetripper/assetripper.translation.llvmir","last_synced_at":"2026-04-10T22:48:39.184Z","repository":{"id":274284625,"uuid":"823937010","full_name":"AssetRipper/AssetRipper.Translation.LlvmIR","owner":"AssetRipper","description":"Convert LLVM IR to .NET CIL","archived":false,"fork":false,"pushed_at":"2026-04-10T18:37:47.000Z","size":664,"stargazers_count":12,"open_issues_count":10,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-10T22:48:35.984Z","etag":null,"topics":["cil","dotnet","llvm","llvm-ir"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AssetRipper.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-07-04T03:40:41.000Z","updated_at":"2026-04-10T18:37:50.000Z","dependencies_parsed_at":"2025-01-26T10:20:13.540Z","dependency_job_id":"ce6c6b6d-9129-4453-baad-fb9012ecac87","html_url":"https://github.com/AssetRipper/AssetRipper.Translation.LlvmIR","commit_stats":null,"previous_names":["assetripper/assetripper.translation.cpp","assetripper/assetripper.translation.llvmir"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AssetRipper/AssetRipper.Translation.LlvmIR","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AssetRipper%2FAssetRipper.Translation.LlvmIR","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AssetRipper%2FAssetRipper.Translation.LlvmIR/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AssetRipper%2FAssetRipper.Translation.LlvmIR/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AssetRipper%2FAssetRipper.Translation.LlvmIR/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AssetRipper","download_url":"https://codeload.github.com/AssetRipper/AssetRipper.Translation.LlvmIR/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AssetRipper%2FAssetRipper.Translation.LlvmIR/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31662169,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T17:19:37.612Z","status":"ssl_error","status_checked_at":"2026-04-10T17:19:13.364Z","response_time":98,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["cil","dotnet","llvm","llvm-ir"],"created_at":"2025-06-29T08:38:57.822Z","updated_at":"2026-04-10T22:48:39.176Z","avatar_url":"https://github.com/AssetRipper.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AssetRipper.Translation.LlvmIR\n\nThis project transpiles LLVM IR to .NET CIL. This enables robust, automated translation of C and C++ to low-level C#. Translated code is highly performant, AOT compatible, cross-platform, and semantically accurate.\n\n## Compiling small projects to LLVM IR with Clang\n\nWhile this project is intended to handle any LLVM IR, it works best when the input is generated on Windows with the following Clang command:\n\n```\nclang -g -fno-discard-value-names -fstandalone-debug -S -emit-llvm {inputFile} -o {outputFile}\n```\n\nThis ensures that debug information is included and that parameter names are preserved, which helps with generating code that is more readable.\n\n## Compiling large projects to LLVM IR with CMake on Windows\n\n### Install [Ninja](https://ninja-build.org/)\n\nUse `ninja --version` to verify that it's been added to the PATH.\n\n### Environmental variables\n\nClang on Windows can have trouble finding the Windows SDK and Visual Studio libraries and includes. You can set the `LIB` and `INCLUDE` environmental variables to help it find them. Adjust the paths below to match your installation.\n\n```powershell\n$env:LIB=\"C:\\Program Files\\Microsoft Visual Studio\\18\\Community\\VC\\Tools\\MSVC\\14.50.35717\\lib\\x64;C:\\Program Files (x86)\\Windows Kits\\10\\Lib\\10.0.26100.0\\um\\x64;C:\\Program Files (x86)\\Windows Kits\\10\\Lib\\10.0.26100.0\\ucrt\\x64\"\n$env:INCLUDE=\"C:\\Program Files\\Microsoft Visual Studio\\18\\Community\\VC\\Tools\\MSVC\\14.50.35717\\include;C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.26100.0\\um;C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.26100.0\\ucrt\"\n```\n\nThis is an example of an error you might see if Clang cannot find the necessary libraries:\n\n```\n-- Check for working C compiler: C:/Program Files/LLVM/bin/clang.exe - broken\nCMake Error at C:/Program Files/CMake/share/cmake-4.2/Modules/CMakeTestCCompiler.cmake:67 (message):\n  The C compiler\n\n    \"C:/Program Files/LLVM/bin/clang.exe\"\n\n  is not able to compile a simple test program.\n```\n\n### Run CMake\n\n```\ncmake -G \"Ninja\" \\\n  -S ./path-to-directory-with-source-files/ \\\n  -B ./path-to-build-output-directory/ \\\n  -DCMAKE_C_COMPILER=clang \\\n  -DCMAKE_CXX_COMPILER=clang++ \\\n  -DCMAKE_C_FLAGS=\"-DNOMINMAX\" \\\n  -DCMAKE_CXX_FLAGS=\"-DNOMINMAX\" \\\n  -DCMAKE_EXPORT_COMPILE_COMMANDS=ON\n```\n\nThis will generate a `compile_commands.json` file in the build output directory, which is necessary for a future step.\n\n#### Flags\n\n* `-DNOMINMAX` ensures that the `min` and `max` macros do no interfere with compilation.\n\n### Compile the project normally\n\n```\ncmake --build ./path-to-build-output-directory/ --config Debug\n```\n\nThis ensures that any generated files get generated.\n\n### Compile the project to LLVM IR\n\n```\nLargeProjectCompiler.exe ./path-to/compile_commands.json\n```\n\nUse `--help` to see additional options.\n\n## NuGet tool\n\nThere are [plans](https://github.com/AssetRipper/AssetRipper.Translation.LlvmIR/issues/44) to ship this as a NuGet tool for easy installation and usage.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fassetripper%2Fassetripper.translation.llvmir","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fassetripper%2Fassetripper.translation.llvmir","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fassetripper%2Fassetripper.translation.llvmir/lists"}