[flang][NFC] Remove link-time dependency of Evaluate on Semantics
authorTim Keith <tkeith@nvidia.com>
Fri, 29 May 2020 23:39:13 +0000 (16:39 -0700)
committerTim Keith <tkeith@nvidia.com>
Fri, 29 May 2020 23:39:14 +0000 (16:39 -0700)
commit14f49599ccafc7e318fac609387c4dd68430925f
treeb78ddcace23050b54dd07e7ce61aa813af457941
parentc652c306a6aa3b356cebae78caf4b33b63afb866
[flang][NFC] Remove link-time dependency of Evaluate on Semantics

Summary:
Some Symbol-related functions used in Evaluate were moved to
Evaluate/tools.h. This includes changing some member functions that were
replaced by non-member functions `IsDummy`, `GetUsedModule`, and
`CountLenParameters`.

Some member functions were made inline in `Scope`, `Symbol`,
`ArraySpec`, and `DeclTypeSpec`. The definitions were preceded by a
comment explaining why they are inline.

`IsConstantShape` was expanded inline in `IsDescriptor` because it isn't
used anywhere else

After this change, at least when compiling with clang on macos,
`libFortranEvaluate.a` has no undefined symbols that are satisfied by
`libFortranSemantics.a`.

Reviewers: klausler, PeteSteinfeld, sscalpone, jdoerfert, DavidTruby

Reviewed By: PeteSteinfeld

Subscribers: llvm-commits

Tags: #flang, #llvm

Differential Revision: https://reviews.llvm.org/D80762
17 files changed:
flang/include/flang/Evaluate/tools.h
flang/include/flang/Semantics/scope.h
flang/include/flang/Semantics/symbol.h
flang/include/flang/Semantics/tools.h
flang/include/flang/Semantics/type.h
flang/lib/Evaluate/check-expression.cpp
flang/lib/Evaluate/tools.cpp
flang/lib/Evaluate/type.cpp
flang/lib/Semantics/check-declarations.cpp
flang/lib/Semantics/compute-offsets.cpp
flang/lib/Semantics/mod-file.cpp
flang/lib/Semantics/resolve-names-utils.cpp
flang/lib/Semantics/resolve-names.cpp
flang/lib/Semantics/scope.cpp
flang/lib/Semantics/symbol.cpp
flang/lib/Semantics/tools.cpp
flang/lib/Semantics/type.cpp