+ PR_CTR(ENT_STATIC_CON_ctr);
+ PR_CTR(ENT_DYN_CON_ctr);
+ PR_CTR(ENT_STATIC_FUN_DIRECT_ctr);
+ PR_CTR(ENT_DYN_FUN_DIRECT_ctr);
+ PR_CTR(ENT_STATIC_IND_ctr);
+ PR_CTR(ENT_DYN_IND_ctr);
+
+/* The counters ENT_PERM_IND and UPD_{NEW,OLD}_PERM_IND are not dumped
+ * at the end of execution unless update squeezing is turned off (+RTS
+ * -Z =RtsFlags.GcFlags.squeezeUpdFrames), as they will be wrong
+ * otherwise. Why? Because for each update frame squeezed out, we
+ * count an UPD_NEW_PERM_IND *at GC time* (i.e., too early). And
+ * further, when we enter the closure that has been updated, we count
+ * the ENT_PERM_IND, but we then enter the PERM_IND that was built for
+ * the next update frame below, and so on down the chain until we
+ * finally reach the value. Thus we count many new ENT_PERM_INDs too
+ * early.
+ *
+ * This of course refers to the -ticky version that uses PERM_INDs to
+ * determine the number of closures entered 0/1/>1. KSW 1999-04. */
+ COND_PR_CTR(ENT_PERM_IND_ctr,RtsFlags.GcFlags.squeezeUpdFrames == rtsFalse,"E!NT_PERM_IND_ctr requires +RTS -Z");
+
+ PR_CTR(ENT_AP_ctr);