summaryrefslogtreecommitdiff
path: root/src/jit/gentree.h
diff options
context:
space:
mode:
authorBrian Sullivan <briansul@microsoft.com>2018-09-05 15:58:10 -0700
committerBrian Sullivan <briansul@microsoft.com>2018-09-13 15:21:58 -0700
commita63d721496f4035fc52e54c24d02288a30c04051 (patch)
tree47117c8934a6e680a5005a3d1f476024df7fade4 /src/jit/gentree.h
parentc179f27661d5633168067f9f706dc44938086a1e (diff)
downloadcoreclr-a63d721496f4035fc52e54c24d02288a30c04051.tar.gz
coreclr-a63d721496f4035fc52e54c24d02288a30c04051.tar.bz2
coreclr-a63d721496f4035fc52e54c24d02288a30c04051.zip
Value Number Enhancements:
Revise the exeception gernerating value number functions: VNF_OverflowEXc, VNF_CastOvf, VNF_ARithmeticExc, VNF_DivideByZeroExc and ConvertOverflowExc added support methods for VNNormalValue Extended GetVNGuncForOper to support overflow operations and additional unsigned operations: And added value number functions for - unsigned comparisons, unsigned add, sub and mul - overflow add, sub, mul New method: VMCheckAscending to validate that exception sets maintain the ascending ordfer property. New method: VMExcSetIntersection and VMExcIsSubset Changed the constant folding logic in VNForFunc to avoid folding when the operation will unconditionally throw when folded. Explicitly specialize some EvalOp<> calls Added several new method headers comments in ValueNum.cpp Clear the unsigned flag when bashing nodes into GT_COMMA or GT_NOP nodes Removed GT_NOP and GT_COMMA cases from GetVNFuncForOper Added enum VNOperKind Added support for the unsigned multiply VNFunc used on 32-bit target
Diffstat (limited to 'src/jit/gentree.h')
-rw-r--r--src/jit/gentree.h5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/jit/gentree.h b/src/jit/gentree.h
index d14ad1a802..44bac8bc3f 100644
--- a/src/jit/gentree.h
+++ b/src/jit/gentree.h
@@ -885,9 +885,8 @@ public:
#define GTF_BLK_VOLATILE GTF_IND_VOLATILE // GT_ASG, GT_STORE_BLK, GT_STORE_OBJ, GT_STORE_DYNBLK -- is a volatile block operation
#define GTF_BLK_UNALIGNED GTF_IND_UNALIGNED // GT_ASG, GT_STORE_BLK, GT_STORE_OBJ, GT_STORE_DYNBLK -- is an unaligned block operation
-#define GTF_OVERFLOW 0x10000000 // GT_ADD, GT_SUB, GT_MUL, -- Need overflow check. Use gtOverflow(Ex)() to check this flag.
- // GT_ASG_ADD, GT_ASG_SUB,
- // GT_CAST
+#define GTF_OVERFLOW 0x10000000 // Supported for: GT_ADD, GT_SUB, GT_MUL and GT_CAST.
+ // Requires an overflow check. Use gtOverflow(Ex)() to check this flag.
#define GTF_ARR_BOUND_INBND 0x80000000 // GT_ARR_BOUNDS_CHECK -- have proved this check is always in-bounds