Project at a Glance

101
Commits (31 days)
132
Python Modules
49
Rule Implementations
131
Test Files
6
Native C++ Helpers

October 4 – November 4, 2026. Clang 21 LibTooling native helpers. Version tags: v0.1.0, baseline, v0.2.0-rc1.

Development Timeline

Early October 2026
Phase 1 — Foundation
Frozen v0.1 engine combining single-file Clang AST analysis, clang-tidy performance checks, and GCC optimization evidence. Established the PCPP-* diagnostic namespace and core CLI commands: precedes check, screening, doctor. Admission boundary set at 256 KiB per translation unit.
October 2026
Phase 2 — Loop Patterns and Detection Rules
Implemented 49 loop analysis rules covering interchange, tiling, and fission. Nine rule files address scalar and sparse reduction variants across parallel, SIMD, offload, and promotion contexts. Added stride analysis, nonconsecutive access detection, and pointer recurrence tracking. Induction variable analysis supports both direct zero-start proofs and bounded affine recurrence detection over CFG backedges.
October 2026
Phase 3 — OpenMP and Accelerator Analysis
OpenMP canonical for-loop recognition, variable scope analysis, and SIMD metadata extraction. OpenACC routine classification, declare-target tracking, and forall-parallel candidate identification. Target-teams-distribute pattern detection for offload regions.
October 2026
Phase 4 — Optimization Experiments
Profile-guided LLVM + Ghidra decompilation campaign: 3 of 8 selected programs improved on every established workload without a measured regression. Iterative bounded optimization produced verified local gains: FFT 1.468× [1.338, 1.547] and BilateralFilter 1.740× [1.590, 1.794]. Multi-project binary reverse-optimization: 1 of 8 with workload-specific improvements but also a measured regression. ReedSolomon’s preliminary gain did not survive the independent final uncertainty criterion.
October 2026
Phase 5 — CLI Tooling and Product Engineering
Standalone executable packaging (dist/precedes) with no Python runtime dependency. Project mode reads local compilation databases via explicit flag policy. Versioned JSON output envelope and verbose evidence mode. Native vector-reserve and regex-reuse detection helpers built with Clang 21 LibTooling.
October 22 – 24, 2026
Phase 6 — AI Agent Integration
Phase 1: Codex smoke invocation on AlmaBench — agent returned NONE, no candidate produced. Phase 2: Structured edit interface engineering with deterministic synthetic validation. Phase 2.2: Genuine end-to-end integration on Salsa20 — NO_SUPPORTED_GAIN, measured 0.944× local slowdown. UTFCPP v4.0.6: Codex through full validation and native measurement pipeline — INCONCLUSIVE, 0.999× [0.974, 1.052].
Late October – November 2026
Phase 7 — Codee Open Catalog Verification
Systematic audit of the 73 applicable C/C++ checks in the public Codee Open Catalog. Established detection contracts for each rule against the pinned catalog revision 12c507e3. Results: 22 VERIFIED, 38 PARTIAL, 13 NOT IMPLEMENTED. No verified general automatic rewrites.
November 2026
Phase 8 — Advanced Semantic Analysis
Source call graphs with canonical declaration resolution and bounded reachability. Interprocedural global read/write may-effect propagation with SCC-aware fixed-point computation. C++ constructor/destructor lifetime semantics including implicit calls, temporary destruction, and virtual dispatch uncertainty. Construction failure cleanup paths for subobjects, array elements, bases, and delegated constructors. Allocation and deallocation identity tracking through call graph associations. CFG reaching-value analysis and bounded loop-region invariance proofs.

Status Classification

Every capability and catalog check is classified by its current implementation state. These categories are intended to be honest about what works and what does not.

Status Meaning
Implemented & Tested Feature is verified by the existing test suite. Detection contracts pass for the documented scope. Known limitations are stated.
Partially Supported Some cases are handled correctly; others remain unverified or out of scope. A check classified as PARTIAL remains PARTIAL even if many tests pass — the contract is incomplete.
Experimental Under active development. The feature exists in source but is not production-ready. Experimental capabilities include the opt-in trusted optimization pipeline and AI agent integration.
Not Yet Implemented The capability has been identified and scoped but no dedicated implementation exists. This is not evidence that the check is impossible — only that it has not been built.

Important Distinctions

Three separate capabilities are tracked independently and must never be conflated:

Diagnostic detection Can the analyzer identify the pattern in source code?
Automated rewrite Can the analyzer generate a correct transformation? Currently: 0 verified general rewrites.
Runtime improvement Does the transformation produce a measured speedup? Requires independent A/B evidence.

Commit counts and semantic analysis work do not automatically complete additional catalog rules. A large number of commits reflecting infrastructure, testing, and semantic capabilities is not evidence of diagnostic coverage advancement.

About

Precedes is created and maintained by Felipe Thomaz Pedroni.

This site is a technical portfolio demonstrating expertise in compiler internals, static analysis, and C/C++ performance engineering.