[all-commits] [llvm/llvm-project] 7df80a: [clangd] Add support for multiple DecisionForest m...

Utkarsh Saxena via All-commits all-commits at lists.llvm.org
Thu Oct 29 11:51:14 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 7df80a1204f0dc91fb8bba7635e2354adf08989f
      https://github.com/llvm/llvm-project/commit/7df80a1204f0dc91fb8bba7635e2354adf08989f
  Author: Utkarsh Saxena <usx at google.com>
  Date:   2020-10-29 (Thu, 29 Oct 2020)

  Changed paths:
    M clang-tools-extra/clangd/CodeComplete.cpp
    M clang-tools-extra/clangd/CodeComplete.h
    M clang-tools-extra/clangd/Quality.cpp
    M clang-tools-extra/clangd/Quality.h
    M clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp

  Log Message:
  -----------
  [clangd] Add support for multiple DecisionForest model experiments.

With every incremental change, one needs to check-in new model upstream.
This also significantly increases the size of the git repo with every
new model.
Testing and comparing the old and previous model is also not possible as
we run only a single model at any point.

One solution is to have a "staging" decision forest which can be
injected into clangd without pushing it to upstream. Compare the
performance of the staging model with the live model. After a couple of
enhancements have been done to staging model, we can then replace the
live model upstream with the staging model. This reduces upstream churn
and also allows us to compare models with current baseline model.

This is done by having a callback in CodeCompleteOptions which is called
only when we want to use a decision forest ranking model. This allows us
to inject different completion model internally.

Differential Revision: https://reviews.llvm.org/D90014




More information about the All-commits mailing list