R5900 (PS2 Emotion Engine) LLVM/clang backend fork - real llvm/llvm-project history, main tracks upstream, r5900-ee carries the PS2-specific patches
  • LLVM 42.3%
  • C++ 29.9%
  • C 12.4%
  • Assembly 10.1%
  • MLIR 1.8%
  • Other 3.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
techwritescode a820e0f0a5
Some checks failed
action.yml / [Mips] Enable tail merging for the R3000A without splitting HI16/LO16 pairs (push) Failing after 0s
release-binaries-all.yml / [Mips] Enable tail merging for the R3000A without splitting HI16/LO16 pairs (push) Failing after 0s
release-binaries.yml / [Mips] Enable tail merging for the R3000A without splitting HI16/LO16 pairs (push) Failing after 0s
release-documentation.yml / [Mips] Enable tail merging for the R3000A without splitting HI16/LO16 pairs (push) Failing after 0s
release-sources.yml / [Mips] Enable tail merging for the R3000A without splitting HI16/LO16 pairs (push) Failing after 0s
Check for private emails used in PRs / validate_email (pull_request) Has been skipped
action.yml / [Mips] Enable tail merging for the R3000A without splitting HI16/LO16 pairs (pull_request) Failing after 0s
Check LLVM ABI annotations / Check LLVM_ABI annotations with ids (pull_request) Has been skipped
CI Checks / Build and Test Linux (pull_request) Has been skipped
CI Checks / Build and Test Windows (pull_request) Has been skipped
CI Checks / Compute macOS Projects (pull_request) Has been skipped
CI Checks / Build and Test macOS arm64 (pull_request) Has been skipped
release-binaries-all.yml / [Mips] Enable tail merging for the R3000A without splitting HI16/LO16 pairs (pull_request) Failing after 0s
release-binaries.yml / [Mips] Enable tail merging for the R3000A without splitting HI16/LO16 pairs (pull_request) Failing after 0s
release-documentation.yml / [Mips] Enable tail merging for the R3000A without splitting HI16/LO16 pairs (pull_request) Failing after 0s
release-sources.yml / [Mips] Enable tail merging for the R3000A without splitting HI16/LO16 pairs (pull_request) Failing after 0s
Add buildbot information to first PRs from new contributors / buildbot_comment (pull_request_target) Has been skipped
Labelling new pull requests / greeter (pull_request_target) Has been cancelled
Labelling new pull requests / automate-prs-labels (pull_request_target) Has been cancelled
[Mips] Enable tail merging for the R3000A without splitting HI16/LO16 pairs
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-16 15:01:38 -05:00
.ci [CI] Bump python dependencies (#224349) 2026-09-17 10:16:55 -07:00
.github workflows/libclang-abi-tests: Cache baseline results (#213503) 2026-09-19 14:26:25 -07:00
bolt [BOLT] Zero all stale bytes in reused file region (#222515) 2026-09-18 14:56:14 -07:00
clang [Mips] Define __mips as 1 for the R3000A 2026-10-15 23:52:26 -05:00
clang-tools-extra [clang-tidy] Add null-checking in Use designated Initializer check (#220093) 2026-09-19 21:08:16 +08:00
cmake cmake: Derive CMake system name from a triple via new mechanism (#208773) 2026-08-01 09:41:32 +02:00
compiler-rt [scudo] Fix AllocatorCacheMaxResidentBytesDisabled test (#224698) 2026-09-18 16:10:35 -07:00
cross-project-tests [Clang][RISCV] Add packed subvector extract intrinsics (#224429) 2026-09-18 11:09:04 +08:00
flang [flang][cuda] Emit cuda sentinel only when compiling main (#224507) 2026-09-18 23:07:55 -07:00
flang-rt [flang-rt] Compile ShallowCopyModifiedSuffix for the device (#224485) 2026-09-18 14:13:02 +00:00
libc [libc] Add getgrnam_r and getgrgid_r entrypoints (#224722) 2026-09-19 21:40:15 +01:00
libclc libclc: Update fmod implementations (#222369) 2026-09-10 09:56:16 +02:00
libcxx Scope the regex mask cast to __ps2sdk__, fix the scheduler comment 2026-10-15 12:06:36 -05:00
libcxxabi [libc++abi] Build __cxa_thread_atexit for __ps2sdk__ 2026-10-11 10:00:43 -05:00
libsycl Revert "[offload] add context to olMemAlloc*" (#224703) 2026-09-18 11:58:29 -07:00
libunwind libunwind: save and restore FPRs with swc1/lwc1 on the R5900 2026-10-03 12:29:06 -05:00
lld [TargetParser][Mips] Add the mips64r5900el-ps2-elf triple 2026-10-15 16:51:45 -05:00
lldb [lldb/test] Skip test_scripted_process_addressable_bits on Windows (#224878) 2026-09-20 03:11:05 +00:00
llvm [Mips] Enable tail merging for the R3000A without splitting HI16/LO16 pairs 2026-10-16 15:01:38 -05:00
llvm-libgcc [docs] Finish misc MyST migration (#210209) 2026-07-17 11:56:59 -07:00
mlir [MLIR] Preserve operand segment sizes when removing dead inputs (#223154) 2026-09-19 12:38:48 +03:00
offload Revert "[offload] add context to olMemAlloc*" (#224703) 2026-09-18 11:58:29 -07:00
openmp [OpenMP][DeviceRTL] Implement __kmpc_error for the error directive (#220702) 2026-09-17 08:40:28 -04:00
orc-rt [orc-rt] Drop emacs mode lines from .cpp files. (#224928) 2026-09-20 23:38:17 +10:00
polly [llvm] Forward declare VirtualFileSystem (#211761) 2026-09-17 09:09:51 -07:00
runtimes [libcxx][libcxxabi][cmake] Deduplicate sanitizer flags function (#221757) 2026-09-09 08:27:26 +01:00
third-party [ADT] Give DenseMapPair its own members instead of a std::pair base. NFC (#221853) 2026-09-09 08:28:20 +00:00
utils [bazel] Fix the build after 8c8740bd92197171d5873f77a66bb68217926fb2/2747501774ba93685fc460abafb395e585a86b13 (#224868) 2026-09-20 00:05:15 +00:00
.clang-format Enforce Unix line endings for Clang/LLVM/MLIR projects (#161460) 2025-10-02 06:09:12 -07:00
.clang-format-ignore [Docs] Update coding standard for TD files (#200848) 2026-06-01 21:35:58 +01:00
.clang-tidy Add default empty header filter regex to root .clang-tidy (#167386) 2025-11-11 01:36:25 +03:00
.git-blame-ignore-revs [llvm][llvm-readobj][NFC] Add formatting commit to ignore revs (#221693) 2026-09-07 11:07:06 +01:00
.gitattributes [libclang/python] Enable packaging clang python bindings (#125806) 2025-11-24 17:21:24 -08:00
.gitignore gitignore: Add emacs lock files (#205055) 2026-06-22 18:19:29 +02:00
.mailmap [mailmap] Add entry for Zeyi Xu (#222237) 2026-09-09 13:08:48 +08:00
CODE_OF_CONDUCT.md Add conduct email contact for the CODE_OF_CONDUCT page (#218787) 2026-08-25 23:05:17 +00:00
CONTRIBUTING.md [www][docs] Remove last mentions of IRC (#139076) 2025-05-08 09:40:33 -04:00
LICENSE.TXT [docs] Add LICENSE.txt to the root of the mono-repo 2022-08-24 09:35:00 +02:00
pyproject.toml [docs] Create utils/docs (#203962) 2026-06-24 15:12:48 -04:00
README.md README: add a work-in-progress banner 2026-10-03 11:49:47 -05:00
SECURITY.md [SECURITY.md] add pointers to "what is a security issue" (#177372) 2026-01-22 17:19:09 -07:00
UPDATING.md UPDATING.md: state what belongs in the fork 2026-10-15 11:55:45 -05:00

⚠️ Work in progress. This is the PS2 fork of LLVM (Emotion Engine R5900 and IOP R3000A support, VU0/VU1 and MMI instructions), used by the experimental toolchain in ps2/llvm-toolchain. It changes often, has gaps, and is not ready for production use. The patched branch is r5900-ee; see UPDATING.md. ⚠️

The LLVM Compiler Infrastructure

OpenSSF Scorecard OpenSSF Best Practices libc++

Welcome to the LLVM project!

This repository contains the source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and run-time environments.

The LLVM project has multiple components. The core of the project is itself called "LLVM". This contains all of the tools, libraries, and header files needed to process intermediate representations and convert them into object files. Tools include an assembler, disassembler, bitcode analyzer, and bitcode optimizer.

C-like languages use the Clang frontend. This component compiles C, C++, Objective-C, and Objective-C++ code into LLVM bitcode -- and from there into object files, using LLVM.

Other components include: the libc++ C++ standard library, the LLD linker, and more.

Getting the Source Code and Building LLVM

Consult the Getting Started with LLVM page for information on building and running LLVM.

For information on how to contribute to the LLVM project, please take a look at the Contributing to LLVM guide.

Getting in touch

Join the LLVM Discourse forums, Discord chat, LLVM Office Hours or Regular sync-ups.

The LLVM project has adopted a code of conduct for participants to all modes of communication within the project.