aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* [CodeGen] Add strict MachineIR verificationRichard-Qin-X2026-08-017-0/+1044
| | | | Verify arena catalogs, intrusive layouts, reciprocal CFG edges, operand ownership, exact def-use coverage, instruction descriptors, pseudo deadlines, and MachineFunctionProperties. Preserve monotonic-arena history while rejecting detached objects that retain live state.
* [CodeGen] Add transactional MachineIR builderRichard-Qin-X2026-08-019-72/+1368
| | | | Validate insertion cursors, operand ownership, descriptor constraints, ties, implicit registers, and memory operands before allocating or publishing an instruction. Share instruction legality checks with the verifier path and preserve deterministic insertion order.
* [CMake] Match LLVM EH and RTTI defaultsRichard-Qin-X2026-08-013-10/+25
| | | | Disable C++ exceptions and RTTI by default while retaining explicit, validated opt-in switches. Replace the arena's exception syntax with an RAII construction guard so both configurations share one implementation.
* [CodeGen] Add machine instruction descriptorsRichard-Qin-X2026-08-017-0/+1186
| | | | Introduce an immutable instruction registry with exact operand, implicit register, tie, pseudo lifecycle, and memory constraints. Validate descriptor tables before publication and use the same rules to verify MachineInstr instances.
* [CodeGen] Build the core MachineIR object modelRichard-Qin-X2026-08-0116-0/+2935
| | | | | | Add arena-owned, address-stable MachineFunction, MachineBasicBlock, and MachineInstr nodes with intrusive layout and instruction lists. Model every required MachineOperand category, reciprocal ties, source state, and immutable per-instruction memory references. Implement physical and virtual register def-use chains whose back-links survive operand vector moves, plus vreg properties, tombstones, live-ins, reserved registers, and atomic CFG updates. Exercise ownership, reallocation, unlink/relink, cross-function rejection, and sanitizer paths.
* [CodeGen] Add machine IR value semanticsRichard-Qin-X2026-08-019-5/+1071
| | | | | | Add strongly typed machine indices, lane masks, instruction flags, fixed-point branch probabilities, and preserved-register masks. Model immutable machine memory operands with explicit base identity, size, alignment, address space, alias information, and validated atomic operation and ordering rules. Cover normal, boundary, and invalid combinations in standalone tests.
* [CodeGen] Add core machine type primitivesRichard-Qin-X2026-08-0112-0/+1273
| | | | | | Introduce an independent 64-bit extended LLT representation that preserves exact floating-point semantics and supports fixed and scalable vectors. Add opaque physical and virtual registers, strongly typed monotonic stable IDs, and atomic MachineFunctionProperties transitions. Export the primitives through RCCBackend::CodeGen, cover their boundary and failure cases, record the frozen invariants, and normalize the architecture document permissions.
* [Backend] Establish standalone build infrastructureRichard-Qin-X2026-08-0120-22/+650
| | | | Add the thin monorepo CMake entry point and an independently configurable backend project. Enforce the Clang/C++23 toolchain, expose Make/Ninja-neutral tests and developer checks, export an installable RCCBackend package, and introduce the first Support error abstraction.
* [legacy] Add functional and performance test suitesRichard-Qin-X2026-06-081837-0/+463184
|
* [legacy] Add compiler driverRichard-Qin-X2026-06-081-0/+386
|
* [legacy/backend] Add RISC-V 64 instruction selection, regalloc, and emissionRichard-Qin-X2026-06-089-0/+4209
|
* [legacy/mid] Add target-independent ABI loweringRichard-Qin-X2026-06-081-0/+45
|
* [legacy/mid] Add interprocedural passes: inlining and tail-recursion eliminationRichard-Qin-X2026-06-082-0/+698
|
* [legacy/mid] Add control-flow optimization: if-conversionRichard-Qin-X2026-06-081-0/+127
|
* [legacy/mid] Add loop idiom recognition: memset/memcpy, scalar replacement, ↵Richard-Qin-X2026-06-083-0/+1457
| | | | reduction unrolling
* [legacy/mid] Add loop restructuring: unrolling, unswitching, interchange, ↵Richard-Qin-X2026-06-084-0/+1990
| | | | dead-loop elimination
* [legacy/mid] Add loop-invariant and induction-variable optimization: LICM, LSRRichard-Qin-X2026-06-082-0/+1214
|
* [legacy/mid] Add strength reduction for constant div and mulRichard-Qin-X2026-06-082-0/+397
|
* [legacy/mid] Add scalar optimizations: fold, copy, GVN, GCM, SCCP, ↵Richard-Qin-X2026-06-087-0/+2604
| | | | reassociation, DCE
* [legacy/mid] Add memory SSA: construction, promotion, load/store optimizationRichard-Qin-X2026-06-084-0/+1952
|
* [legacy/mid] Add analysis passes: CFG, dominance, liveness, loops, aliasRichard-Qin-X2026-06-084-0/+1451
|
* [legacy/ir] Add SSA IR generationRichard-Qin-X2026-06-084-0/+1688
|
* [legacy/frontend] Add lexer, parser, and ASTRichard-Qin-X2026-06-083-0/+995
|
* [legacy] Add core utilities: BSet, arena allocator, interningRichard-Qin-X2026-06-081-0/+778
|
* [legacy] Add IR, AST, and RISC-V target headersRichard-Qin-X2026-06-089-0/+2111
|
* [legacy] Add build system and project metadataRichard-Qin-X2026-06-087-0/+1179
|
* [repo] Add project READMERichard-Qin-X2026-06-081-0/+12
|
* [repo] Add clang-format and clang-tidy configurationRichard-Qin-X2026-06-083-0/+49
|
* [repo] Add license and gitignoreRichard-Qin-X2026-06-082-0/+764