llvm-project/flang/lib/Evaluate
peter klausler 46ade6d0ef [flang] Order Symbols by source provenance
In parser::AllCookedSources, implement a map from CharBlocks to
the CookedSource instances that they cover.  This permits a fast
Find() operation based on std::map::equal_range to map a CharBlock
to its enclosing CookedSource instance.

Add a creation order number to each CookedSource.  This allows
AllCookedSources to provide a Precedes(x,y) predicate that is a
true source stream ordering between two CharBlocks -- x is less
than y if it is in an earlier CookedSource, or in the same
CookedSource at an earlier position.

Add a reference to the singleton SemanticsContext to each Scope.

All of this allows operator< to be implemented on Symbols by
means of a true source ordering.  From a Symbol, we get to
its Scope, then to the SemanticsContext, and then use its
AllCookedSources reference to call Precedes().

Differential Revision: https://reviews.llvm.org/D98743
2021-03-16 15:25:15 -07:00
..
CMakeLists.txt [flang] Fix build with BUILD_SHARED_LIBS=ON and FLANG_BUILD_NEW_DRIVER=ON 2020-10-15 13:03:55 +02:00
call.cpp [flang] Fix bogus error message with binding 2021-01-21 16:59:51 -08:00
character.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
characteristics.cpp [flang] Detect circularly defined interfaces of procedures 2021-03-02 10:53:44 -08:00
check-expression.cpp [flang] Fix problems with constant arrays with lower bounds that are not 1 2021-01-29 08:05:10 -08:00
common.cpp [flang] Add isnan() extension intrinsic function, with folding 2020-11-11 11:40:57 -08:00
complex.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
constant.cpp [flang] Fixes for RESHAPE() 2020-07-30 19:05:06 -07:00
expression.cpp [flang] Fix assert on constant folding of extended types 2020-09-10 14:34:03 -07:00
fold-character.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
fold-complex.cpp [flang] Rework host runtime folding and enable REAL(2) folding with it. 2020-10-14 16:40:44 +02:00
fold-designator.cpp [flang] Implement STORAGE_SIZE(), SIZEOF(), C_SIZEOF() 2020-12-15 17:26:20 -08:00
fold-implementation.h [flang] Remove some needless operations in expr rewriting 2021-01-22 10:08:51 -08:00
fold-integer.cpp [flang] Fix calls to LBOUND() intrinsic for arrays with lower bounds not 1 2021-02-03 10:53:32 -08:00
fold-logical.cpp [flang] Implement IEEE_SUPPORT_xxx inquiry functions 2021-02-02 11:38:19 -08:00
fold-real.cpp [flang] Rework host runtime folding and enable REAL(2) folding with it. 2020-10-14 16:40:44 +02:00
fold.cpp [flang] Fix classification of shape inquiries in specification exprs 2021-01-13 10:05:14 -08:00
formatting.cpp [flang] Fix bogus message on internal subprogram with alternate return 2021-01-08 10:14:21 -08:00
host.cpp [flang] Fix setting mxcsr on MSVC 2020-07-08 07:25:25 -05:00
host.h [flang] Rework host runtime folding and enable REAL(2) folding with it. 2020-10-14 16:40:44 +02:00
initial-image.cpp [flang] Implement STORAGE_SIZE(), SIZEOF(), C_SIZEOF() 2020-12-15 17:26:20 -08:00
int-power.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
integer.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
intrinsics-library.cpp [flang] Rework host runtime folding and enable REAL(2) folding with it. 2020-10-14 16:40:44 +02:00
intrinsics.cpp [flang] Ensure pointer function results are acceptable variables 2021-03-12 16:04:36 -08:00
logical.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
real.cpp [flang][msvc] Avoid a reinterpret_cast 2020-10-15 10:38:48 -07:00
shape.cpp [flang] Add TypeAndShape::MeasureElementSizeInBytes() 2021-02-02 15:15:20 -08:00
static-data.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
tools.cpp [flang] Order Symbols by source provenance 2021-03-16 15:25:15 -07:00
type.cpp [flang] Implement STORAGE_SIZE(), SIZEOF(), C_SIZEOF() 2020-12-15 17:26:20 -08:00
variable.cpp [flang] Improve shape & length characterization 2021-01-30 16:14:27 -08:00