C++ IR: Remove fields from InstructionTag

Like array indexes were seemingly not needed in instruction tags, the
same appears to apply to fields.
This commit is contained in:
Jonas Jensen
2019-07-05 11:55:15 +02:00
parent d378da33e8
commit aab6c072c7
2 changed files with 9 additions and 21 deletions

View File

@@ -58,15 +58,9 @@ newtype TInstructionTag =
ThrowTag() or
UnwindTag() or
InitializerUninitializedTag() or
InitializerFieldAddressTag(Field field) {
fieldIsInitialized(field)
} or
InitializerFieldDefaultValueTag(Field field) {
fieldIsInitialized(field)
} or
InitializerFieldDefaultValueStoreTag(Field field) {
fieldIsInitialized(field)
} or
InitializerFieldAddressTag() or
InitializerFieldDefaultValueTag() or
InitializerFieldDefaultValueStoreTag() or
InitializerElementIndexTag() or
InitializerElementAddressTag() or
InitializerElementDefaultValueTag() or
@@ -136,15 +130,9 @@ string getInstructionTagId(TInstructionTag tag) {
tag = CatchTag() and result = "Catch" or
tag = ThrowTag() and result = "Throw" or
tag = UnwindTag() and result = "Unwind" or
exists(Field field, Class cls, int index, string tagName |
field = cls.getCanonicalMember(index) and
(
tag = InitializerFieldAddressTag(field) and tagName = "InitFieldAddr" or
tag = InitializerFieldDefaultValueTag(field) and tagName = "InitFieldDefVal" or
tag = InitializerFieldDefaultValueStoreTag(field) and tagName = "InitFieldDefValStore"
) and
result = tagName + "(" + index + ")"
) or
tag = InitializerFieldAddressTag() and result = "InitFieldAddr" or
tag = InitializerFieldDefaultValueTag() and result = "InitFieldDefVal" or
tag = InitializerFieldDefaultValueStoreTag() and result = "InitFieldDefValStore" or
tag = InitializerElementIndexTag() and result = "InitElemIndex" or
tag = InitializerElementAddressTag() and result = "InitElemAddr" or
tag = InitializerElementDefaultValueTag() and result = "InitElemDefVal" or

View File

@@ -497,7 +497,7 @@ abstract class TranslatedFieldInitialization extends TranslatedElement {
}
final InstructionTag getFieldAddressTag() {
result = InitializerFieldAddressTag(field)
result = InitializerFieldAddressTag()
}
final Field getField() {
@@ -625,11 +625,11 @@ class TranslatedFieldValueInitialization extends TranslatedFieldInitialization,
}
private InstructionTag getFieldDefaultValueTag() {
result = InitializerFieldDefaultValueTag(field)
result = InitializerFieldDefaultValueTag()
}
private InstructionTag getFieldDefaultValueStoreTag() {
result = InitializerFieldDefaultValueStoreTag(field)
result = InitializerFieldDefaultValueStoreTag()
}
}