[all-commits] [llvm/llvm-project] e2dc30: [utils] Fix UpdateTestChecks case where 2 runs dif...

Mircea Trofin via All-commits all-commits at lists.llvm.org
Tue Dec 15 07:30:31 PST 2020


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e2dc306b1ac71258e6ce40a66e778527f282c355
      https://github.com/llvm/llvm-project/commit/e2dc306b1ac71258e6ce40a66e778527f282c355
  Author: Mircea Trofin <mtrofin at google.com>
  Date:   2020-12-15 (Tue, 15 Dec 2020)

  Changed paths:
    A clang/test/utils/update_cc_test_checks/Inputs/prefix-never-matches.cpp
    A clang/test/utils/update_cc_test_checks/prefix-never-matches.test
    A llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/common-label-different-bodies-1.ll
    A llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/common-label-different-bodies-2.ll
    A llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/common-label-different-bodies-3.ll
    A llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/prefix-never-matches.ll
    A llvm/test/tools/UpdateTestChecks/update_llc_test_checks/common-label-different-bodies.test
    A llvm/test/tools/UpdateTestChecks/update_llc_test_checks/prefix-never-matches.test
    A llvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/prefix-never-matches.ll
    A llvm/test/tools/UpdateTestChecks/update_test_checks/prefix-never-matches.test
    M llvm/utils/UpdateTestChecks/common.py
    M llvm/utils/update_test_prefix.py

  Log Message:
  -----------
  [utils] Fix UpdateTestChecks case where 2 runs differ for last label

Two RUN lines produce outputs that, each, have some common parts and
some different parts. The common parts are checked under label A. The
differing parts are associated to a function and checked under labels B
and C, respectivelly.
When build_function_body_dictionary is called for the first RUN line, it
will attribute the function body to labels A and C. When the second RUN
is passed to build_function_body_dictionary, it sees that the function
body under A is different from what it has. If in this second RUN line,
A were at the end of the prefixes list, A's body is still kept
associated with the first run's function.

When we output the function body (i.e. add_checks), we stop after
emitting for the first prefix matching that function. So we end up with
the wrong function body (first RUN's A-association).

There is no reason to special-case the last label in the prefixes list,
and the fix is to always clear a label association if we find a RUN line
where the body is different.

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




More information about the All-commits mailing list