[PATCH] D98878: [flang] Refine symbol sorting

Peter Klausler via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 18 10:30:09 PDT 2021


klausler created this revision.
klausler added reviewers: tskeith, awarzynski, PeteSteinfeld.
klausler added a project: Flang.
Herald added subscribers: jdoerfert, mgrang.
klausler requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

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.

Resolves lingering portability problems from https://reviews.llvm.org/D98743


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D98878

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

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D98878.331615.patch
Type: text/x-patch
Size: 23330 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210318/88a8b9c7/attachment-0001.bin>


More information about the llvm-commits mailing list