diff options
| author | Yong He <yonghe@outlook.com> | 2022-12-07 12:02:30 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-12-07 12:02:30 -0800 |
| commit | 3a3a8b5f7701109fc413f42692c4de5769870489 (patch) | |
| tree | 909df4a30e69f33a76e0158d92b1823629dc2184 /source/slang/slang-ir-sccp.cpp | |
| parent | f116f43bd12358e87f351f0d3615628ac4e00921 (diff) | |
Lower-to-ir no longer produce `Construct` inst. (#2553)
Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'source/slang/slang-ir-sccp.cpp')
| -rw-r--r-- | source/slang/slang-ir-sccp.cpp | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/source/slang/slang-ir-sccp.cpp b/source/slang/slang-ir-sccp.cpp index 0bee2565c..fbc00848b 100644 --- a/source/slang/slang-ir-sccp.cpp +++ b/source/slang/slang-ir-sccp.cpp @@ -136,7 +136,10 @@ struct SCCPContext case kIROp_BitXor: case kIROp_BitNot: case kIROp_BitCast: - case kIROp_Construct: + case kIROp_CastIntToFloat: + case kIROp_CastFloatToInt: + case kIROp_IntCast: + case kIROp_FloatCast: case kIROp_Select: return true; default: @@ -284,7 +287,7 @@ struct SCCPContext break; \ } - LatticeVal evalConstruct(IRType* type, LatticeVal v0) + LatticeVal evalCast(IRType* type, LatticeVal v0) { SLANG_SCCP_RETURN_IF_NONE_OR_ANY(v0) auto irConstant = as<IRConstant>(v0.value); @@ -838,18 +841,20 @@ struct SCCPContext switch (inst->getOp()) { - case kIROp_Construct: + case kIROp_IntCast: + case kIROp_FloatCast: + case kIROp_CastIntToFloat: + case kIROp_CastFloatToInt: switch (inst->getOperandCount()) { - case 0: - return evalDefaultConstruct(inst->getDataType()); - case 1: - return evalConstruct(inst->getDataType(), getLatticeVal(inst->getOperand(0))); + return evalCast(inst->getDataType(), getLatticeVal(inst->getOperand(0))); default: return LatticeVal::getAny(); } + case kIROp_DefaultConstruct: + return evalDefaultConstruct(inst->getDataType()); case kIROp_Add: return evalAdd( inst->getDataType(), |
