[all-commits] [llvm/llvm-project] 0d8331: [flang] Refine symbol sorting

Peter Klausler via All-commits all-commits at lists.llvm.org
Thu Mar 18 11:18:42 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 0d8331c06be6981da5341bdcbbc6dd867002da08
      https://github.com/llvm/llvm-project/commit/0d8331c06be6981da5341bdcbbc6dd867002da08
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2021-03-18 (Thu, 18 Mar 2021)

  Changed paths:
    M flang/include/flang/Evaluate/constant.h
    M flang/include/flang/Evaluate/tools.h
    M flang/include/flang/Semantics/semantics.h
    M flang/include/flang/Semantics/symbol.h
    M flang/lib/Evaluate/characteristics.cpp
    M flang/lib/Evaluate/constant.cpp
    M flang/lib/Evaluate/tools.cpp
    M flang/lib/Parser/provenance.cpp
    M flang/lib/Semantics/check-declarations.cpp
    M flang/lib/Semantics/check-do-forall.cpp
    M flang/lib/Semantics/check-omp-structure.cpp
    M flang/lib/Semantics/compute-offsets.cpp
    M flang/lib/Semantics/mod-file.cpp
    M flang/lib/Semantics/resolve-directives.cpp
    M flang/lib/Semantics/resolve-names.cpp
    M flang/lib/Semantics/scope.cpp
    M flang/test/Semantics/resolve102.f90

  Log Message:
  -----------
  [flang] Refine symbol sorting

Replace semantics::SymbolSet with alternatives that clarify
whether the set should order its contents by source position
or not.  This matters because positionally-ordered sets must
not be used for Symbols that might be subjected to name
replacement during name resolution, and address-ordered
sets must not be used (without sorting) in circumstances
where the order of their contents affects the output of the
compiler.

All set<> and map<> instances in the compiler that are keyed
by Symbols now have explicit Compare types in their template
instantiations.  Symbol::operator< is no more.

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




More information about the All-commits mailing list