LLVM 22.x tile for building compilers, language runtimes, and out-of-tree tooling
88
83%
Does it follow best practices?
Impact
96%
1.23xAverage score across 5 eval scenarios
Passed
No known issues
{
"context": "Tests whether the agent correctly structures an out-of-tree LLVM 22 NPM pass plugin, including the class hierarchy, CMake configuration, plugin registration entry point, and lit test conventions.",
"type": "weighted_checklist",
"checklist": [
{
"name": "PassInfoMixin base class",
"description": "The pass class inherits from PassInfoMixin<ClassName> (not FunctionPass, ModulePass, or any legacy base class)",
"max_score": 12
},
{
"name": "run() return type",
"description": "The run() method returns PreservedAnalyses (not bool or void)",
"max_score": 8
},
{
"name": "Plugin entry point name",
"description": "Defines a function named llvmGetPassPluginInfo with extern \"C\" linkage (and optionally LLVM_ATTRIBUTE_WEAK)",
"max_score": 10
},
{
"name": "Pipeline registration callback",
"description": "Uses PB.registerPipelineParsingCallback (or equivalent PassBuilder registration) inside the plugin info lambda",
"max_score": 8
},
{
"name": "CMake llvm_map_components_to_libnames",
"description": "CMakeLists.txt uses llvm_map_components_to_libnames() to resolve LLVM library names (not hardcoded -lLLVMCore or similar)",
"max_score": 8
},
{
"name": "CMake find_package LLVM 22",
"description": "CMakeLists.txt uses find_package(LLVM 22 REQUIRED CONFIG) to locate LLVM",
"max_score": 6
},
{
"name": "MODULE or pass plugin CMake target",
"description": "CMakeLists.txt uses add_llvm_pass_plugin() OR add_library(...MODULE...) with POSITION_INDEPENDENT_CODE ON (not add_executable or add_llvm_component_library)",
"max_score": 8
},
{
"name": "C++17 standard",
"description": "CMakeLists.txt sets CMAKE_CXX_STANDARD to 17 (or higher)",
"max_score": 5
},
{
"name": "No using namespace llvm in header",
"description": "The .h header file does NOT contain 'using namespace llvm' at file scope",
"max_score": 5
},
{
"name": "Lit test smoke RUN line",
"description": "The .ll lit test file contains a RUN line that invokes opt with -disable-output (smoke test for crash-free execution)",
"max_score": 8
},
{
"name": "Lit test plugin load syntax",
"description": "The .ll lit test RUN line uses --load-pass-plugin=%llvmshlibdir/... or an equivalent substitution to load the plugin",
"max_score": 8
},
{
"name": "CHECK-LABEL in lit test",
"description": "The .ll lit test uses CHECK-LABEL: (not bare CHECK:) to anchor patterns to specific function definitions",
"max_score": 8
},
{
"name": "No legacy pass manager APIs",
"description": "Implementation does NOT use legacy::PassManager, FunctionPass, ModulePass, AU.setPreservesAll(), or getAnalysis<>() anywhere",
"max_score": 6
}
]
}docs
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
skills
add-alias-analysis
add-attributes-metadata
add-calling-convention
add-debug-info
add-exception-handling
add-gc-statepoints
add-intrinsic
add-lto
add-sanitizer
add-vectorization-hint
frontend-to-ir
jit-setup
lit-filecheck
lower-struct-types
new-target
out-of-tree-setup
tessl-llvm
version-sync