C++: Remove ConvertToVoid, replace with Convert

This commit is contained in:
Dave Bartolomeo
2018-08-18 10:01:12 -07:00
parent 650539dbb6
commit 332e944c16
5 changed files with 5 additions and 19 deletions

View File

@@ -33,7 +33,6 @@ private newtype TOpcode =
TPointerSub() or TPointerSub() or
TPointerDiff() or TPointerDiff() or
TConvert() or TConvert() or
TConvertToVoid() or
TConvertToBase() or TConvertToBase() or
TConvertToVirtualBase() or TConvertToVirtualBase() or
TConvertToDerived() or TConvertToDerived() or
@@ -126,7 +125,6 @@ module Opcode {
class PointerSub extends PointerOffsetOpcode, TPointerSub { override final string toString() { result = "PointerSub" } } class PointerSub extends PointerOffsetOpcode, TPointerSub { override final string toString() { result = "PointerSub" } }
class PointerDiff extends PointerArithmeticOpcode, TPointerDiff { override final string toString() { result = "PointerDiff" } } class PointerDiff extends PointerArithmeticOpcode, TPointerDiff { override final string toString() { result = "PointerDiff" } }
class Convert extends UnaryOpcode, TConvert { override final string toString() { result = "Convert" } } class Convert extends UnaryOpcode, TConvert { override final string toString() { result = "Convert" } }
class ConvertToVoid extends UnaryOpcode, TConvertToVoid { override final string toString() { result = "ConvertToVoid" } }
class ConvertToBase extends UnaryOpcode, TConvertToBase { override final string toString() { result = "ConvertToBase" } } class ConvertToBase extends UnaryOpcode, TConvertToBase { override final string toString() { result = "ConvertToBase" } }
class ConvertToVirtualBase extends UnaryOpcode, TConvertToVirtualBase { override final string toString() { result = "ConvertToVirtualBase" } } class ConvertToVirtualBase extends UnaryOpcode, TConvertToVirtualBase { override final string toString() { result = "ConvertToVirtualBase" } }
class ConvertToDerived extends UnaryOpcode, TConvertToDerived { override final string toString() { result = "ConvertToDerived" } } class ConvertToDerived extends UnaryOpcode, TConvertToDerived { override final string toString() { result = "ConvertToDerived" } }

View File

@@ -1126,19 +1126,6 @@ abstract class TranslatedSingleInstructionConversion extends TranslatedConversio
abstract Opcode getOpcode(); abstract Opcode getOpcode();
} }
/**
* The translation of an explicit cast to `void`.
*/
class TranslatedVoidConversion extends TranslatedSingleInstructionConversion {
TranslatedVoidConversion() {
conv instanceof VoidConversion
}
override Opcode getOpcode() {
result instanceof Opcode::ConvertToVoid
}
}
/** /**
* Represents the translation of a conversion expression that generates a * Represents the translation of a conversion expression that generates a
* `Convert` instruction. * `Convert` instruction.
@@ -1152,7 +1139,8 @@ class TranslatedSimpleConversion extends TranslatedSingleInstructionConversion {
conv instanceof IntegralToPointerConversion or conv instanceof IntegralToPointerConversion or
conv instanceof GlvalueConversion or conv instanceof GlvalueConversion or
conv instanceof ArrayToPointerConversion or conv instanceof ArrayToPointerConversion or
conv instanceof PrvalueAdjustmentConversion conv instanceof PrvalueAdjustmentConversion or
conv instanceof VoidConversion
} }
override Opcode getOpcode() { override Opcode getOpcode() {

View File

@@ -3855,7 +3855,7 @@ ir.cpp:
# 900| r0_3(glval<int>) = VariableAddress[x] : # 900| r0_3(glval<int>) = VariableAddress[x] :
# 900| mu0_4(int) = Store : r0_3, r0_2 # 900| mu0_4(int) = Store : r0_3, r0_2
# 901| r0_5(glval<int>) = VariableAddress[x] : # 901| r0_5(glval<int>) = VariableAddress[x] :
# 901| v0_6(void) = ConvertToVoid : r0_5 # 901| v0_6(void) = Convert : r0_5
# 902| v0_7(void) = NoOp : # 902| v0_7(void) = NoOp :
# 900| v0_8(void) = ReturnVoid : # 900| v0_8(void) = ReturnVoid :
# 900| v0_9(void) = UnmodeledUse : mu* # 900| v0_9(void) = UnmodeledUse : mu*

View File

@@ -3835,7 +3835,7 @@ ir.cpp:
# 900| r0_3(glval<int>) = VariableAddress[x] : # 900| r0_3(glval<int>) = VariableAddress[x] :
# 900| mu0_4(int) = Store : r0_3, r0_2 # 900| mu0_4(int) = Store : r0_3, r0_2
# 901| r0_5(glval<int>) = VariableAddress[x] : # 901| r0_5(glval<int>) = VariableAddress[x] :
# 901| v0_6(void) = ConvertToVoid : r0_5 # 901| v0_6(void) = Convert : r0_5
# 902| v0_7(void) = NoOp : # 902| v0_7(void) = NoOp :
# 900| v0_8(void) = ReturnVoid : # 900| v0_8(void) = ReturnVoid :
# 900| v0_9(void) = UnmodeledUse : mu* # 900| v0_9(void) = UnmodeledUse : mu*

View File

@@ -3855,7 +3855,7 @@ ir.cpp:
# 900| r0_3(glval<int>) = VariableAddress[x] : # 900| r0_3(glval<int>) = VariableAddress[x] :
# 900| mu0_4(int) = Store : r0_3, r0_2 # 900| mu0_4(int) = Store : r0_3, r0_2
# 901| r0_5(glval<int>) = VariableAddress[x] : # 901| r0_5(glval<int>) = VariableAddress[x] :
# 901| v0_6(void) = ConvertToVoid : r0_5 # 901| v0_6(void) = Convert : r0_5
# 902| v0_7(void) = NoOp : # 902| v0_7(void) = NoOp :
# 900| v0_8(void) = ReturnVoid : # 900| v0_8(void) = ReturnVoid :
# 900| v0_9(void) = UnmodeledUse : mu* # 900| v0_9(void) = UnmodeledUse : mu*