CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl-llvm

github.com/hbarve1/tessl-llvm

SkillAddedReview
version-sync

tiles/tessl-llvm/skills/version-sync/SKILL.md

Migrate an out-of-tree LLVM project to a new LLVM version (e.g., LLVM 21 → 22). Covers CMake bump, common LLVM 22 API breakages, header moves, pass renames, and opaque pointer migration.

67

add-npm-pass

tiles/tessl-llvm/skills/tessl-llvm/SKILL.md

Add a New Pass Manager (NPM) pass to an LLVM 22 in-tree or out-of-tree project. Covers FunctionPass, ModulePass, LoopPass, and CGSCCPass kinds, registration, pipeline wiring, CMake, and lit testing.

72

out-of-tree-setup

tiles/tessl-llvm/skills/out-of-tree-setup/SKILL.md

Scaffold an out-of-tree LLVM 22 compiler/language project from scratch. Covers CMake configuration, finding LLVM, linking components, a minimal LLVMContext driver, and build instructions.

64

new-target-backend

tiles/tessl-llvm/skills/new-target/SKILL.md

Add a new target backend skeleton to LLVM 22. Covers CMake registration, TargetInfo, TargetMachine, MCTargetDesc, minimal TableGen register/instruction defs, and wiring into the LLVM build.

67

lower-struct-types

tiles/tessl-llvm/skills/lower-struct-types/SKILL.md

Lower source-language struct, union, and tuple types to LLVM 22 IR. Covers creating StructType, computing field offsets, emitting GEP for field access, packed vs. padded layouts, unions via largest-member types, passing structs by value vs. pointer, and the alloca+mem2reg pattern for struct locals.

63

lit-filecheck

tiles/tessl-llvm/skills/lit-filecheck/SKILL.md

Write lit tests with FileCheck for LLVM 22 IR transforms, pass output, and codegen. Covers RUN lines, CHECK patterns, common directives, negative checks, and running tests with llvm-lit.

67

jit-setup

tiles/tessl-llvm/skills/jit-setup/SKILL.md

Set up an ORC JIT v2 execution engine for a language runtime using LLVM 22. Covers LLJIT, LLLazyJIT, ThreadSafeModule, symbol exposure, optimization pipeline, and calling JIT'd functions.

63

frontend-to-ir

tiles/tessl-llvm/skills/frontend-to-ir/SKILL.md

Lower a toy language AST to LLVM 22 IR using IRBuilder. Covers project setup, AST node types, expression lowering, control flow, functions, structs, and applying mem2reg.

62

add-vectorization-hint

tiles/tessl-llvm/skills/add-vectorization-hint/SKILL.md

Guide LLVM 22's auto-vectorizer and SLP vectorizer from a frontend. Covers loop vectorization metadata, interleaving, loop distribution, marking parallel accesses, controlling SLP, and how to check whether vectorization happened.

62

add-sanitizer

tiles/tessl-llvm/skills/add-sanitizer/SKILL.md

Instrument LLVM 22 IR for AddressSanitizer (ASan), UndefinedBehaviorSanitizer (UBSan), or ThreadSanitizer (TSan). Covers enabling sanitizers via TargetMachine/PassBuilder, adding manual shadow-memory checks, inserting UBSan runtime calls, and CMake setup.

68

add-lto

tiles/tessl-llvm/skills/add-lto/SKILL.md

Enable Link-Time Optimization (LTO and ThinLTO) for an LLVM 22-based compiler. Covers full LTO vs ThinLTO trade-offs, bitcode emission from a frontend, LLD integration, out-of-tree whole-program optimization via ModulePassManager, and common debugging tips.

69

add-intrinsic

tiles/tessl-llvm/skills/add-intrinsic/SKILL.md

Add a new LLVM IR intrinsic in LLVM 22. Covers TableGen definition, header regeneration, IRBuilder call-site usage, verifier rules, and lit testing.

67

add-gc-statepoints

tiles/tessl-llvm/skills/add-gc-statepoints/SKILL.md

Add garbage-collection support to an LLVM 22 IR frontend. Covers the shadow-stack (gcroot) model for simple GCs and the statepoint/gc.relocate model for moving/relocating collectors, including the RewriteStatepointsForGC pass and StackMap section.

67

add-exception-handling

tiles/tessl-llvm/skills/add-exception-handling/SKILL.md

Add exception handling (try/catch/finally) to an LLVM 22 IR frontend using invoke, landingpad, and the Itanium C++ ABI. Covers personality function, invoke vs call, catch dispatch, __cxa_begin/end_catch, resume, cleanup blocks, and Windows SEH notes.

72

add-debug-info

tiles/tessl-llvm/skills/add-debug-info/SKILL.md

Add DWARF debug info to an existing LLVM 22 IR frontend. Covers DIBuilder setup, compile unit, function subprograms, local variable declarations, source locations on instructions, and module flags.

62

add-calling-convention

tiles/tessl-llvm/skills/add-calling-convention/SKILL.md

Add or wire a calling convention in an LLVM 22 in-tree target or document IR-level ABI choices for out-of-tree frontends. Covers CallingConv IDs, TableGen CallingConv.td, CCState/CCValAssign hooks, ISel lowering, and tests.

64

add-attributes-metadata

tiles/tessl-llvm/skills/add-attributes-metadata/SKILL.md

Add function/parameter attributes and IR metadata to LLVM 22 IR to unlock optimizer opportunities. Covers NoUnwind, ReadNone, NoCapture, Noundef, loop vectorization hints, branch weights, TBAA, !range, and !nonnull.

63

add-alias-analysis

tiles/tessl-llvm/skills/add-alias-analysis/SKILL.md

Use and extend alias analysis in LLVM 22. Covers querying AAResults from a function pass, using IR-level hints (noalias, TBAA) as the preferred approach, writing a custom AA analysis with the New Pass Manager, and common ModRef patterns.

74