[flang] Remove defined assignments from runtime representation.

Original-commit: flang-compiler/f18@720e71c5db
Reviewed-on: https://github.com/flang-compiler/f18/pull/162
Tree-same-pre-rewrite: false
This commit is contained in:
peter klausler 2018-08-03 16:55:36 -07:00
parent 3ace3e39c6
commit d4b12d4e84
2 changed files with 3 additions and 14 deletions

View File

@ -27,8 +27,7 @@ TypeParameterValue TypeParameter::GetValue(const Descriptor &descriptor) const {
} }
bool DerivedType::IsNontrivialAnalysis() const { bool DerivedType::IsNontrivialAnalysis() const {
if (kindParameters_ > 0 || lenParameters_ > 0 || typeBoundProcedures_ > 0 || if (kindParameters_ > 0 || lenParameters_ > 0 || typeBoundProcedures_ > 0) {
definedAssignments_ > 0) {
return true; return true;
} }
for (std::size_t j{0}; j < components_; ++j) { for (std::size_t j{0}; j < components_; ++j) {

View File

@ -117,12 +117,6 @@ struct TypeBoundProcedure {
ExecutableCode code; ExecutableCode code;
}; };
struct DefinedAssignment {
int destinationRank, sourceRank;
bool isElemental;
ExecutableCode code;
};
// Represents a specialization of a derived type; i.e., any KIND type // Represents a specialization of a derived type; i.e., any KIND type
// parameters have values set at compilation time. // parameters have values set at compilation time.
// Extended derived types have the EXTENDS flag set and place their base // Extended derived types have the EXTENDS flag set and place their base
@ -132,12 +126,10 @@ class DerivedType {
public: public:
DerivedType(const char *n, std::size_t kps, std::size_t lps, DerivedType(const char *n, std::size_t kps, std::size_t lps,
const TypeParameter *tp, std::size_t cs, const Component *ca, const TypeParameter *tp, std::size_t cs, const Component *ca,
std::size_t tbps, const TypeBoundProcedure *tbp, std::size_t das, std::size_t tbps, const TypeBoundProcedure *tbp, std::size_t sz)
const DefinedAssignment *da, std::size_t sz)
: name_{n}, kindParameters_{kps}, lenParameters_{lps}, typeParameter_{tp}, : name_{n}, kindParameters_{kps}, lenParameters_{lps}, typeParameter_{tp},
components_{cs}, component_{ca}, typeBoundProcedures_{tbps}, components_{cs}, component_{ca}, typeBoundProcedures_{tbps},
typeBoundProcedure_{tbp}, definedAssignments_{das}, typeBoundProcedure_{tbp}, bytes_{sz} {
definedAssignment_{da}, bytes_{sz} {
if (IsNontrivialAnalysis()) { if (IsNontrivialAnalysis()) {
flags_ |= NONTRIVIAL; flags_ |= NONTRIVIAL;
} }
@ -197,8 +189,6 @@ private:
const Component *component_{nullptr}; // array const Component *component_{nullptr}; // array
std::size_t typeBoundProcedures_{0}; std::size_t typeBoundProcedures_{0};
const TypeBoundProcedure *typeBoundProcedure_{nullptr}; // array const TypeBoundProcedure *typeBoundProcedure_{nullptr}; // array
std::size_t definedAssignments_{0};
const DefinedAssignment *definedAssignment_{nullptr}; // array
std::uint64_t flags_{0}; std::uint64_t flags_{0};
std::size_t bytes_{0}; std::size_t bytes_{0};
}; };