CtrlK
BlogDocsLog inGet started
Tessl Logo

himank-test/tessl-llvm

LLVM 22.x tile for building compilers, language runtimes, and out-of-tree tooling

88

1.23x
Quality

83%

Does it follow best practices?

Impact

96%

1.23x

Average score across 5 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-5/

{
  "context": "Tests whether the agent correctly applies LLVM 22 migration changes: replacing legacy pass manager with NPM, fixing opaque pointer APIs, updating deprecated headers, replacing llvm::Optional with std::optional, and using getOrInsertDeclaration instead of removed getDeclaration.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Legacy PM removed from StatsPass",
      "description": "StatsPass no longer inherits from FunctionPass. Instead uses PassInfoMixin<StatsPass> with a run(Function&, FunctionAnalysisManager&) method returning PreservedAnalyses",
      "max_score": 12
    },
    {
      "name": "No legacy PM in main.cpp",
      "description": "main.cpp does NOT use legacy::PassManager, PM.add(), or PM.run(). Custom pass invoked via NPM (ModulePassManager or FunctionPassManager with PassBuilder)",
      "max_score": 8
    },
    {
      "name": "llvm::Optional replaced",
      "description": "All uses of llvm::Optional<T> replaced with std::optional<T>, and llvm::None replaced with std::nullopt. llvm/ADT/Optional.h header removed.",
      "max_score": 10
    },
    {
      "name": "Intrinsic::getDeclaration replaced",
      "description": "Intrinsic::getDeclaration() replaced with Intrinsic::getOrInsertDeclaration() or Intrinsic::getDeclarationIfExists()",
      "max_score": 12
    },
    {
      "name": "Opaque pointer API fixed",
      "description": "getFloatPtrTy() (or equivalent) no longer uses ->getPointerTo(). Uses PointerType::get(Ctx, 0) or Builder.getPtrTy() instead",
      "max_score": 10
    },
    {
      "name": "Triple.h include path updated",
      "description": "Include of llvm/ADT/Triple.h updated to llvm/TargetParser/Triple.h",
      "max_score": 8
    },
    {
      "name": "Host.h include path updated",
      "description": "Include of llvm/Support/Host.h updated to llvm/TargetParser/Host.h",
      "max_score": 8
    },
    {
      "name": "CMake LLVM version bumped",
      "description": "CMakeLists.txt changes find_package(LLVM 18 ...) to find_package(LLVM 22 REQUIRED CONFIG)",
      "max_score": 6
    },
    {
      "name": "CMake uses llvm_map_components_to_libnames",
      "description": "CMakeLists.txt replaces hardcoded -lLLVMCore/-lLLVMSupport/etc. with llvm_map_components_to_libnames()",
      "max_score": 8
    },
    {
      "name": "C++17 set in CMake",
      "description": "CMakeLists.txt sets CMAKE_CXX_STANDARD to 17 (or higher)",
      "max_score": 6
    },
    {
      "name": "No using namespace llvm in header",
      "description": "StatsPass.h does NOT contain 'using namespace llvm' at file scope",
      "max_score": 6
    },
    {
      "name": "MIGRATION.md lists changes",
      "description": "MIGRATION.md file is present and lists at least 4 of the changes made with reasons",
      "max_score": 6
    }
  ]
}

AUDIT.md

tile.json