Expand the preallocated Int range to [-16,255]
authorAndreas Klebinger <klebinger.andreas@gmx.at>
Sun, 21 Jul 2019 10:26:25 +0000 (12:26 +0200)
committerMarge Bot <ben+marge-bot@smart-cactus.org>
Tue, 30 Jul 2019 05:33:50 +0000 (01:33 -0400)
Effects as I measured them:

RTS Size: +0.1%
Compile times: -0.5%
Runtine nofib: -1.1%

Nofib runtime result seems to mostly come from the `CS` benchmark
which is very sensible to alignment changes so this is likely over
represented.

However the compile time changes are realistic.

This is related to #16961.

includes/rts/Constants.h
rts/StgMiscClosures.cmm

index 9364bcc..15ff2a4 100644 (file)
@@ -59,7 +59,7 @@
  *   NB. This corresponds with the number of actual INTLIKE/CHARLIKE
  *   closures defined in rts/StgMiscClosures.cmm.
  */
-#define MAX_INTLIKE             16
+#define MAX_INTLIKE             255
 #define MIN_INTLIKE             (-16)
 
 #define MAX_CHARLIKE            255
index e80ce45..b58cdc3 100644 (file)
@@ -1027,7 +1027,247 @@ section "data" {
     INTLIKE_HDR(13)
     INTLIKE_HDR(14)
     INTLIKE_HDR(15)
-    INTLIKE_HDR(16)  /* MAX_INTLIKE == 16 */
+    INTLIKE_HDR(16)
+    INTLIKE_HDR(17)
+    INTLIKE_HDR(18)
+    INTLIKE_HDR(19)
+    INTLIKE_HDR(20)
+    INTLIKE_HDR(21)
+    INTLIKE_HDR(22)
+    INTLIKE_HDR(23)
+    INTLIKE_HDR(24)
+    INTLIKE_HDR(25)
+    INTLIKE_HDR(26)
+    INTLIKE_HDR(27)
+    INTLIKE_HDR(28)
+    INTLIKE_HDR(29)
+    INTLIKE_HDR(30)
+    INTLIKE_HDR(31)
+    INTLIKE_HDR(32)
+    INTLIKE_HDR(33)
+    INTLIKE_HDR(34)
+    INTLIKE_HDR(35)
+    INTLIKE_HDR(36)
+    INTLIKE_HDR(37)
+    INTLIKE_HDR(38)
+    INTLIKE_HDR(39)
+    INTLIKE_HDR(40)
+    INTLIKE_HDR(41)
+    INTLIKE_HDR(42)
+    INTLIKE_HDR(43)
+    INTLIKE_HDR(44)
+    INTLIKE_HDR(45)
+    INTLIKE_HDR(46)
+    INTLIKE_HDR(47)
+    INTLIKE_HDR(48)
+    INTLIKE_HDR(49)
+    INTLIKE_HDR(50)
+    INTLIKE_HDR(51)
+    INTLIKE_HDR(52)
+    INTLIKE_HDR(53)
+    INTLIKE_HDR(54)
+    INTLIKE_HDR(55)
+    INTLIKE_HDR(56)
+    INTLIKE_HDR(57)
+    INTLIKE_HDR(58)
+    INTLIKE_HDR(59)
+    INTLIKE_HDR(60)
+    INTLIKE_HDR(61)
+    INTLIKE_HDR(62)
+    INTLIKE_HDR(63)
+    INTLIKE_HDR(64)
+    INTLIKE_HDR(65)
+    INTLIKE_HDR(66)
+    INTLIKE_HDR(67)
+    INTLIKE_HDR(68)
+    INTLIKE_HDR(69)
+    INTLIKE_HDR(70)
+    INTLIKE_HDR(71)
+    INTLIKE_HDR(72)
+    INTLIKE_HDR(73)
+    INTLIKE_HDR(74)
+    INTLIKE_HDR(75)
+    INTLIKE_HDR(76)
+    INTLIKE_HDR(77)
+    INTLIKE_HDR(78)
+    INTLIKE_HDR(79)
+    INTLIKE_HDR(80)
+    INTLIKE_HDR(81)
+    INTLIKE_HDR(82)
+    INTLIKE_HDR(83)
+    INTLIKE_HDR(84)
+    INTLIKE_HDR(85)
+    INTLIKE_HDR(86)
+    INTLIKE_HDR(87)
+    INTLIKE_HDR(88)
+    INTLIKE_HDR(89)
+    INTLIKE_HDR(90)
+    INTLIKE_HDR(91)
+    INTLIKE_HDR(92)
+    INTLIKE_HDR(93)
+    INTLIKE_HDR(94)
+    INTLIKE_HDR(95)
+    INTLIKE_HDR(96)
+    INTLIKE_HDR(97)
+    INTLIKE_HDR(98)
+    INTLIKE_HDR(99)
+    INTLIKE_HDR(100)
+    INTLIKE_HDR(101)
+    INTLIKE_HDR(102)
+    INTLIKE_HDR(103)
+    INTLIKE_HDR(104)
+    INTLIKE_HDR(105)
+    INTLIKE_HDR(106)
+    INTLIKE_HDR(107)
+    INTLIKE_HDR(108)
+    INTLIKE_HDR(109)
+    INTLIKE_HDR(110)
+    INTLIKE_HDR(111)
+    INTLIKE_HDR(112)
+    INTLIKE_HDR(113)
+    INTLIKE_HDR(114)
+    INTLIKE_HDR(115)
+    INTLIKE_HDR(116)
+    INTLIKE_HDR(117)
+    INTLIKE_HDR(118)
+    INTLIKE_HDR(119)
+    INTLIKE_HDR(120)
+    INTLIKE_HDR(121)
+    INTLIKE_HDR(122)
+    INTLIKE_HDR(123)
+    INTLIKE_HDR(124)
+    INTLIKE_HDR(125)
+    INTLIKE_HDR(126)
+    INTLIKE_HDR(127)
+    INTLIKE_HDR(128)
+    INTLIKE_HDR(129)
+    INTLIKE_HDR(130)
+    INTLIKE_HDR(131)
+    INTLIKE_HDR(132)
+    INTLIKE_HDR(133)
+    INTLIKE_HDR(134)
+    INTLIKE_HDR(135)
+    INTLIKE_HDR(136)
+    INTLIKE_HDR(137)
+    INTLIKE_HDR(138)
+    INTLIKE_HDR(139)
+    INTLIKE_HDR(140)
+    INTLIKE_HDR(141)
+    INTLIKE_HDR(142)
+    INTLIKE_HDR(143)
+    INTLIKE_HDR(144)
+    INTLIKE_HDR(145)
+    INTLIKE_HDR(146)
+    INTLIKE_HDR(147)
+    INTLIKE_HDR(148)
+    INTLIKE_HDR(149)
+    INTLIKE_HDR(150)
+    INTLIKE_HDR(151)
+    INTLIKE_HDR(152)
+    INTLIKE_HDR(153)
+    INTLIKE_HDR(154)
+    INTLIKE_HDR(155)
+    INTLIKE_HDR(156)
+    INTLIKE_HDR(157)
+    INTLIKE_HDR(158)
+    INTLIKE_HDR(159)
+    INTLIKE_HDR(160)
+    INTLIKE_HDR(161)
+    INTLIKE_HDR(162)
+    INTLIKE_HDR(163)
+    INTLIKE_HDR(164)
+    INTLIKE_HDR(165)
+    INTLIKE_HDR(166)
+    INTLIKE_HDR(167)
+    INTLIKE_HDR(168)
+    INTLIKE_HDR(169)
+    INTLIKE_HDR(170)
+    INTLIKE_HDR(171)
+    INTLIKE_HDR(172)
+    INTLIKE_HDR(173)
+    INTLIKE_HDR(174)
+    INTLIKE_HDR(175)
+    INTLIKE_HDR(176)
+    INTLIKE_HDR(177)
+    INTLIKE_HDR(178)
+    INTLIKE_HDR(179)
+    INTLIKE_HDR(180)
+    INTLIKE_HDR(181)
+    INTLIKE_HDR(182)
+    INTLIKE_HDR(183)
+    INTLIKE_HDR(184)
+    INTLIKE_HDR(185)
+    INTLIKE_HDR(186)
+    INTLIKE_HDR(187)
+    INTLIKE_HDR(188)
+    INTLIKE_HDR(189)
+    INTLIKE_HDR(190)
+    INTLIKE_HDR(191)
+    INTLIKE_HDR(192)
+    INTLIKE_HDR(193)
+    INTLIKE_HDR(194)
+    INTLIKE_HDR(195)
+    INTLIKE_HDR(196)
+    INTLIKE_HDR(197)
+    INTLIKE_HDR(198)
+    INTLIKE_HDR(199)
+    INTLIKE_HDR(200)
+    INTLIKE_HDR(201)
+    INTLIKE_HDR(202)
+    INTLIKE_HDR(203)
+    INTLIKE_HDR(204)
+    INTLIKE_HDR(205)
+    INTLIKE_HDR(206)
+    INTLIKE_HDR(207)
+    INTLIKE_HDR(208)
+    INTLIKE_HDR(209)
+    INTLIKE_HDR(210)
+    INTLIKE_HDR(211)
+    INTLIKE_HDR(212)
+    INTLIKE_HDR(213)
+    INTLIKE_HDR(214)
+    INTLIKE_HDR(215)
+    INTLIKE_HDR(216)
+    INTLIKE_HDR(217)
+    INTLIKE_HDR(218)
+    INTLIKE_HDR(219)
+    INTLIKE_HDR(220)
+    INTLIKE_HDR(221)
+    INTLIKE_HDR(222)
+    INTLIKE_HDR(223)
+    INTLIKE_HDR(224)
+    INTLIKE_HDR(225)
+    INTLIKE_HDR(226)
+    INTLIKE_HDR(227)
+    INTLIKE_HDR(228)
+    INTLIKE_HDR(229)
+    INTLIKE_HDR(230)
+    INTLIKE_HDR(231)
+    INTLIKE_HDR(232)
+    INTLIKE_HDR(233)
+    INTLIKE_HDR(234)
+    INTLIKE_HDR(235)
+    INTLIKE_HDR(236)
+    INTLIKE_HDR(237)
+    INTLIKE_HDR(238)
+    INTLIKE_HDR(239)
+    INTLIKE_HDR(240)
+    INTLIKE_HDR(241)
+    INTLIKE_HDR(242)
+    INTLIKE_HDR(243)
+    INTLIKE_HDR(244)
+    INTLIKE_HDR(245)
+    INTLIKE_HDR(246)
+    INTLIKE_HDR(247)
+    INTLIKE_HDR(248)
+    INTLIKE_HDR(249)
+    INTLIKE_HDR(250)
+    INTLIKE_HDR(251)
+    INTLIKE_HDR(252)
+    INTLIKE_HDR(253)
+    INTLIKE_HDR(254)
+    INTLIKE_HDR(255)    /* MAX_INTLIKE == 255
+                         See #16961 for why 255 */
 }
 
 #endif