diff options
author | Andreas Klebinger <klebinger.andreas@gmx.at> | 2019-07-21 12:26:25 +0200 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2019-07-30 01:33:50 -0400 |
commit | 9c8a211a8592dbc7349eb336ff37e3cdfe698efe (patch) | |
tree | 7ed4bce86043560f1e12d425e3f41b1559f64f91 | |
parent | 86f47b8e26726d8629e5d9df44c573aced0a4d65 (diff) | |
download | haskell-9c8a211a8592dbc7349eb336ff37e3cdfe698efe.tar.gz |
Expand the preallocated Int range to [-16,255]
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.
-rw-r--r-- | includes/rts/Constants.h | 2 | ||||
-rw-r--r-- | rts/StgMiscClosures.cmm | 242 |
2 files changed, 242 insertions, 2 deletions
diff --git a/includes/rts/Constants.h b/includes/rts/Constants.h index 9364bccae2..15ff2a43d9 100644 --- a/includes/rts/Constants.h +++ b/includes/rts/Constants.h @@ -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 diff --git a/rts/StgMiscClosures.cmm b/rts/StgMiscClosures.cmm index e80ce45172..b58cdc3874 100644 --- a/rts/StgMiscClosures.cmm +++ b/rts/StgMiscClosures.cmm @@ -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 |