[all-commits] [llvm/llvm-project] a72d7e: [clang-repl] Simplify the value printing logic to ...

Vassil Vassilev via All-commits all-commits at lists.llvm.org
Mon Sep 23 03:01:04 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: a72d7eea5413444249670579fecea6823fb3c564
      https://github.com/llvm/llvm-project/commit/a72d7eea5413444249670579fecea6823fb3c564
  Author: Vassil Vassilev <v.g.vassilev at gmail.com>
  Date:   2024-09-23 (Mon, 23 Sep 2024)

  Changed paths:
    M clang/include/clang/Frontend/MultiplexConsumer.h
    M clang/include/clang/Interpreter/Interpreter.h
    M clang/lib/Frontend/MultiplexConsumer.cpp
    M clang/lib/Interpreter/CMakeLists.txt
    M clang/lib/Interpreter/DeviceOffload.cpp
    M clang/lib/Interpreter/DeviceOffload.h
    M clang/lib/Interpreter/IncrementalExecutor.cpp
    M clang/lib/Interpreter/IncrementalParser.cpp
    M clang/lib/Interpreter/IncrementalParser.h
    M clang/lib/Interpreter/Interpreter.cpp
    A clang/lib/Interpreter/InterpreterValuePrinter.cpp
    M clang/unittests/Interpreter/CodeCompletionTest.cpp
    M clang/unittests/Interpreter/InterpreterExtensionsTest.cpp

  Log Message:
  -----------
  [clang-repl] Simplify the value printing logic to enable out-of-process. (#107737)

This patch improves the design of the IncrementalParser and Interpreter
classes. Now the incremental parser is only responsible for building the
partial translation unit declaration and the AST, while the Interpreter
fills in the lower level llvm::Module and other JIT-related
infrastructure. Finally the Interpreter class now orchestrates the AST
and the LLVM IR with the IncrementalParser and IncrementalExecutor
classes.

The design improvement allows us to rework some of the logic that
extracts an interpreter value into the clang::Value object. The new
implementation simplifies use-cases which are used for out-of-process
execution by allowing interpreter to be inherited or customized with an
clang::ASTConsumer.

This change will enable completing the pretty printing work which is in
llvm/llvm-project#84769



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list