Luite Stegeman pushed to branch wip/ubxsumtag at Glasgow Haskell Compiler / GHC
Commits:
-
55f86df0
by Luite Stegeman at 2025-08-31T12:33:53+02:00
3 changed files:
- testsuite/tests/unboxedsums/UbxSumUnpackedSize.hs
- testsuite/tests/unboxedsums/UbxSumUnpackedSize.stdout
- testsuite/tests/unboxedsums/UbxSumUnpackedSize.stdout-ws-32
Changes:
| ... | ... | @@ -3,6 +3,7 @@ module Main where |
| 3 | 3 | import GHC.Exts.Heap.Closures
|
| 4 | 4 | import Control.Exception (evaluate)
|
| 5 | 5 | import Data.Word (Word32)
|
| 6 | +import Data.Int (Int8, Int16)
|
|
| 6 | 7 | |
| 7 | 8 | -- this should get a Word8 tag
|
| 8 | 9 | data E1
|
| ... | ... | @@ -123,41 +124,41 @@ data U_Bool = U_Bool {-# UNPACK #-} !Bool |
| 123 | 124 | deriving (Show)
|
| 124 | 125 | |
| 125 | 126 | data U_E1 = U_E1 {-# UNPACK #-} !E1
|
| 126 | - {-# UNPACK #-} !E1
|
|
| 127 | - {-# UNPACK #-} !E1
|
|
| 128 | - {-# UNPACK #-} !E1
|
|
| 129 | - {-# UNPACK #-} !E1
|
|
| 130 | - {-# UNPACK #-} !E1
|
|
| 131 | - {-# UNPACK #-} !E1
|
|
| 132 | - {-# UNPACK #-} !E1
|
|
| 127 | + {-# UNPACK #-} !Int8
|
|
| 128 | + {-# UNPACK #-} !Int8
|
|
| 129 | + {-# UNPACK #-} !Int8
|
|
| 130 | + {-# UNPACK #-} !Int8
|
|
| 131 | + {-# UNPACK #-} !Int8
|
|
| 132 | + {-# UNPACK #-} !Int8
|
|
| 133 | + {-# UNPACK #-} !Int8
|
|
| 133 | 134 | deriving (Show)
|
| 134 | 135 | |
| 135 | 136 | data U_E2 = U_E2 {-# UNPACK #-} !E2
|
| 136 | - {-# UNPACK #-} !E2
|
|
| 137 | - {-# UNPACK #-} !E2
|
|
| 138 | - {-# UNPACK #-} !E2
|
|
| 139 | - {-# UNPACK #-} !E2
|
|
| 140 | - {-# UNPACK #-} !E2
|
|
| 141 | - {-# UNPACK #-} !E2
|
|
| 142 | - {-# UNPACK #-} !E2
|
|
| 137 | + {-# UNPACK #-} !Int8
|
|
| 138 | + {-# UNPACK #-} !Int8
|
|
| 139 | + {-# UNPACK #-} !Int8
|
|
| 140 | + {-# UNPACK #-} !Int8
|
|
| 141 | + {-# UNPACK #-} !Int8
|
|
| 142 | + {-# UNPACK #-} !Int8
|
|
| 143 | + {-# UNPACK #-} !Int8
|
|
| 143 | 144 | deriving (Show)
|
| 144 | 145 | |
| 145 | 146 | data U_E3 = U_E3 {-# UNPACK #-} !E3
|
| 146 | - {-# UNPACK #-} !E3
|
|
| 147 | - {-# UNPACK #-} !E3
|
|
| 148 | - {-# UNPACK #-} !E3
|
|
| 149 | - {-# UNPACK #-} !E3
|
|
| 150 | - {-# UNPACK #-} !E3
|
|
| 151 | - {-# UNPACK #-} !E3
|
|
| 152 | - {-# UNPACK #-} !E3
|
|
| 147 | + {-# UNPACK #-} !Int8
|
|
| 148 | + {-# UNPACK #-} !Int8
|
|
| 149 | + {-# UNPACK #-} !Int8
|
|
| 150 | + {-# UNPACK #-} !Int8
|
|
| 151 | + {-# UNPACK #-} !Int8
|
|
| 152 | + {-# UNPACK #-} !Int8
|
|
| 153 | + {-# UNPACK #-} !Int8
|
|
| 153 | 154 | deriving (Show)
|
| 154 | 155 | |
| 155 | 156 | data U_Mixed = U_Mixed {-# UNPACK #-} !E1
|
| 156 | - {-# UNPACK #-} !E1
|
|
| 157 | + {-# UNPACK #-} !Int8
|
|
| 157 | 158 | {-# UNPACK #-} !E2
|
| 158 | - {-# UNPACK #-} !E2
|
|
| 159 | - {-# UNPACK #-} !E3
|
|
| 160 | - {-# UNPACK #-} !E3
|
|
| 159 | + {-# UNPACK #-} !Int16
|
|
| 160 | + {-# UNPACK #-} !Int16
|
|
| 161 | + {-# UNPACK #-} !Int16
|
|
| 161 | 162 | {-# UNPACK #-} !Bool
|
| 162 | 163 | {-# UNPACK #-} !Bool
|
| 163 | 164 | deriving (Show)
|
| ... | ... | @@ -200,12 +201,10 @@ u_e1b = U_E1 maxBound minBound maxBound minBound |
| 200 | 201 | maxBound minBound maxBound minBound
|
| 201 | 202 | |
| 202 | 203 | u_e1c :: U_E1
|
| 203 | -u_e1c = U_E1 E1_1 E1_2 E1_3 E1_4
|
|
| 204 | - E1_5 E1_6 E1_7 E1_8
|
|
| 204 | +u_e1c = U_E1 E1_1 126 127 0 1 2 3 4
|
|
| 205 | 205 | |
| 206 | 206 | u_e1d :: U_E1
|
| 207 | -u_e1d = U_E1 E1_1 E1_16 E1_32 E1_64
|
|
| 208 | - E1_127 E1_128 E1_250 E1_254
|
|
| 207 | +u_e1d = U_E1 E1_254 126 127 0 1 2 3 4
|
|
| 209 | 208 | |
| 210 | 209 | u_e2a :: U_E2
|
| 211 | 210 | u_e2a = U_E2 minBound maxBound minBound maxBound
|
| ... | ... | @@ -4,31 +4,31 @@ U_Bool False True False True False True False True |
| 4 | 4 | size: 2
|
| 5 | 5 | |
| 6 | 6 | ### u_e1a
|
| 7 | -U_E1 E1_1 E1_254 E1_1 E1_254 E1_1 E1_254 E1_1 E1_254
|
|
| 7 | +U_E1 E1_1 127 (-128) 127 (-128) 127 (-128) 127
|
|
| 8 | 8 | size: 2
|
| 9 | 9 | |
| 10 | 10 | ### u_e1b
|
| 11 | -U_E1 E1_254 E1_1 E1_254 E1_1 E1_254 E1_1 E1_254 E1_1
|
|
| 11 | +U_E1 E1_254 (-128) 127 (-128) 127 (-128) 127 (-128)
|
|
| 12 | 12 | size: 2
|
| 13 | 13 | |
| 14 | 14 | ### u_e1c
|
| 15 | -U_E1 E1_1 E1_2 E1_3 E1_4 E1_5 E1_6 E1_7 E1_8
|
|
| 15 | +U_E1 E1_1 126 127 0 1 2 3 4
|
|
| 16 | 16 | size: 2
|
| 17 | 17 | |
| 18 | 18 | ### u_e1d
|
| 19 | -U_E1 E1_1 E1_16 E1_32 E1_64 E1_127 E1_128 E1_250 E1_254
|
|
| 19 | +U_E1 E1_254 126 127 0 1 2 3 4
|
|
| 20 | 20 | size: 2
|
| 21 | 21 | |
| 22 | 22 | ### u_e2a
|
| 23 | -U_E2 E2_1 E2_255 E2_1 E2_255 E2_1 E2_255 E2_1 E2_255
|
|
| 23 | +U_E2 E2_1 127 (-128) 127 (-128) 127 (-128) 127
|
|
| 24 | 24 | size: 2
|
| 25 | 25 | |
| 26 | 26 | ### u_e3a
|
| 27 | -U_E3 E3_1 E3_256 E3_1 E3_256 E3_1 E3_256 E3_1 E3_256
|
|
| 27 | +U_E3 E3_1 127 (-128) 127 (-128) 127 (-128) 127
|
|
| 28 | 28 | size: 3
|
| 29 | 29 | |
| 30 | 30 | ### u_mixed
|
| 31 | -U_Mixed E1_254 E1_1 E2_255 E2_1 E3_256 E3_1 True False
|
|
| 31 | +U_Mixed E1_254 (-128) E2_255 (-32768) 32767 (-32768) True False
|
|
| 32 | 32 | size: 3
|
| 33 | 33 | |
| 34 | 34 | ### u_maybe
|
| ... | ... | @@ -4,31 +4,31 @@ U_Bool False True False True False True False True |
| 4 | 4 | size: 3
|
| 5 | 5 | |
| 6 | 6 | ### u_e1a
|
| 7 | -U_E1 E1_1 E1_254 E1_1 E1_254 E1_1 E1_254 E1_1 E1_254
|
|
| 7 | +U_E1 E1_1 127 (-128) 127 (-128) 127 (-128) 127
|
|
| 8 | 8 | size: 3
|
| 9 | 9 | |
| 10 | 10 | ### u_e1b
|
| 11 | -U_E1 E1_254 E1_1 E1_254 E1_1 E1_254 E1_1 E1_254 E1_1
|
|
| 11 | +U_E1 E1_254 (-128) 127 (-128) 127 (-128) 127 (-128)
|
|
| 12 | 12 | size: 3
|
| 13 | 13 | |
| 14 | 14 | ### u_e1c
|
| 15 | -U_E1 E1_1 E1_2 E1_3 E1_4 E1_5 E1_6 E1_7 E1_8
|
|
| 15 | +U_E1 E1_1 126 127 0 1 2 3 4
|
|
| 16 | 16 | size: 3
|
| 17 | 17 | |
| 18 | 18 | ### u_e1d
|
| 19 | -U_E1 E1_1 E1_16 E1_32 E1_64 E1_127 E1_128 E1_250 E1_254
|
|
| 19 | +U_E1 E1_254 126 127 0 1 2 3 4
|
|
| 20 | 20 | size: 3
|
| 21 | 21 | |
| 22 | 22 | ### u_e2a
|
| 23 | -U_E2 E2_1 E2_255 E2_1 E2_255 E2_1 E2_255 E2_1 E2_255
|
|
| 23 | +U_E2 E2_1 127 (-128) 127 (-128) 127 (-128) 127
|
|
| 24 | 24 | size: 3
|
| 25 | 25 | |
| 26 | 26 | ### u_e3a
|
| 27 | -U_E3 E3_1 E3_256 E3_1 E3_256 E3_1 E3_256 E3_1 E3_256
|
|
| 27 | +U_E3 E3_1 127 (-128) 127 (-128) 127 (-128) 127
|
|
| 28 | 28 | size: 5
|
| 29 | 29 | |
| 30 | 30 | ### u_mixed
|
| 31 | -U_Mixed E1_254 E1_1 E2_255 E2_1 E3_256 E3_1 True False
|
|
| 31 | +U_Mixed E1_254 (-128) E2_255 (-32768) 32767 (-32768) True False
|
|
| 32 | 32 | size: 4
|
| 33 | 33 | |
| 34 | 34 | ### u_maybe
|