[Git][ghc/ghc][wip/jeltsch/textual-bytecode-output] 5 commits: Document features that the example Haskell module uses
Wolfgang Jeltsch pushed to branch wip/jeltsch/textual-bytecode-output at Glasgow Haskell Compiler / GHC Commits: 48d1dfd5 by Wolfgang Jeltsch at 2026-07-31T16:14:08+03:00 Document features that the example Haskell module uses - - - - - 67a76a06 by Wolfgang Jeltsch at 2026-07-31T16:17:16+03:00 Lower the threshold for a word being considered large - - - - - 61c11620 by Wolfgang Jeltsch at 2026-07-31T16:46:22+03:00 Make test output independent of the word size - - - - - 5bb1d01e by Wolfgang Jeltsch at 2026-07-31T18:07:11+03:00 Add Note [Guidelines for the output of @--show-byte-code@] - - - - - 23abd3fa by Wolfgang Jeltsch at 2026-07-31T20:06:44+03:00 Add test output for JavaScript - - - - - 9 changed files: - compiler/GHC/ByteCode/Show.hs - testsuite/tests/show-bytecode/Example.hs - testsuite/tests/show-bytecode/Makefile - testsuite/tests/show-bytecode/show-bytecode-breakpoints.stdout - + testsuite/tests/show-bytecode/show-bytecode-breakpoints.stdout-javascript-unknown-ghcjs - testsuite/tests/show-bytecode/show-bytecode-hpc.stdout - + testsuite/tests/show-bytecode/show-bytecode-hpc.stdout-javascript-unknown-ghcjs - testsuite/tests/show-bytecode/show-bytecode-vanilla.stdout - + testsuite/tests/show-bytecode/show-bytecode-vanilla.stdout-javascript-unknown-ghcjs Changes: ===================================== compiler/GHC/ByteCode/Show.hs ===================================== @@ -77,6 +77,36 @@ import Data.Array (bounds, indices, elems) import Numeric (showHex) import GHC.Exts (Int (I#), Word (W#), int2Word#) +{- + +Note [Guidelines for the output of @--show-byte-code@] +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The output of @--show-byte-code@ shall be shaped according to the following +rules: + + * The output is not a complete textual representation of the contents of a + bytecode file. Parts that are likely of little or no interest to a human + reader are left out. An example of such a “missing” part is the array of + instructions in a bytecode object. + + * The shape of the output corresponds to a forest, whose structure closely + follows the structure of the bytecode representation within the compiler. + The textual representation of each subtree of this forest is generated using + the 'entry' operation defined in this module. + + * Single quotes are put around items (using the 'quotes' operation) where this + makes it easier to distinguish the items from surrounding text. Examples of + items with quotes around them are names and types. Integer and string + literals are output without quotes, because they stick out by themselves. + + * Infix operators are output with parentheses around them. To ensure that this + is always the case, all textual representations of names are generated using + the 'pprName' operation, defined in this module, instead of the 'ppr' + operation. + +-} + -- | Outputs textual information about the contents of a bytecode file. showByteCode :: Logger -> HscEnv -> FilePath -> IO () showByteCode logger env path = do @@ -85,6 +115,8 @@ showByteCode logger env path = do MCDump noSrcSpan (withPprStyle defaultDumpStyle $ pprOnDiskModuleByteCode byteCode) +-- The output generated by 'showByteCode' shall follow some general guidelines. +-- See Note [Guidelines for the output of @--show-byte-code@] for details. -- | Constructs textual information about the contents of a bytecode file. pprOnDiskModuleByteCode :: OnDiskModuleByteCode -> SDoc ===================================== testsuite/tests/show-bytecode/Example.hs ===================================== @@ -1,5 +1,14 @@ {-# LANGUAGE StaticPointers #-} +-- | This module uses in particular the following features: +-- +-- * Local variables defined in `where` clauses +-- * Integer literals +-- * Infix operators +-- * Recursion +-- * Static pointers +-- * Algebraic-datatype declarations +-- * Foreign import declarations module Example where import Numeric.Natural (Natural) ===================================== testsuite/tests/show-bytecode/Makefile ===================================== @@ -2,14 +2,25 @@ TOP=../.. include $(TOP)/mk/boilerplate.mk include $(TOP)/mk/test.mk -compile = '$(TEST_HC)' $(TEST_HC_OPTS) -fbyte-code -fwrite-byte-code -no-link -show = '$(TEST_HC)' $(TEST_HC_OPTS) --show-byte-code -normalize = sed -E -e ' \ - s/_r[[:alnum:]]+/_@name_suffix@/g; \ - s/^( *hash: )[[:xdigit:]]+/\1@hash@/g; \ - s/^( *)[[:xdigit:]]+:/\1@hash@:/g; \ - s/word [[:digit:]]{4}[[:digit:]]*/word @large_word@/ \ - ' +compile = '$(TEST_HC)' $(TEST_HC_OPTS) \ + -fbyte-code -fwrite-byte-code -no-link +show = '$(TEST_HC)' $(TEST_HC_OPTS) \ + --show-byte-code +stabilize = sed -E -e ' \ + s/_r[[:alnum:]]+/_@name_suffix@/g; \ + s/^( *hash: )[[:xdigit:]]+/\1@hash@/g; \ + s/^( *)[[:xdigit:]]+:/\1@hash@:/g; \ + s/word [[:digit:]]{2}[[:digit:]]*/word @large_word@/ \ + ' +universalize = sed -E -e ' \ + s/UInt[[:digit:]]+/UInt@word_size@/; \ + s/W[[:digit:]]+#/W@word_size@#/ \ + ' | \ + uniq +normalize = $(stabilize) | $(universalize) +# The invocation of `uniq` in `$(universalize)` is merely for collapsing +# adjacent entries of `word @large_word@`, whose number may depend on the word +# size. show-bytecode-vanilla: $(compile) Example.hs ===================================== testsuite/tests/show-bytecode/show-bytecode-breakpoints.stdout ===================================== @@ -18,7 +18,6 @@ objects: lifted: yes literals: word @large_word@ - word @large_word@ used items: named item ‘static_ptr1_sat_@name_suffix@’ named item ‘primes’ @@ -28,8 +27,6 @@ objects: literals: <none> used items: named item ‘static_ptr1_sat_@name_suffix@’ - named item ‘static_ptr1_sat_@name_suffix@’ - named item ‘static_ptr1_sat_@name_suffix@’ object ‘static_ptr1_sat_@name_suffix@’: arity: 0 literals: top-level string "main" @@ -52,16 +49,15 @@ objects: literals: <none> used items: named item ‘static_ptr1_sat_@name_suffix@’ - named item ‘static_ptr1_sat_@name_suffix@’ static-construction object ‘static_ptr1_sat_@name_suffix@’: data constructor: I# lifted: yes - literals: word 29 + literals: word @large_word@ used items: <none> static-construction object ‘static_ptr1_sat_@name_suffix@’: data constructor: I# lifted: yes - literals: word 20 + literals: word @large_word@ used items: <none> object ‘primes’: arity: 0 @@ -211,7 +207,6 @@ objects: lifted: yes literals: word @large_word@ - word @large_word@ used items: named item ‘static_ptr_sat_@name_suffix@’ named item ‘fibonaccis’ @@ -221,8 +216,6 @@ objects: literals: <none> used items: named item ‘static_ptr_sat_@name_suffix@’ - named item ‘static_ptr_sat_@name_suffix@’ - named item ‘static_ptr_sat_@name_suffix@’ object ‘static_ptr_sat_@name_suffix@’: arity: 0 literals: top-level string "main" @@ -245,16 +238,15 @@ objects: literals: <none> used items: named item ‘static_ptr_sat_@name_suffix@’ - named item ‘static_ptr_sat_@name_suffix@’ static-construction object ‘static_ptr_sat_@name_suffix@’: data constructor: I# lifted: yes - literals: word 17 + literals: word @large_word@ used items: <none> static-construction object ‘static_ptr_sat_@name_suffix@’: data constructor: I# lifted: yes - literals: word 24 + literals: word @large_word@ used items: <none> object ‘fibonaccis’: arity: 0 @@ -336,17 +328,16 @@ objects: literals: label ‘strlen’ word 0 - foreign function of type ‘Pointer -> UInt64’ + foreign function of type ‘Pointer -> UInt@word_size@’ used items: object ‘wild_@name_suffix@’: arity: 0 - literals: info table of ‘W64#’ + literals: info table of ‘W@word_size@#’ used items: <none> static-construction object ‘$tc'Nested’: data constructor: TyCon lifted: yes literals: - word @large_word@ word @large_word@ word 1 used items: @@ -383,7 +374,6 @@ objects: data constructor: TyCon lifted: yes literals: - word @large_word@ word @large_word@ word 1 used items: @@ -420,7 +410,6 @@ objects: data constructor: TyCon lifted: yes literals: - word @large_word@ word @large_word@ word 0 used items: @@ -436,7 +425,6 @@ objects: data constructor: TyCon lifted: yes literals: - word @large_word@ word @large_word@ word 2 used items: @@ -468,12 +456,10 @@ objects: literals: <none> used items: named item ‘$krep7_@name_suffix@’ - named item ‘$krep7_@name_suffix@’ static-construction object ‘$tc'Leaf’: data constructor: TyCon lifted: yes literals: - word @large_word@ word @large_word@ word 2 used items: @@ -517,7 +503,6 @@ objects: data constructor: TyCon lifted: yes literals: - word @large_word@ word @large_word@ word 0 used items: @@ -666,89 +651,89 @@ top-level strings: breakpoints: source breakpoints: source breakpoint 0: - source span: Example.hs:20:17-25 + source span: Example.hs:29:17-25 declaration path: divides free variables: k n source breakpoint 1: - source span: Example.hs:20:17-30 + source span: Example.hs:29:17-30 declaration path: divides free variables: k n source breakpoint 2: - source span: Example.hs:26:27-37 + source span: Example.hs:35:27-37 declaration path: primes isPrime free variables: n source breakpoint 3: - source span: Example.hs:26:53-56 + source span: Example.hs:35:53-56 declaration path: primes isPrime free variables: n source breakpoint 4: - source span: Example.hs:26:62-64 + source span: Example.hs:35:62-64 declaration path: primes isPrime free variables: <none> source breakpoint 5: - source span: Example.hs:26:52-65 + source span: Example.hs:35:52-65 declaration path: primes isPrime free variables: n source breakpoint 6: - source span: Example.hs:26:41-73 + source span: Example.hs:35:41-73 declaration path: primes isPrime free variables: n source breakpoint 7: - source span: Example.hs:26:22-74 + source span: Example.hs:35:22-74 declaration path: primes isPrime free variables: n source breakpoint 8: - source span: Example.hs:26:17-75 + source span: Example.hs:35:17-75 declaration path: primes isPrime free variables: n source breakpoint 9: - source span: Example.hs:23:14-34 + source span: Example.hs:32:14-34 declaration path: primes free variables: isPrime source breakpoint 10: - source span: Example.hs:23:10-34 + source span: Example.hs:32:10-34 declaration path: primes free variables: isPrime source breakpoint 11: - source span: Example.hs:29:13-25 + source span: Example.hs:38:13-25 declaration path: primesPtr free variables: <none> source breakpoint 12: - source span: Example.hs:14:30-70 + source span: Example.hs:23:30-70 declaration path: fibonaccis positiveFibonaccis free variables: positiveFibonaccis source breakpoint 13: - source span: Example.hs:14:26-70 + source span: Example.hs:23:26-70 declaration path: fibonaccis positiveFibonaccis free variables: positiveFibonaccis source breakpoint 14: - source span: Example.hs:11:14-35 + source span: Example.hs:20:14-35 declaration path: fibonaccis free variables: positiveFibonaccis source breakpoint 15: - source span: Example.hs:17:17-33 + source span: Example.hs:26:17-33 declaration path: fibonaccisPtr free variables: <none> bytecode breakpoints: ===================================== testsuite/tests/show-bytecode/show-bytecode-breakpoints.stdout-javascript-unknown-ghcjs ===================================== @@ -0,0 +1,832 @@ +[1 of 1] Compiling Example ( Example.hs, Example.gbc ) +module: Example +hash: @hash@ +objects: + object ‘primesPtr’: + arity: 0 + literals: + top-level string "Example" + top-level string "main" + cost center of breakpoint 0 + used items: + break array of module ‘Example’ + named item ‘static_ptr1’ + named item ‘$dTypeable2_@name_suffix@’ + named item ‘$fIsStaticStaticPtr’ + static-construction object ‘static_ptr1’: + data constructor: StaticPtr + lifted: yes + literals: + word @large_word@ + used items: + named item ‘static_ptr1_sat_@name_suffix@’ + named item ‘primes’ + static-construction object ‘static_ptr1_sat_@name_suffix@’: + data constructor: StaticPtrInfo + lifted: yes + literals: <none> + used items: + named item ‘static_ptr1_sat_@name_suffix@’ + object ‘static_ptr1_sat_@name_suffix@’: + arity: 0 + literals: top-level string "main" + used items: + object ‘static_ptr1_sat_@name_suffix@’: + arity: 0 + literals: <none> + used items: named item ‘unpackCString#’ + object ‘static_ptr1_sat_@name_suffix@’: + arity: 0 + literals: top-level string "Example" + used items: + object ‘static_ptr1_sat_@name_suffix@’: + arity: 0 + literals: <none> + used items: named item ‘unpackCString#’ + static-construction object ‘static_ptr1_sat_@name_suffix@’: + data constructor: (,) + lifted: yes + literals: <none> + used items: + named item ‘static_ptr1_sat_@name_suffix@’ + static-construction object ‘static_ptr1_sat_@name_suffix@’: + data constructor: I# + lifted: yes + literals: word @large_word@ + used items: <none> + static-construction object ‘static_ptr1_sat_@name_suffix@’: + data constructor: I# + lifted: yes + literals: word @large_word@ + used items: <none> + object ‘primes’: + arity: 0 + literals: + top-level string "Example" + top-level string "main" + cost center of breakpoint 2 + info table of ‘(:)’ + used items: + break array of module ‘Example’ + object ‘primes_sat_@name_suffix@’: + arity: 0 + literals: + top-level string "Example" + top-level string "main" + cost center of breakpoint 1 + used items: + break array of module ‘Example’ + object ‘primes_sat_@name_suffix@’: + arity: 0 + literals: <none> + used items: + object ‘primes_sat_@name_suffix@’: + arity: 0 + literals: + word 3 + info table of ‘IS’ + used items: + named item ‘$fNumNatural’ + named item ‘fromInteger’ + named item ‘$fEnumNatural’ + named item ‘enumFrom’ + named item ‘isPrime_@name_suffix@’ + named item ‘filter’ + object ‘primes_sat_@name_suffix@’: + arity: 0 + literals: + word 2 + info table of ‘IS’ + used items: + named item ‘$fNumNatural’ + named item ‘fromInteger’ + object ‘isPrime_@name_suffix@’: + arity: 1 + literals: + top-level string "Example" + top-level string "main" + cost center of breakpoint 9 + used items: + break array of module ‘Example’ + object ‘isPrime_sat_@name_suffix@’: + arity: 1 + literals: + top-level string "Example" + top-level string "main" + cost center of breakpoint 8 + used items: + break array of module ‘Example’ + object ‘isPrime_sat_@name_suffix@’: + arity: 1 + literals: + top-level string "Example" + top-level string "main" + cost center of breakpoint 7 + used items: + break array of module ‘Example’ + object ‘isPrime_sat_@name_suffix@’: + arity: 1 + literals: + top-level string "Example" + top-level string "main" + cost center of breakpoint 6 + used items: + break array of module ‘Example’ + object ‘isPrime_sat_@name_suffix@’: + arity: 0 + literals: + top-level string "Example" + top-level string "main" + cost center of breakpoint 5 + word 2 + info table of ‘IS’ + used items: + break array of module ‘Example’ + object ‘v_@name_suffix@’: + arity: 0 + literals: <none> + used items: + named item ‘$fIntegralInteger’ + named item ‘$fNumNatural’ + named item ‘(^)’ + object ‘pap_@name_suffix@’: + arity: 3 + literals: <none> + used items: <none> + object ‘isPrime_sat_@name_suffix@’: + arity: 1 + literals: + top-level string "Example" + top-level string "main" + cost center of breakpoint 4 + used items: + break array of module ‘Example’ + object ‘v_@name_suffix@’: + arity: 0 + literals: <none> + used items: + named item ‘$fOrdNatural’ + named item ‘(<=)’ + object ‘pap_@name_suffix@’: + arity: 3 + literals: <none> + used items: <none> + named item ‘(.)’ + named item ‘primes’ + named item ‘takeWhile’ + object ‘isPrime_sat_@name_suffix@’: + arity: 1 + literals: + top-level string "Example" + top-level string "main" + cost center of breakpoint 3 + used items: + break array of module ‘Example’ + object ‘pap_@name_suffix@’: + arity: 2 + literals: <none> + used items: + named item ‘$fIntegralNatural’ + named item ‘divides’ + named item ‘$fFoldableList’ + named item ‘any’ + named item ‘not’ + object ‘fibonaccisPtr’: + arity: 0 + literals: + top-level string "Example" + top-level string "main" + cost center of breakpoint 10 + used items: + break array of module ‘Example’ + named item ‘static_ptr’ + named item ‘$dTypeable2_@name_suffix@’ + named item ‘$fIsStaticStaticPtr’ + static-construction object ‘static_ptr’: + data constructor: StaticPtr + lifted: yes + literals: + word @large_word@ + used items: + named item ‘static_ptr_sat_@name_suffix@’ + named item ‘fibonaccis’ + static-construction object ‘static_ptr_sat_@name_suffix@’: + data constructor: StaticPtrInfo + lifted: yes + literals: <none> + used items: + named item ‘static_ptr_sat_@name_suffix@’ + object ‘static_ptr_sat_@name_suffix@’: + arity: 0 + literals: top-level string "main" + used items: + object ‘static_ptr_sat_@name_suffix@’: + arity: 0 + literals: <none> + used items: named item ‘unpackCString#’ + object ‘static_ptr_sat_@name_suffix@’: + arity: 0 + literals: top-level string "Example" + used items: + object ‘static_ptr_sat_@name_suffix@’: + arity: 0 + literals: <none> + used items: named item ‘unpackCString#’ + static-construction object ‘static_ptr_sat_@name_suffix@’: + data constructor: (,) + lifted: yes + literals: <none> + used items: + named item ‘static_ptr_sat_@name_suffix@’ + static-construction object ‘static_ptr_sat_@name_suffix@’: + data constructor: I# + lifted: yes + literals: word @large_word@ + used items: <none> + static-construction object ‘static_ptr_sat_@name_suffix@’: + data constructor: I# + lifted: yes + literals: word @large_word@ + used items: <none> + object ‘fibonaccis’: + arity: 0 + literals: + top-level string "Example" + top-level string "main" + cost center of breakpoint 11 + info table of ‘(:)’ + used items: + break array of module ‘Example’ + object ‘fibonaccis_sat_@name_suffix@’: + arity: 0 + literals: + word 0 + info table of ‘IS’ + used items: + named item ‘$fNumNatural’ + named item ‘fromInteger’ + named item ‘positiveFibonaccis_@name_suffix@’ + object ‘positiveFibonaccis_@name_suffix@’: + arity: 0 + literals: + top-level string "Example" + top-level string "main" + cost center of breakpoint 13 + info table of ‘(:)’ + used items: + break array of module ‘Example’ + object ‘positiveFibonaccis_sat_@name_suffix@’: + arity: 0 + literals: + top-level string "Example" + top-level string "main" + cost center of breakpoint 12 + used items: + break array of module ‘Example’ + object ‘positiveFibonaccis_sat_@name_suffix@’: + arity: 0 + literals: <none> + used items: + named item ‘$fNumNatural’ + named item ‘(+)’ + named item ‘positiveFibonaccis_@name_suffix@’ + named item ‘fibonaccis’ + named item ‘zipWith’ + object ‘positiveFibonaccis_sat_@name_suffix@’: + arity: 0 + literals: + word 1 + info table of ‘IS’ + used items: + named item ‘$fNumNatural’ + named item ‘fromInteger’ + object ‘$dTypeable2_@name_suffix@’: + arity: 0 + literals: <none> + used items: + named item ‘$dTypeable_@name_suffix@’ + named item ‘$dTypeable1_@name_suffix@’ + named item ‘mkTrAppChecked’ + object ‘$dTypeable1_@name_suffix@’: + arity: 0 + literals: info table of ‘[]’ + used items: + named item ‘$tcList’ + named item ‘mkTrCon’ + object ‘$dTypeable_@name_suffix@’: + arity: 0 + literals: info table of ‘[]’ + used items: + named item ‘$tcNatural’ + named item ‘mkTrCon’ + object ‘cstrlen’: + arity: 2 + literals: <none> + used items: + object ‘ds1_@name_suffix@’: + used items: named item ‘cstrlen1_@name_suffix@’ + object ‘cstrlen1_@name_suffix@’: + arity: 2 + literals: <none> + arity: 0 + literals: + label ‘strlen’ + word 0 + foreign function of type ‘Pointer -> UInt@word_size@’ + used items: + object ‘wild_@name_suffix@’: + arity: 0 + literals: info table of ‘W@word_size@#’ + used items: <none> + static-construction object ‘$tc'Nested’: + data constructor: TyCon + lifted: yes + literals: + word @large_word@ + word 1 + used items: + named item ‘$trModule’ + named item ‘$tc'Nested2_@name_suffix@’ + named item ‘$krep17_@name_suffix@’ + static-construction object ‘$tc'Nested2_@name_suffix@’: + data constructor: TrNameS + lifted: yes + literals: address ‘$tc'Nested1_@name_suffix@’ + used items: <none> + static-construction object ‘$krep17_@name_suffix@’: + data constructor: KindRepFun + lifted: yes + literals: <none> + used items: + named item ‘$krep16_@name_suffix@’ + named item ‘$krep13_@name_suffix@’ + static-construction object ‘$krep16_@name_suffix@’: + data constructor: KindRepTyConApp + lifted: yes + literals: <none> + used items: + named item ‘$tcPerfectTree’ + named item ‘$krep15_@name_suffix@’ + static-construction object ‘$krep15_@name_suffix@’: + data constructor: (:) + lifted: yes + literals: <none> + used items: + named item ‘$krep4_@name_suffix@’ + named item ‘[]’ + static-construction object ‘$tc'PerfectTree’: + data constructor: TyCon + lifted: yes + literals: + word @large_word@ + word 1 + used items: + named item ‘$trModule’ + named item ‘$tc'PerfectTree2_@name_suffix@’ + named item ‘$krep14_@name_suffix@’ + static-construction object ‘$tc'PerfectTree2_@name_suffix@’: + data constructor: TrNameS + lifted: yes + literals: address ‘$tc'PerfectTree1_@name_suffix@’ + used items: <none> + static-construction object ‘$krep14_@name_suffix@’: + data constructor: KindRepFun + lifted: yes + literals: <none> + used items: + named item ‘$krep1_@name_suffix@’ + named item ‘$krep13_@name_suffix@’ + static-construction object ‘$krep13_@name_suffix@’: + data constructor: KindRepTyConApp + lifted: yes + literals: <none> + used items: + named item ‘$tcPerfectTree’ + named item ‘$krep12_@name_suffix@’ + static-construction object ‘$krep12_@name_suffix@’: + data constructor: (:) + lifted: yes + literals: <none> + used items: + named item ‘$krep1_@name_suffix@’ + named item ‘[]’ + static-construction object ‘$tcPerfectTree’: + data constructor: TyCon + lifted: yes + literals: + word @large_word@ + word 0 + used items: + named item ‘$trModule’ + named item ‘$tcPerfectTree2_@name_suffix@’ + named item ‘krep$*Arr*’ + static-construction object ‘$tcPerfectTree2_@name_suffix@’: + data constructor: TrNameS + lifted: yes + literals: address ‘$tcPerfectTree1_@name_suffix@’ + used items: <none> + static-construction object ‘$tc'Node’: + data constructor: TyCon + lifted: yes + literals: + word @large_word@ + word 2 + used items: + named item ‘$trModule’ + named item ‘$tc'Node2_@name_suffix@’ + named item ‘$krep11_@name_suffix@’ + static-construction object ‘$tc'Node2_@name_suffix@’: + data constructor: TrNameS + lifted: yes + literals: address ‘$tc'Node1_@name_suffix@’ + used items: <none> + static-construction object ‘$krep11_@name_suffix@’: + data constructor: KindRepFun + lifted: yes + literals: <none> + used items: + named item ‘$krep7_@name_suffix@’ + named item ‘$krep10_@name_suffix@’ + static-construction object ‘$krep10_@name_suffix@’: + data constructor: KindRepFun + lifted: yes + literals: <none> + used items: + named item ‘$krep_@name_suffix@’ + named item ‘$krep9_@name_suffix@’ + static-construction object ‘$krep9_@name_suffix@’: + data constructor: KindRepFun + lifted: yes + literals: <none> + used items: + named item ‘$krep7_@name_suffix@’ + static-construction object ‘$tc'Leaf’: + data constructor: TyCon + lifted: yes + literals: + word @large_word@ + word 2 + used items: + named item ‘$trModule’ + named item ‘$tc'Leaf2_@name_suffix@’ + named item ‘$krep8_@name_suffix@’ + static-construction object ‘$tc'Leaf2_@name_suffix@’: + data constructor: TrNameS + lifted: yes + literals: address ‘$tc'Leaf1_@name_suffix@’ + used items: <none> + static-construction object ‘$krep8_@name_suffix@’: + data constructor: KindRepFun + lifted: yes + literals: <none> + used items: + named item ‘$krep1_@name_suffix@’ + named item ‘$krep7_@name_suffix@’ + static-construction object ‘$krep7_@name_suffix@’: + data constructor: KindRepTyConApp + lifted: yes + literals: <none> + used items: + named item ‘$tcBinTree’ + named item ‘$krep6_@name_suffix@’ + static-construction object ‘$krep6_@name_suffix@’: + data constructor: (:) + lifted: yes + literals: <none> + used items: + named item ‘$krep1_@name_suffix@’ + named item ‘$krep5_@name_suffix@’ + static-construction object ‘$krep5_@name_suffix@’: + data constructor: (:) + lifted: yes + literals: <none> + used items: + named item ‘$krep_@name_suffix@’ + named item ‘[]’ + static-construction object ‘$tcBinTree’: + data constructor: TyCon + lifted: yes + literals: + word @large_word@ + word 0 + used items: + named item ‘$trModule’ + named item ‘$tcBinTree2_@name_suffix@’ + named item ‘krep$*->*->*’ + static-construction object ‘$tcBinTree2_@name_suffix@’: + data constructor: TrNameS + lifted: yes + literals: address ‘$tcBinTree1_@name_suffix@’ + used items: <none> + static-construction object ‘$krep4_@name_suffix@’: + data constructor: KindRepTyConApp + lifted: yes + literals: <none> + used items: + named item ‘$tcTuple2’ + named item ‘$krep3_@name_suffix@’ + static-construction object ‘$krep3_@name_suffix@’: + data constructor: (:) + lifted: yes + literals: <none> + used items: + named item ‘$krep1_@name_suffix@’ + named item ‘$krep2_@name_suffix@’ + static-construction object ‘$krep2_@name_suffix@’: + data constructor: (:) + lifted: yes + literals: <none> + used items: + named item ‘$krep1_@name_suffix@’ + named item ‘[]’ + static-construction object ‘$krep1_@name_suffix@’: + data constructor: KindRepVar + lifted: yes + literals: word 0 + used items: <none> + static-construction object ‘$krep_@name_suffix@’: + data constructor: KindRepVar + lifted: yes + literals: word 1 + used items: <none> + static-construction object ‘$trModule’: + data constructor: Module + lifted: yes + literals: <none> + used items: + named item ‘$trModule2_@name_suffix@’ + named item ‘$trModule4_@name_suffix@’ + static-construction object ‘$trModule4_@name_suffix@’: + data constructor: TrNameS + lifted: yes + literals: address ‘$trModule3_@name_suffix@’ + used items: <none> + static-construction object ‘$trModule2_@name_suffix@’: + data constructor: TrNameS + lifted: yes + literals: address ‘$trModule1_@name_suffix@’ + used items: <none> + object ‘divides’: + arity: 3 + literals: <none> + used items: + object ‘$dReal_@name_suffix@’: + arity: 0 + literals: <none> + used items: + object ‘$dNum_@name_suffix@’: + arity: 0 + literals: <none> + used items: + object ‘$dEq_@name_suffix@’: + arity: 0 + literals: <none> + used items: + object ‘$dEq1_@name_suffix@’: + arity: 0 + literals: <none> + used items: + object ‘bcprep_@name_suffix@’: + arity: 5 + literals: + top-level string "Example" + top-level string "main" + cost center of breakpoint 15 + used items: + break array of module ‘Example’ + object ‘divides_sat_@name_suffix@’: + arity: 1 + literals: + word 0 + info table of ‘IS’ + used items: named item ‘fromInteger’ + object ‘divides_sat_@name_suffix@’: + arity: 3 + literals: + top-level string "Example" + top-level string "main" + cost center of breakpoint 14 + used items: + break array of module ‘Example’ + named item ‘mod’ + named item ‘(==)’ + named item ‘$p1Ord’ + named item ‘$p2Real’ + named item ‘$p1Real’ + named item ‘$p1Integral’ + object ‘Node’: + arity: 3 + literals: info table of ‘Node’ + used items: <none> + object ‘Leaf’: + arity: 1 + literals: info table of ‘Leaf’ + used items: <none> + object ‘Nested’: + arity: 1 + literals: info table of ‘Nested’ + used items: <none> + object ‘PerfectTree’: + arity: 1 + literals: info table of ‘PerfectTree’ + used items: <none> +data constructor info tables: + info table of ‘PerfectTree’: + number of words for pointers: 1 + number of words for non-pointers: 0 + info table of ‘Nested’: + number of words for pointers: 1 + number of words for non-pointers: 0 + info table of ‘Leaf’: + number of words for pointers: 1 + number of words for non-pointers: 0 + info table of ‘Node’: + number of words for pointers: 3 + number of words for non-pointers: 0 +top-level strings: + $tc'Nested1_@name_suffix@: "'Nested" + $tc'PerfectTree1_@name_suffix@: "'PerfectTree" + $tcPerfectTree1_@name_suffix@: "PerfectTree" + $tc'Node1_@name_suffix@: "'Node" + $tc'Leaf1_@name_suffix@: "'Leaf" + $tcBinTree1_@name_suffix@: "BinTree" + $trModule3_@name_suffix@: "Example" + $trModule1_@name_suffix@: "main" +breakpoints: + source breakpoints: + source breakpoint 0: + source span: Example.hs:29:17-25 + declaration path: divides + free variables: + k + n + source breakpoint 1: + source span: Example.hs:29:17-30 + declaration path: divides + free variables: + k + n + source breakpoint 2: + source span: Example.hs:35:27-37 + declaration path: + primes + isPrime + free variables: n + source breakpoint 3: + source span: Example.hs:35:53-56 + declaration path: + primes + isPrime + free variables: n + source breakpoint 4: + source span: Example.hs:35:62-64 + declaration path: + primes + isPrime + free variables: <none> + source breakpoint 5: + source span: Example.hs:35:52-65 + declaration path: + primes + isPrime + free variables: n + source breakpoint 6: + source span: Example.hs:35:41-73 + declaration path: + primes + isPrime + free variables: n + source breakpoint 7: + source span: Example.hs:35:22-74 + declaration path: + primes + isPrime + free variables: n + source breakpoint 8: + source span: Example.hs:35:17-75 + declaration path: + primes + isPrime + free variables: n + source breakpoint 9: + source span: Example.hs:32:14-34 + declaration path: primes + free variables: isPrime + source breakpoint 10: + source span: Example.hs:32:10-34 + declaration path: primes + free variables: isPrime + source breakpoint 11: + source span: Example.hs:38:13-25 + declaration path: primesPtr + free variables: <none> + source breakpoint 12: + source span: Example.hs:23:30-70 + declaration path: + fibonaccis + positiveFibonaccis + free variables: positiveFibonaccis + source breakpoint 13: + source span: Example.hs:23:26-70 + declaration path: + fibonaccis + positiveFibonaccis + free variables: positiveFibonaccis + source breakpoint 14: + source span: Example.hs:20:14-35 + declaration path: fibonaccis + free variables: positiveFibonaccis + source breakpoint 15: + source span: Example.hs:26:17-33 + declaration path: fibonaccisPtr + free variables: <none> + bytecode breakpoints: + bytecode breakpoint 0: + type: StaticPtr [Natural] + type variables: <none> + variables: <none> + corresponding source breakpoint: 11 + bytecode breakpoint 1: + type: [Natural] + type variables: <none> + variables: <unknown> + corresponding source breakpoint: 9 + bytecode breakpoint 2: + type: [Natural] + type variables: <none> + variables: <unknown> + corresponding source breakpoint: 10 + bytecode breakpoint 3: + type: Natural -> Bool + type variables: <none> + variables: %'Many n :: Natural + corresponding source breakpoint: 2 + bytecode breakpoint 4: + type: Natural -> Bool + type variables: <none> + variables: %'Many n :: Natural + corresponding source breakpoint: 3 + bytecode breakpoint 5: + type: Natural -> Natural + type variables: <none> + variables: <none> + corresponding source breakpoint: 4 + bytecode breakpoint 6: + type: Natural -> Bool + type variables: <none> + variables: %'Many n :: Natural + corresponding source breakpoint: 5 + bytecode breakpoint 7: + type: [Natural] + type variables: <none> + variables: %'Many n :: Natural + corresponding source breakpoint: 6 + bytecode breakpoint 8: + type: Bool + type variables: <none> + variables: %'Many n :: Natural + corresponding source breakpoint: 7 + bytecode breakpoint 9: + type: Bool + type variables: <none> + variables: %'Many n :: Natural + corresponding source breakpoint: 8 + bytecode breakpoint 10: + type: StaticPtr [Natural] + type variables: <none> + variables: <none> + corresponding source breakpoint: 15 + bytecode breakpoint 11: + type: [Natural] + type variables: <none> + variables: <unknown> + corresponding source breakpoint: 14 + bytecode breakpoint 12: + type: [Natural] + type variables: <none> + variables: <unknown> + corresponding source breakpoint: 12 + bytecode breakpoint 13: + type: [Natural] + type variables: <none> + variables: <unknown> + corresponding source breakpoint: 13 + bytecode breakpoint 14: + type: a + type variables: a :: * + variables: + %'Many eta :: a + %'Many eta1 :: a + corresponding source breakpoint: 0 + bytecode breakpoint 15: + type: Bool + type variables: a :: * + variables: + %'Many eta :: a + %'Many eta1 :: a + corresponding source breakpoint: 1 +static-pointer table entries: + @hash@: static_ptr + @hash@: static_ptr1 +HPC information: <none> + ===================================== testsuite/tests/show-bytecode/show-bytecode-hpc.stdout ===================================== @@ -6,7 +6,6 @@ objects: arity: 0 literals: label ‘_hpc_tickboxes_Example_hpc’ - label ‘_hpc_tickboxes_Example_hpc’ used items: named item ‘static_ptr1’ named item ‘$dTypeable2_@name_suffix@’ @@ -16,18 +15,14 @@ objects: lifted: yes literals: word @large_word@ - word @large_word@ used items: named item ‘static_ptr1_sat_@name_suffix@’ - named item ‘static_ptr1_sat_@name_suffix@’ static-construction object ‘static_ptr1_sat_@name_suffix@’: data constructor: StaticPtrInfo lifted: yes literals: <none> used items: named item ‘static_ptr1_sat_@name_suffix@’ - named item ‘static_ptr1_sat_@name_suffix@’ - named item ‘static_ptr1_sat_@name_suffix@’ object ‘static_ptr1_sat_@name_suffix@’: arity: 0 literals: top-level string "main" @@ -50,16 +45,15 @@ objects: literals: <none> used items: named item ‘static_ptr1_sat_@name_suffix@’ - named item ‘static_ptr1_sat_@name_suffix@’ static-construction object ‘static_ptr1_sat_@name_suffix@’: data constructor: I# lifted: yes - literals: word 29 + literals: word @large_word@ used items: <none> static-construction object ‘static_ptr1_sat_@name_suffix@’: data constructor: I# lifted: yes - literals: word 20 + literals: word @large_word@ used items: <none> object ‘static_ptr1_sat_@name_suffix@’: arity: 0 @@ -93,7 +87,6 @@ objects: arity: 1 literals: label ‘_hpc_tickboxes_Example_hpc’ - label ‘_hpc_tickboxes_Example_hpc’ used items: object ‘isPrime_sat_@name_suffix@’: arity: 1 @@ -181,7 +174,6 @@ objects: object ‘primes’: arity: 0 literals: - label ‘_hpc_tickboxes_Example_hpc’ label ‘_hpc_tickboxes_Example_hpc’ info table of ‘(:)’ used items: @@ -200,7 +192,6 @@ objects: arity: 0 literals: label ‘_hpc_tickboxes_Example_hpc’ - label ‘_hpc_tickboxes_Example_hpc’ used items: named item ‘static_ptr’ named item ‘$dTypeable2_@name_suffix@’ @@ -210,18 +201,14 @@ objects: lifted: yes literals: word @large_word@ - word @large_word@ used items: named item ‘static_ptr_sat_@name_suffix@’ - named item ‘static_ptr_sat_@name_suffix@’ static-construction object ‘static_ptr_sat_@name_suffix@’: data constructor: StaticPtrInfo lifted: yes literals: <none> used items: named item ‘static_ptr_sat_@name_suffix@’ - named item ‘static_ptr_sat_@name_suffix@’ - named item ‘static_ptr_sat_@name_suffix@’ object ‘static_ptr_sat_@name_suffix@’: arity: 0 literals: top-level string "main" @@ -244,16 +231,15 @@ objects: literals: <none> used items: named item ‘static_ptr_sat_@name_suffix@’ - named item ‘static_ptr_sat_@name_suffix@’ static-construction object ‘static_ptr_sat_@name_suffix@’: data constructor: I# lifted: yes - literals: word 17 + literals: word @large_word@ used items: <none> static-construction object ‘static_ptr_sat_@name_suffix@’: data constructor: I# lifted: yes - literals: word 24 + literals: word @large_word@ used items: <none> object ‘static_ptr_sat_@name_suffix@’: arity: 0 @@ -262,7 +248,6 @@ objects: object ‘positiveFibonaccis1_@name_suffix@’: arity: 0 literals: - label ‘_hpc_tickboxes_Example_hpc’ label ‘_hpc_tickboxes_Example_hpc’ info table of ‘(:)’ used items: @@ -290,7 +275,6 @@ objects: object ‘fibonaccis’: arity: 0 literals: - label ‘_hpc_tickboxes_Example_hpc’ label ‘_hpc_tickboxes_Example_hpc’ info table of ‘(:)’ used items: @@ -346,17 +330,16 @@ objects: literals: label ‘strlen’ word 0 - foreign function of type ‘Pointer -> UInt64’ + foreign function of type ‘Pointer -> UInt@word_size@’ used items: object ‘wild_@name_suffix@’: arity: 0 - literals: info table of ‘W64#’ + literals: info table of ‘W@word_size@#’ used items: <none> static-construction object ‘$tc'Nested’: data constructor: TyCon lifted: yes literals: - word @large_word@ word @large_word@ word 1 used items: @@ -393,7 +376,6 @@ objects: data constructor: TyCon lifted: yes literals: - word @large_word@ word @large_word@ word 1 used items: @@ -430,7 +412,6 @@ objects: data constructor: TyCon lifted: yes literals: - word @large_word@ word @large_word@ word 0 used items: @@ -446,7 +427,6 @@ objects: data constructor: TyCon lifted: yes literals: - word @large_word@ word @large_word@ word 2 used items: @@ -478,12 +458,10 @@ objects: literals: <none> used items: named item ‘$krep7_@name_suffix@’ - named item ‘$krep7_@name_suffix@’ static-construction object ‘$tc'Leaf’: data constructor: TyCon lifted: yes literals: - word @large_word@ word @large_word@ word 2 used items: @@ -527,7 +505,6 @@ objects: data constructor: TyCon lifted: yes literals: - word @large_word@ word @large_word@ word 0 used items: @@ -595,7 +572,6 @@ objects: arity: 0 literals: label ‘_hpc_tickboxes_Example_hpc’ - label ‘_hpc_tickboxes_Example_hpc’ used items: object ‘divides_sat_@name_suffix@’: arity: 1 ===================================== testsuite/tests/show-bytecode/show-bytecode-hpc.stdout-javascript-unknown-ghcjs ===================================== @@ -0,0 +1,662 @@ +[1 of 1] Compiling Example ( Example.hs, Example.gbc ) +module: Example +hash: @hash@ +objects: + object ‘primesPtr’: + arity: 0 + literals: + label ‘_hpc_tickboxes_Example_hpc’ + used items: + named item ‘static_ptr1’ + named item ‘$dTypeable2_@name_suffix@’ + named item ‘$fIsStaticStaticPtr’ + static-construction object ‘static_ptr1’: + data constructor: StaticPtr + lifted: yes + literals: + word @large_word@ + used items: + named item ‘static_ptr1_sat_@name_suffix@’ + static-construction object ‘static_ptr1_sat_@name_suffix@’: + data constructor: StaticPtrInfo + lifted: yes + literals: <none> + used items: + named item ‘static_ptr1_sat_@name_suffix@’ + object ‘static_ptr1_sat_@name_suffix@’: + arity: 0 + literals: top-level string "main" + used items: + object ‘static_ptr1_sat_@name_suffix@’: + arity: 0 + literals: <none> + used items: named item ‘unpackCString#’ + object ‘static_ptr1_sat_@name_suffix@’: + arity: 0 + literals: top-level string "Example" + used items: + object ‘static_ptr1_sat_@name_suffix@’: + arity: 0 + literals: <none> + used items: named item ‘unpackCString#’ + static-construction object ‘static_ptr1_sat_@name_suffix@’: + data constructor: (,) + lifted: yes + literals: <none> + used items: + named item ‘static_ptr1_sat_@name_suffix@’ + static-construction object ‘static_ptr1_sat_@name_suffix@’: + data constructor: I# + lifted: yes + literals: word @large_word@ + used items: <none> + static-construction object ‘static_ptr1_sat_@name_suffix@’: + data constructor: I# + lifted: yes + literals: word @large_word@ + used items: <none> + object ‘static_ptr1_sat_@name_suffix@’: + arity: 0 + literals: label ‘_hpc_tickboxes_Example_hpc’ + used items: named item ‘primes’ + object ‘primes2_@name_suffix@’: + arity: 0 + literals: label ‘_hpc_tickboxes_Example_hpc’ + used items: + object ‘primes2_sat_@name_suffix@’: + arity: 0 + literals: label ‘_hpc_tickboxes_Example_hpc’ + used items: + object ‘primes2_sat_@name_suffix@’: + arity: 0 + literals: + label ‘_hpc_tickboxes_Example_hpc’ + word 3 + info table of ‘IS’ + used items: + named item ‘$fNumNatural’ + named item ‘fromInteger’ + named item ‘$fEnumNatural’ + named item ‘enumFrom’ + object ‘primes2_sat_@name_suffix@’: + arity: 0 + literals: label ‘_hpc_tickboxes_Example_hpc’ + used items: named item ‘isPrime_@name_suffix@’ + named item ‘filter’ + object ‘isPrime_@name_suffix@’: + arity: 1 + literals: + label ‘_hpc_tickboxes_Example_hpc’ + used items: + object ‘isPrime_sat_@name_suffix@’: + arity: 1 + literals: label ‘_hpc_tickboxes_Example_hpc’ + used items: + object ‘isPrime_sat_@name_suffix@’: + arity: 1 + literals: label ‘_hpc_tickboxes_Example_hpc’ + used items: + object ‘isPrime_sat_@name_suffix@’: + arity: 0 + literals: label ‘_hpc_tickboxes_Example_hpc’ + used items: named item ‘primes’ + object ‘isPrime_sat_@name_suffix@’: + arity: 1 + literals: label ‘_hpc_tickboxes_Example_hpc’ + used items: + object ‘isPrime_sat_@name_suffix@’: + arity: 0 + literals: label ‘_hpc_tickboxes_Example_hpc’ + used items: + object ‘v_@name_suffix@’: + arity: 0 + literals: label ‘_hpc_tickboxes_Example_hpc’ + used items: + named item ‘$fIntegralInteger’ + named item ‘$fNumNatural’ + named item ‘(^)’ + object ‘v1_@name_suffix@’: + arity: 0 + literals: + label ‘_hpc_tickboxes_Example_hpc’ + word 2 + info table of ‘IS’ + used items: <none> + object ‘pap_@name_suffix@’: + arity: 3 + literals: <none> + used items: <none> + object ‘isPrime_sat_@name_suffix@’: + arity: 1 + literals: label ‘_hpc_tickboxes_Example_hpc’ + used items: + object ‘v_@name_suffix@’: + arity: 0 + literals: label ‘_hpc_tickboxes_Example_hpc’ + used items: + named item ‘$fOrdNatural’ + named item ‘(<=)’ + object ‘v1_@name_suffix@’: + arity: 1 + literals: label ‘_hpc_tickboxes_Example_hpc’ + used items: <none> + object ‘pap_@name_suffix@’: + arity: 3 + literals: <none> + used items: <none> + named item ‘(.)’ + named item ‘takeWhile’ + object ‘isPrime_sat_@name_suffix@’: + arity: 1 + literals: label ‘_hpc_tickboxes_Example_hpc’ + used items: + object ‘v_@name_suffix@’: + arity: 0 + literals: label ‘_hpc_tickboxes_Example_hpc’ + used items: + object ‘pap_@name_suffix@’: + arity: 2 + literals: <none> + used items: + named item ‘$fIntegralNatural’ + named item ‘divides’ + object ‘v1_@name_suffix@’: + arity: 1 + literals: label ‘_hpc_tickboxes_Example_hpc’ + used items: <none> + object ‘pap_@name_suffix@’: + arity: 3 + literals: <none> + used items: <none> + named item ‘$fFoldableList’ + named item ‘any’ + named item ‘not’ + object ‘primes’: + arity: 0 + literals: + label ‘_hpc_tickboxes_Example_hpc’ + info table of ‘(:)’ + used items: + named item ‘primes2_@name_suffix@’ + named item ‘primes1_@name_suffix@’ + object ‘primes1_@name_suffix@’: + arity: 0 + literals: + label ‘_hpc_tickboxes_Example_hpc’ + word 2 + info table of ‘IS’ + used items: + named item ‘$fNumNatural’ + named item ‘fromInteger’ + object ‘fibonaccisPtr’: + arity: 0 + literals: + label ‘_hpc_tickboxes_Example_hpc’ + used items: + named item ‘static_ptr’ + named item ‘$dTypeable2_@name_suffix@’ + named item ‘$fIsStaticStaticPtr’ + static-construction object ‘static_ptr’: + data constructor: StaticPtr + lifted: yes + literals: + word @large_word@ + used items: + named item ‘static_ptr_sat_@name_suffix@’ + static-construction object ‘static_ptr_sat_@name_suffix@’: + data constructor: StaticPtrInfo + lifted: yes + literals: <none> + used items: + named item ‘static_ptr_sat_@name_suffix@’ + object ‘static_ptr_sat_@name_suffix@’: + arity: 0 + literals: top-level string "main" + used items: + object ‘static_ptr_sat_@name_suffix@’: + arity: 0 + literals: <none> + used items: named item ‘unpackCString#’ + object ‘static_ptr_sat_@name_suffix@’: + arity: 0 + literals: top-level string "Example" + used items: + object ‘static_ptr_sat_@name_suffix@’: + arity: 0 + literals: <none> + used items: named item ‘unpackCString#’ + static-construction object ‘static_ptr_sat_@name_suffix@’: + data constructor: (,) + lifted: yes + literals: <none> + used items: + named item ‘static_ptr_sat_@name_suffix@’ + static-construction object ‘static_ptr_sat_@name_suffix@’: + data constructor: I# + lifted: yes + literals: word @large_word@ + used items: <none> + static-construction object ‘static_ptr_sat_@name_suffix@’: + data constructor: I# + lifted: yes + literals: word @large_word@ + used items: <none> + object ‘static_ptr_sat_@name_suffix@’: + arity: 0 + literals: label ‘_hpc_tickboxes_Example_hpc’ + used items: named item ‘fibonaccis’ + object ‘positiveFibonaccis1_@name_suffix@’: + arity: 0 + literals: + label ‘_hpc_tickboxes_Example_hpc’ + info table of ‘(:)’ + used items: + named item ‘positiveFibonaccis2_@name_suffix@’ + named item ‘positiveFibonaccis_@name_suffix@’ + object ‘positiveFibonaccis2_@name_suffix@’: + arity: 0 + literals: label ‘_hpc_tickboxes_Example_hpc’ + used items: + object ‘positiveFibonaccis2_sat_@name_suffix@’: + arity: 0 + literals: label ‘_hpc_tickboxes_Example_hpc’ + used items: named item ‘positiveFibonaccis1_@name_suffix@’ + object ‘positiveFibonaccis2_sat_@name_suffix@’: + arity: 0 + literals: label ‘_hpc_tickboxes_Example_hpc’ + used items: named item ‘fibonaccis’ + object ‘positiveFibonaccis2_sat_@name_suffix@’: + arity: 0 + literals: label ‘_hpc_tickboxes_Example_hpc’ + used items: + named item ‘$fNumNatural’ + named item ‘(+)’ + named item ‘zipWith’ + object ‘fibonaccis’: + arity: 0 + literals: + label ‘_hpc_tickboxes_Example_hpc’ + info table of ‘(:)’ + used items: + named item ‘fibonaccis2_@name_suffix@’ + named item ‘fibonaccis1_@name_suffix@’ + object ‘fibonaccis2_@name_suffix@’: + arity: 0 + literals: label ‘_hpc_tickboxes_Example_hpc’ + used items: named item ‘positiveFibonaccis1_@name_suffix@’ + object ‘positiveFibonaccis_@name_suffix@’: + arity: 0 + literals: + label ‘_hpc_tickboxes_Example_hpc’ + word 1 + info table of ‘IS’ + used items: + named item ‘$fNumNatural’ + named item ‘fromInteger’ + object ‘fibonaccis1_@name_suffix@’: + arity: 0 + literals: + label ‘_hpc_tickboxes_Example_hpc’ + word 0 + info table of ‘IS’ + used items: + named item ‘$fNumNatural’ + named item ‘fromInteger’ + object ‘$dTypeable2_@name_suffix@’: + arity: 0 + literals: <none> + used items: + named item ‘$dTypeable_@name_suffix@’ + named item ‘$dTypeable1_@name_suffix@’ + named item ‘mkTrAppChecked’ + object ‘$dTypeable1_@name_suffix@’: + arity: 0 + literals: info table of ‘[]’ + used items: + named item ‘$tcList’ + named item ‘mkTrCon’ + object ‘$dTypeable_@name_suffix@’: + arity: 0 + literals: info table of ‘[]’ + used items: + named item ‘$tcNatural’ + named item ‘mkTrCon’ + object ‘cstrlen’: + arity: 2 + literals: <none> + used items: named item ‘cstrlen1_@name_suffix@’ + object ‘cstrlen1_@name_suffix@’: + arity: 2 + literals: <none> + used items: + object ‘ds1_@name_suffix@’: + arity: 0 + literals: + label ‘strlen’ + word 0 + foreign function of type ‘Pointer -> UInt@word_size@’ + used items: + object ‘wild_@name_suffix@’: + arity: 0 + literals: info table of ‘W@word_size@#’ + used items: <none> + static-construction object ‘$tc'Nested’: + data constructor: TyCon + lifted: yes + literals: + word @large_word@ + word 1 + used items: + named item ‘$trModule’ + named item ‘$tc'Nested2_@name_suffix@’ + named item ‘$krep17_@name_suffix@’ + static-construction object ‘$tc'Nested2_@name_suffix@’: + data constructor: TrNameS + lifted: yes + literals: address ‘$tc'Nested1_@name_suffix@’ + used items: <none> + static-construction object ‘$krep17_@name_suffix@’: + data constructor: KindRepFun + lifted: yes + literals: <none> + used items: + named item ‘$krep16_@name_suffix@’ + named item ‘$krep13_@name_suffix@’ + static-construction object ‘$krep16_@name_suffix@’: + data constructor: KindRepTyConApp + lifted: yes + literals: <none> + used items: + named item ‘$tcPerfectTree’ + named item ‘$krep15_@name_suffix@’ + static-construction object ‘$krep15_@name_suffix@’: + data constructor: (:) + lifted: yes + literals: <none> + used items: + named item ‘$krep4_@name_suffix@’ + named item ‘[]’ + static-construction object ‘$tc'PerfectTree’: + data constructor: TyCon + lifted: yes + literals: + word @large_word@ + word 1 + used items: + named item ‘$trModule’ + named item ‘$tc'PerfectTree2_@name_suffix@’ + named item ‘$krep14_@name_suffix@’ + static-construction object ‘$tc'PerfectTree2_@name_suffix@’: + data constructor: TrNameS + lifted: yes + literals: address ‘$tc'PerfectTree1_@name_suffix@’ + used items: <none> + static-construction object ‘$krep14_@name_suffix@’: + data constructor: KindRepFun + lifted: yes + literals: <none> + used items: + named item ‘$krep1_@name_suffix@’ + named item ‘$krep13_@name_suffix@’ + static-construction object ‘$krep13_@name_suffix@’: + data constructor: KindRepTyConApp + lifted: yes + literals: <none> + used items: + named item ‘$tcPerfectTree’ + named item ‘$krep12_@name_suffix@’ + static-construction object ‘$krep12_@name_suffix@’: + data constructor: (:) + lifted: yes + literals: <none> + used items: + named item ‘$krep1_@name_suffix@’ + named item ‘[]’ + static-construction object ‘$tcPerfectTree’: + data constructor: TyCon + lifted: yes + literals: + word @large_word@ + word 0 + used items: + named item ‘$trModule’ + named item ‘$tcPerfectTree2_@name_suffix@’ + named item ‘krep$*Arr*’ + static-construction object ‘$tcPerfectTree2_@name_suffix@’: + data constructor: TrNameS + lifted: yes + literals: address ‘$tcPerfectTree1_@name_suffix@’ + used items: <none> + static-construction object ‘$tc'Node’: + data constructor: TyCon + lifted: yes + literals: + word @large_word@ + word 2 + used items: + named item ‘$trModule’ + named item ‘$tc'Node2_@name_suffix@’ + named item ‘$krep11_@name_suffix@’ + static-construction object ‘$tc'Node2_@name_suffix@’: + data constructor: TrNameS + lifted: yes + literals: address ‘$tc'Node1_@name_suffix@’ + used items: <none> + static-construction object ‘$krep11_@name_suffix@’: + data constructor: KindRepFun + lifted: yes + literals: <none> + used items: + named item ‘$krep7_@name_suffix@’ + named item ‘$krep10_@name_suffix@’ + static-construction object ‘$krep10_@name_suffix@’: + data constructor: KindRepFun + lifted: yes + literals: <none> + used items: + named item ‘$krep_@name_suffix@’ + named item ‘$krep9_@name_suffix@’ + static-construction object ‘$krep9_@name_suffix@’: + data constructor: KindRepFun + lifted: yes + literals: <none> + used items: + named item ‘$krep7_@name_suffix@’ + static-construction object ‘$tc'Leaf’: + data constructor: TyCon + lifted: yes + literals: + word @large_word@ + word 2 + used items: + named item ‘$trModule’ + named item ‘$tc'Leaf2_@name_suffix@’ + named item ‘$krep8_@name_suffix@’ + static-construction object ‘$tc'Leaf2_@name_suffix@’: + data constructor: TrNameS + lifted: yes + literals: address ‘$tc'Leaf1_@name_suffix@’ + used items: <none> + static-construction object ‘$krep8_@name_suffix@’: + data constructor: KindRepFun + lifted: yes + literals: <none> + used items: + named item ‘$krep1_@name_suffix@’ + named item ‘$krep7_@name_suffix@’ + static-construction object ‘$krep7_@name_suffix@’: + data constructor: KindRepTyConApp + lifted: yes + literals: <none> + used items: + named item ‘$tcBinTree’ + named item ‘$krep6_@name_suffix@’ + static-construction object ‘$krep6_@name_suffix@’: + data constructor: (:) + lifted: yes + literals: <none> + used items: + named item ‘$krep1_@name_suffix@’ + named item ‘$krep5_@name_suffix@’ + static-construction object ‘$krep5_@name_suffix@’: + data constructor: (:) + lifted: yes + literals: <none> + used items: + named item ‘$krep_@name_suffix@’ + named item ‘[]’ + static-construction object ‘$tcBinTree’: + data constructor: TyCon + lifted: yes + literals: + word @large_word@ + word 0 + used items: + named item ‘$trModule’ + named item ‘$tcBinTree2_@name_suffix@’ + named item ‘krep$*->*->*’ + static-construction object ‘$tcBinTree2_@name_suffix@’: + data constructor: TrNameS + lifted: yes + literals: address ‘$tcBinTree1_@name_suffix@’ + used items: <none> + static-construction object ‘$krep4_@name_suffix@’: + data constructor: KindRepTyConApp + lifted: yes + literals: <none> + used items: + named item ‘$tcTuple2’ + named item ‘$krep3_@name_suffix@’ + static-construction object ‘$krep3_@name_suffix@’: + data constructor: (:) + lifted: yes + literals: <none> + used items: + named item ‘$krep1_@name_suffix@’ + named item ‘$krep2_@name_suffix@’ + static-construction object ‘$krep2_@name_suffix@’: + data constructor: (:) + lifted: yes + literals: <none> + used items: + named item ‘$krep1_@name_suffix@’ + named item ‘[]’ + static-construction object ‘$krep1_@name_suffix@’: + data constructor: KindRepVar + lifted: yes + literals: word 0 + used items: <none> + static-construction object ‘$krep_@name_suffix@’: + data constructor: KindRepVar + lifted: yes + literals: word 1 + used items: <none> + static-construction object ‘$trModule’: + data constructor: Module + lifted: yes + literals: <none> + used items: + named item ‘$trModule2_@name_suffix@’ + named item ‘$trModule4_@name_suffix@’ + static-construction object ‘$trModule4_@name_suffix@’: + data constructor: TrNameS + lifted: yes + literals: address ‘$trModule3_@name_suffix@’ + used items: <none> + static-construction object ‘$trModule2_@name_suffix@’: + data constructor: TrNameS + lifted: yes + literals: address ‘$trModule1_@name_suffix@’ + used items: <none> + object ‘divides’: + arity: 3 + literals: <none> + used items: + object ‘$dReal_@name_suffix@’: + arity: 0 + literals: + label ‘_hpc_tickboxes_Example_hpc’ + used items: + object ‘divides_sat_@name_suffix@’: + arity: 1 + literals: + label ‘_hpc_tickboxes_Example_hpc’ + word 0 + info table of ‘IS’ + used items: + object ‘divides_sat_@name_suffix@’: + arity: 0 + literals: <none> + used items: named item ‘fromInteger’ + named item ‘$p1Real’ + object ‘divides_sat_@name_suffix@’: + arity: 3 + literals: label ‘_hpc_tickboxes_Example_hpc’ + used items: + object ‘divides_sat_@name_suffix@’: + arity: 1 + literals: label ‘_hpc_tickboxes_Example_hpc’ + used items: <none> + object ‘divides_sat_@name_suffix@’: + arity: 1 + literals: label ‘_hpc_tickboxes_Example_hpc’ + used items: <none> + named item ‘mod’ + object ‘divides_sat_@name_suffix@’: + arity: 0 + literals: <none> + used items: + object ‘divides_sat_@name_suffix@’: + arity: 0 + literals: <none> + used items: named item ‘(==)’ + named item ‘$p1Ord’ + named item ‘$p2Real’ + named item ‘$p1Integral’ + object ‘Node’: + arity: 3 + literals: info table of ‘Node’ + used items: <none> + object ‘Leaf’: + arity: 1 + literals: info table of ‘Leaf’ + used items: <none> + object ‘Nested’: + arity: 1 + literals: info table of ‘Nested’ + used items: <none> + object ‘PerfectTree’: + arity: 1 + literals: info table of ‘PerfectTree’ + used items: <none> +data constructor info tables: + info table of ‘PerfectTree’: + number of words for pointers: 1 + number of words for non-pointers: 0 + info table of ‘Nested’: + number of words for pointers: 1 + number of words for non-pointers: 0 + info table of ‘Leaf’: + number of words for pointers: 1 + number of words for non-pointers: 0 + info table of ‘Node’: + number of words for pointers: 3 + number of words for non-pointers: 0 +top-level strings: + $tc'Nested1_@name_suffix@: "'Nested" + $tc'PerfectTree1_@name_suffix@: "'PerfectTree" + $tcPerfectTree1_@name_suffix@: "PerfectTree" + $tc'Node1_@name_suffix@: "'Node" + $tc'Leaf1_@name_suffix@: "'Leaf" + $tcBinTree1_@name_suffix@: "BinTree" + $trModule3_@name_suffix@: "Example" + $trModule1_@name_suffix@: "main" +breakpoints: <none> +static-pointer table entries: + @hash@: static_ptr + @hash@: static_ptr1 +HPC information: + hash: @hash@ + tick box: _hpc_tickboxes_Example_hpc + number of ticks: 45 + ===================================== testsuite/tests/show-bytecode/show-bytecode-vanilla.stdout ===================================== @@ -14,7 +14,6 @@ objects: lifted: yes literals: word @large_word@ - word @large_word@ used items: named item ‘static_ptr1_sat_@name_suffix@’ named item ‘primes’ @@ -24,8 +23,6 @@ objects: literals: <none> used items: named item ‘static_ptr1_sat_@name_suffix@’ - named item ‘static_ptr1_sat_@name_suffix@’ - named item ‘static_ptr1_sat_@name_suffix@’ object ‘static_ptr1_sat_@name_suffix@’: arity: 0 literals: top-level string "main" @@ -48,16 +45,15 @@ objects: literals: <none> used items: named item ‘static_ptr1_sat_@name_suffix@’ - named item ‘static_ptr1_sat_@name_suffix@’ static-construction object ‘static_ptr1_sat_@name_suffix@’: data constructor: I# lifted: yes - literals: word 29 + literals: word @large_word@ used items: <none> static-construction object ‘static_ptr1_sat_@name_suffix@’: data constructor: I# lifted: yes - literals: word 20 + literals: word @large_word@ used items: <none> object ‘primes2_@name_suffix@’: arity: 0 @@ -162,7 +158,6 @@ objects: lifted: yes literals: word @large_word@ - word @large_word@ used items: named item ‘static_ptr_sat_@name_suffix@’ named item ‘fibonaccis’ @@ -172,8 +167,6 @@ objects: literals: <none> used items: named item ‘static_ptr_sat_@name_suffix@’ - named item ‘static_ptr_sat_@name_suffix@’ - named item ‘static_ptr_sat_@name_suffix@’ object ‘static_ptr_sat_@name_suffix@’: arity: 0 literals: top-level string "main" @@ -196,16 +189,15 @@ objects: literals: <none> used items: named item ‘static_ptr_sat_@name_suffix@’ - named item ‘static_ptr_sat_@name_suffix@’ static-construction object ‘static_ptr_sat_@name_suffix@’: data constructor: I# lifted: yes - literals: word 17 + literals: word @large_word@ used items: <none> static-construction object ‘static_ptr_sat_@name_suffix@’: data constructor: I# lifted: yes - literals: word 24 + literals: word @large_word@ used items: <none> object ‘positiveFibonaccis2_@name_suffix@’: arity: 0 @@ -287,17 +279,16 @@ objects: literals: label ‘strlen’ word 0 - foreign function of type ‘Pointer -> UInt64’ + foreign function of type ‘Pointer -> UInt@word_size@’ used items: object ‘wild_@name_suffix@’: arity: 0 - literals: info table of ‘W64#’ + literals: info table of ‘W@word_size@#’ used items: <none> static-construction object ‘$tc'Nested’: data constructor: TyCon lifted: yes literals: - word @large_word@ word @large_word@ word 1 used items: @@ -334,7 +325,6 @@ objects: data constructor: TyCon lifted: yes literals: - word @large_word@ word @large_word@ word 1 used items: @@ -371,7 +361,6 @@ objects: data constructor: TyCon lifted: yes literals: - word @large_word@ word @large_word@ word 0 used items: @@ -387,7 +376,6 @@ objects: data constructor: TyCon lifted: yes literals: - word @large_word@ word @large_word@ word 2 used items: @@ -419,12 +407,10 @@ objects: literals: <none> used items: named item ‘$krep7_@name_suffix@’ - named item ‘$krep7_@name_suffix@’ static-construction object ‘$tc'Leaf’: data constructor: TyCon lifted: yes literals: - word @large_word@ word @large_word@ word 2 used items: @@ -468,7 +454,6 @@ objects: data constructor: TyCon lifted: yes literals: - word @large_word@ word @large_word@ word 0 used items: ===================================== testsuite/tests/show-bytecode/show-bytecode-vanilla.stdout-javascript-unknown-ghcjs ===================================== @@ -0,0 +1,597 @@ +[1 of 1] Compiling Example ( Example.hs, Example.gbc ) +module: Example +hash: @hash@ +objects: + object ‘primesPtr’: + arity: 0 + literals: <none> + used items: + named item ‘static_ptr1’ + named item ‘$dTypeable2_@name_suffix@’ + named item ‘$fIsStaticStaticPtr’ + static-construction object ‘static_ptr1’: + data constructor: StaticPtr + lifted: yes + literals: + word @large_word@ + used items: + named item ‘static_ptr1_sat_@name_suffix@’ + named item ‘primes’ + static-construction object ‘static_ptr1_sat_@name_suffix@’: + data constructor: StaticPtrInfo + lifted: yes + literals: <none> + used items: + named item ‘static_ptr1_sat_@name_suffix@’ + object ‘static_ptr1_sat_@name_suffix@’: + arity: 0 + literals: top-level string "main" + used items: + object ‘static_ptr1_sat_@name_suffix@’: + arity: 0 + literals: <none> + used items: named item ‘unpackCString#’ + object ‘static_ptr1_sat_@name_suffix@’: + arity: 0 + literals: top-level string "Example" + used items: + object ‘static_ptr1_sat_@name_suffix@’: + arity: 0 + literals: <none> + used items: named item ‘unpackCString#’ + static-construction object ‘static_ptr1_sat_@name_suffix@’: + data constructor: (,) + lifted: yes + literals: <none> + used items: + named item ‘static_ptr1_sat_@name_suffix@’ + static-construction object ‘static_ptr1_sat_@name_suffix@’: + data constructor: I# + lifted: yes + literals: word @large_word@ + used items: <none> + static-construction object ‘static_ptr1_sat_@name_suffix@’: + data constructor: I# + lifted: yes + literals: word @large_word@ + used items: <none> + object ‘primes2_@name_suffix@’: + arity: 0 + literals: <none> + used items: + named item ‘primes2_sat_@name_suffix@’ + named item ‘isPrime_@name_suffix@’ + named item ‘filter’ + object ‘isPrime_@name_suffix@’: + arity: 1 + literals: <none> + used items: + object ‘isPrime_sat_@name_suffix@’: + arity: 1 + literals: <none> + used items: + object ‘isPrime_sat_@name_suffix@’: + arity: 1 + literals: <none> + used items: + object ‘isPrime_sat_@name_suffix@’: + arity: 1 + literals: + word 2 + info table of ‘IS’ + used items: + object ‘v_@name_suffix@’: + arity: 0 + literals: <none> + used items: + named item ‘$fIntegralInteger’ + named item ‘$fNumNatural’ + named item ‘(^)’ + object ‘isPrime_sat_@name_suffix@’: + arity: 3 + literals: <none> + used items: <none> + object ‘v_@name_suffix@’: + arity: 0 + literals: <none> + used items: + named item ‘$fOrdNatural’ + named item ‘(<=)’ + object ‘isPrime_sat_@name_suffix@’: + arity: 3 + literals: <none> + used items: <none> + named item ‘(.)’ + named item ‘primes’ + named item ‘takeWhile’ + object ‘isPrime_sat_@name_suffix@’: + arity: 2 + literals: <none> + used items: + named item ‘$fIntegralNatural’ + named item ‘divides’ + named item ‘$fFoldableList’ + named item ‘any’ + named item ‘not’ + static-construction object ‘primes’: + data constructor: (:) + lifted: yes + literals: <none> + used items: + named item ‘primes1_@name_suffix@’ + named item ‘primes2_@name_suffix@’ + object ‘primes2_sat_@name_suffix@’: + arity: 0 + literals: <none> + used items: + object ‘primes2_sat_@name_suffix@’: + arity: 0 + literals: + word 3 + info table of ‘IS’ + used items: + named item ‘$fNumNatural’ + named item ‘fromInteger’ + named item ‘$fEnumNatural’ + named item ‘enumFrom’ + object ‘primes1_@name_suffix@’: + arity: 0 + literals: <none> + used items: + named item ‘primes1_sat_@name_suffix@’ + named item ‘$fNumNatural’ + named item ‘fromInteger’ + static-construction object ‘primes1_sat_@name_suffix@’: + data constructor: IS + lifted: yes + literals: word 2 + used items: <none> + object ‘fibonaccisPtr’: + arity: 0 + literals: <none> + used items: + named item ‘static_ptr’ + named item ‘$dTypeable2_@name_suffix@’ + named item ‘$fIsStaticStaticPtr’ + static-construction object ‘static_ptr’: + data constructor: StaticPtr + lifted: yes + literals: + word @large_word@ + used items: + named item ‘static_ptr_sat_@name_suffix@’ + named item ‘fibonaccis’ + static-construction object ‘static_ptr_sat_@name_suffix@’: + data constructor: StaticPtrInfo + lifted: yes + literals: <none> + used items: + named item ‘static_ptr_sat_@name_suffix@’ + object ‘static_ptr_sat_@name_suffix@’: + arity: 0 + literals: top-level string "main" + used items: + object ‘static_ptr_sat_@name_suffix@’: + arity: 0 + literals: <none> + used items: named item ‘unpackCString#’ + object ‘static_ptr_sat_@name_suffix@’: + arity: 0 + literals: top-level string "Example" + used items: + object ‘static_ptr_sat_@name_suffix@’: + arity: 0 + literals: <none> + used items: named item ‘unpackCString#’ + static-construction object ‘static_ptr_sat_@name_suffix@’: + data constructor: (,) + lifted: yes + literals: <none> + used items: + named item ‘static_ptr_sat_@name_suffix@’ + static-construction object ‘static_ptr_sat_@name_suffix@’: + data constructor: I# + lifted: yes + literals: word @large_word@ + used items: <none> + static-construction object ‘static_ptr_sat_@name_suffix@’: + data constructor: I# + lifted: yes + literals: word @large_word@ + used items: <none> + object ‘positiveFibonaccis2_@name_suffix@’: + arity: 0 + literals: <none> + used items: + named item ‘positiveFibonaccis1_@name_suffix@’ + named item ‘fibonaccis’ + named item ‘positiveFibonaccis2_sat_@name_suffix@’ + named item ‘zipWith’ + static-construction object ‘positiveFibonaccis1_@name_suffix@’: + data constructor: (:) + lifted: yes + literals: <none> + used items: + named item ‘positiveFibonaccis_@name_suffix@’ + named item ‘positiveFibonaccis2_@name_suffix@’ + static-construction object ‘fibonaccis’: + data constructor: (:) + lifted: yes + literals: <none> + used items: + named item ‘fibonaccis1_@name_suffix@’ + named item ‘positiveFibonaccis1_@name_suffix@’ + object ‘positiveFibonaccis2_sat_@name_suffix@’: + arity: 0 + literals: <none> + used items: + named item ‘$fNumNatural’ + named item ‘(+)’ + object ‘positiveFibonaccis_@name_suffix@’: + arity: 0 + literals: <none> + used items: + named item ‘positiveFibonaccis_sat_@name_suffix@’ + named item ‘$fNumNatural’ + named item ‘fromInteger’ + static-construction object ‘positiveFibonaccis_sat_@name_suffix@’: + data constructor: IS + lifted: yes + literals: word 1 + used items: <none> + object ‘fibonaccis1_@name_suffix@’: + arity: 0 + literals: <none> + used items: + named item ‘fibonaccis1_sat_@name_suffix@’ + named item ‘$fNumNatural’ + named item ‘fromInteger’ + static-construction object ‘fibonaccis1_sat_@name_suffix@’: + data constructor: IS + lifted: yes + literals: word 0 + used items: <none> + object ‘$dTypeable2_@name_suffix@’: + arity: 0 + literals: <none> + used items: + named item ‘$dTypeable_@name_suffix@’ + named item ‘$dTypeable1_@name_suffix@’ + named item ‘mkTrAppChecked’ + object ‘$dTypeable1_@name_suffix@’: + arity: 0 + literals: info table of ‘[]’ + used items: + named item ‘$tcList’ + named item ‘mkTrCon’ + object ‘$dTypeable_@name_suffix@’: + arity: 0 + literals: info table of ‘[]’ + used items: + named item ‘$tcNatural’ + named item ‘mkTrCon’ + object ‘cstrlen’: + arity: 2 + literals: <none> + used items: + object ‘ds1_@name_suffix@’: + arity: 0 + literals: + label ‘strlen’ + word 0 + foreign function of type ‘Pointer -> UInt@word_size@’ + used items: + object ‘wild_@name_suffix@’: + arity: 0 + literals: info table of ‘W@word_size@#’ + used items: <none> + static-construction object ‘$tc'Nested’: + data constructor: TyCon + lifted: yes + literals: + word @large_word@ + word 1 + used items: + named item ‘$trModule’ + named item ‘$tc'Nested2_@name_suffix@’ + named item ‘$krep17_@name_suffix@’ + static-construction object ‘$tc'Nested2_@name_suffix@’: + data constructor: TrNameS + lifted: yes + literals: address ‘$tc'Nested1_@name_suffix@’ + used items: <none> + static-construction object ‘$krep17_@name_suffix@’: + data constructor: KindRepFun + lifted: yes + literals: <none> + used items: + named item ‘$krep16_@name_suffix@’ + named item ‘$krep13_@name_suffix@’ + static-construction object ‘$krep16_@name_suffix@’: + data constructor: KindRepTyConApp + lifted: yes + literals: <none> + used items: + named item ‘$tcPerfectTree’ + named item ‘$krep15_@name_suffix@’ + static-construction object ‘$krep15_@name_suffix@’: + data constructor: (:) + lifted: yes + literals: <none> + used items: + named item ‘$krep4_@name_suffix@’ + named item ‘[]’ + static-construction object ‘$tc'PerfectTree’: + data constructor: TyCon + lifted: yes + used items: named item ‘cstrlen1_@name_suffix@’ + object ‘cstrlen1_@name_suffix@’: + arity: 2 + literals: <none> + literals: + word @large_word@ + word 1 + used items: + named item ‘$trModule’ + named item ‘$tc'PerfectTree2_@name_suffix@’ + named item ‘$krep14_@name_suffix@’ + static-construction object ‘$tc'PerfectTree2_@name_suffix@’: + data constructor: TrNameS + lifted: yes + literals: address ‘$tc'PerfectTree1_@name_suffix@’ + used items: <none> + static-construction object ‘$krep14_@name_suffix@’: + data constructor: KindRepFun + lifted: yes + literals: <none> + used items: + named item ‘$krep1_@name_suffix@’ + named item ‘$krep13_@name_suffix@’ + static-construction object ‘$krep13_@name_suffix@’: + data constructor: KindRepTyConApp + lifted: yes + literals: <none> + used items: + named item ‘$tcPerfectTree’ + named item ‘$krep12_@name_suffix@’ + static-construction object ‘$krep12_@name_suffix@’: + data constructor: (:) + lifted: yes + literals: <none> + used items: + named item ‘$krep1_@name_suffix@’ + named item ‘[]’ + static-construction object ‘$tcPerfectTree’: + data constructor: TyCon + lifted: yes + literals: + word @large_word@ + word 0 + used items: + named item ‘$trModule’ + named item ‘$tcPerfectTree2_@name_suffix@’ + named item ‘krep$*Arr*’ + static-construction object ‘$tcPerfectTree2_@name_suffix@’: + data constructor: TrNameS + lifted: yes + literals: address ‘$tcPerfectTree1_@name_suffix@’ + used items: <none> + static-construction object ‘$tc'Node’: + data constructor: TyCon + lifted: yes + literals: + word @large_word@ + word 2 + used items: + named item ‘$trModule’ + named item ‘$tc'Node2_@name_suffix@’ + named item ‘$krep11_@name_suffix@’ + static-construction object ‘$tc'Node2_@name_suffix@’: + data constructor: TrNameS + lifted: yes + literals: address ‘$tc'Node1_@name_suffix@’ + used items: <none> + static-construction object ‘$krep11_@name_suffix@’: + data constructor: KindRepFun + lifted: yes + literals: <none> + used items: + named item ‘$krep7_@name_suffix@’ + named item ‘$krep10_@name_suffix@’ + static-construction object ‘$krep10_@name_suffix@’: + data constructor: KindRepFun + lifted: yes + literals: <none> + used items: + named item ‘$krep_@name_suffix@’ + named item ‘$krep9_@name_suffix@’ + static-construction object ‘$krep9_@name_suffix@’: + data constructor: KindRepFun + lifted: yes + literals: <none> + used items: + named item ‘$krep7_@name_suffix@’ + static-construction object ‘$tc'Leaf’: + data constructor: TyCon + lifted: yes + literals: + word @large_word@ + word 2 + used items: + named item ‘$trModule’ + named item ‘$tc'Leaf2_@name_suffix@’ + named item ‘$krep8_@name_suffix@’ + static-construction object ‘$tc'Leaf2_@name_suffix@’: + data constructor: TrNameS + lifted: yes + literals: address ‘$tc'Leaf1_@name_suffix@’ + used items: <none> + static-construction object ‘$krep8_@name_suffix@’: + data constructor: KindRepFun + lifted: yes + literals: <none> + used items: + named item ‘$krep1_@name_suffix@’ + named item ‘$krep7_@name_suffix@’ + static-construction object ‘$krep7_@name_suffix@’: + data constructor: KindRepTyConApp + lifted: yes + literals: <none> + used items: + named item ‘$tcBinTree’ + named item ‘$krep6_@name_suffix@’ + static-construction object ‘$krep6_@name_suffix@’: + data constructor: (:) + lifted: yes + literals: <none> + used items: + named item ‘$krep1_@name_suffix@’ + named item ‘$krep5_@name_suffix@’ + static-construction object ‘$krep5_@name_suffix@’: + data constructor: (:) + lifted: yes + literals: <none> + used items: + named item ‘$krep_@name_suffix@’ + named item ‘[]’ + static-construction object ‘$tcBinTree’: + data constructor: TyCon + lifted: yes + literals: + word @large_word@ + word 0 + used items: + named item ‘$trModule’ + named item ‘$tcBinTree2_@name_suffix@’ + named item ‘krep$*->*->*’ + static-construction object ‘$tcBinTree2_@name_suffix@’: + data constructor: TrNameS + lifted: yes + literals: address ‘$tcBinTree1_@name_suffix@’ + used items: <none> + static-construction object ‘$krep4_@name_suffix@’: + data constructor: KindRepTyConApp + lifted: yes + literals: <none> + used items: + named item ‘$tcTuple2’ + named item ‘$krep3_@name_suffix@’ + static-construction object ‘$krep3_@name_suffix@’: + data constructor: (:) + lifted: yes + literals: <none> + used items: + named item ‘$krep1_@name_suffix@’ + named item ‘$krep2_@name_suffix@’ + static-construction object ‘$krep2_@name_suffix@’: + data constructor: (:) + lifted: yes + literals: <none> + used items: + named item ‘$krep1_@name_suffix@’ + named item ‘[]’ + static-construction object ‘$krep1_@name_suffix@’: + data constructor: KindRepVar + lifted: yes + literals: word 0 + used items: <none> + static-construction object ‘$krep_@name_suffix@’: + data constructor: KindRepVar + lifted: yes + literals: word 1 + used items: <none> + static-construction object ‘$trModule’: + data constructor: Module + lifted: yes + literals: <none> + used items: + named item ‘$trModule2_@name_suffix@’ + named item ‘$trModule4_@name_suffix@’ + static-construction object ‘$trModule4_@name_suffix@’: + data constructor: TrNameS + lifted: yes + literals: address ‘$trModule3_@name_suffix@’ + used items: <none> + static-construction object ‘$trModule2_@name_suffix@’: + data constructor: TrNameS + lifted: yes + literals: address ‘$trModule1_@name_suffix@’ + used items: <none> + object ‘divides’: + arity: 3 + literals: <none> + used items: + object ‘$dReal_@name_suffix@’: + arity: 0 + literals: <none> + used items: + object ‘divides_sat_@name_suffix@’: + arity: 1 + literals: + word 0 + info table of ‘IS’ + used items: + object ‘divides_sat_@name_suffix@’: + arity: 0 + literals: <none> + used items: named item ‘fromInteger’ + named item ‘$p1Real’ + object ‘divides_sat_@name_suffix@’: + arity: 3 + literals: <none> + used items: named item ‘mod’ + object ‘divides_sat_@name_suffix@’: + arity: 0 + literals: <none> + used items: + object ‘divides_sat_@name_suffix@’: + arity: 0 + literals: <none> + used items: named item ‘(==)’ + named item ‘$p1Ord’ + named item ‘$p2Real’ + named item ‘$p1Integral’ + object ‘Node’: + arity: 3 + literals: info table of ‘Node’ + used items: <none> + object ‘Leaf’: + arity: 1 + literals: info table of ‘Leaf’ + used items: <none> + object ‘Nested’: + arity: 1 + literals: info table of ‘Nested’ + used items: <none> + object ‘PerfectTree’: + arity: 1 + literals: info table of ‘PerfectTree’ + used items: <none> +data constructor info tables: + info table of ‘PerfectTree’: + number of words for pointers: 1 + number of words for non-pointers: 0 + info table of ‘Nested’: + number of words for pointers: 1 + number of words for non-pointers: 0 + info table of ‘Leaf’: + number of words for pointers: 1 + number of words for non-pointers: 0 + info table of ‘Node’: + number of words for pointers: 3 + number of words for non-pointers: 0 +top-level strings: + $tc'Nested1_@name_suffix@: "'Nested" + $tc'PerfectTree1_@name_suffix@: "'PerfectTree" + $tcPerfectTree1_@name_suffix@: "PerfectTree" + $tc'Node1_@name_suffix@: "'Node" + $tc'Leaf1_@name_suffix@: "'Leaf" + $tcBinTree1_@name_suffix@: "BinTree" + $trModule3_@name_suffix@: "Example" + $trModule1_@name_suffix@: "main" +breakpoints: <none> +static-pointer table entries: + @hash@: static_ptr + @hash@: static_ptr1 +HPC information: <none> + View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/190a66f48204a923d766f9ebd71b8cd... -- View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/190a66f48204a923d766f9ebd71b8cd... You're receiving this email because of your account on gitlab.haskell.org. Manage all notifications: https://gitlab.haskell.org/-/profile/notifications | Help: https://gitlab.haskell.org/help
participants (1)
-
Wolfgang Jeltsch (@jeltsch)