summaryrefslogtreecommitdiff
path: root/compiler/GHC/Builtin
diff options
context:
space:
mode:
authorSven Tennie <sven.tennie@gmail.com>2021-04-03 19:35:34 +0200
committerMarge Bot <ben+marge-bot@smart-cactus.org>2021-09-23 15:59:38 -0400
commit29717ecb0711cd03796510fbe9b4bff58c7da870 (patch)
tree850a449ef01caeedf8fd8e9156e7eedcd5a028ce /compiler/GHC/Builtin
parent6f7f59901c047882ba8c9ae8812264f86b12483a (diff)
downloadhaskell-29717ecb0711cd03796510fbe9b4bff58c7da870.tar.gz
Use Info Table Provenances to decode cloned stack (#18163)
Emit an Info Table Provenance Entry (IPE) for every stack represeted info table if -finfo-table-map is turned on. To decode a cloned stack, lookupIPE() is used. It provides a mapping between info tables and their source location. Please see these notes for details: - [Stacktraces from Info Table Provenance Entries (IPE based stack unwinding)] - [Mapping Info Tables to Source Positions] Metric Increase: T12545
Diffstat (limited to 'compiler/GHC/Builtin')
-rw-r--r--compiler/GHC/Builtin/primops.txt.pp16
1 files changed, 3 insertions, 13 deletions
diff --git a/compiler/GHC/Builtin/primops.txt.pp b/compiler/GHC/Builtin/primops.txt.pp
index 58d4ec91f3..2aa1eefb4b 100644
--- a/compiler/GHC/Builtin/primops.txt.pp
+++ b/compiler/GHC/Builtin/primops.txt.pp
@@ -3648,19 +3648,9 @@ primop SetThreadAllocationCounter "setThreadAllocationCounter#" GenPrimOp
out_of_line = True
primtype StackSnapshot#
-
-primop CloneMyStack "cloneMyStack#" GenPrimOp
- State# RealWorld -> (# State# RealWorld, StackSnapshot# #)
- { Clones the stack of the current (active) Haskell thread. A cloned stack is
- represented by {\tt StackSnapshot# } and is not evaluated any further
- (i.e. it's "cold"). This is useful for stack decoding (backtraces) and
- analyses because there are no concurrent mutations on a cloned stack.
- The module {\tt GHC.Stack.CloneStack } contains related funcions.
- Please see Note [Stack Cloning] for technical details. }
- with
- has_side_effects = True
- out_of_line = True
-
+ { Haskell representation of a {\tt StgStack*} that was created (cloned)
+ with a function in {\tt GHC.Stack.CloneStack}. Please check the
+ documentation in this module for more detailed explanations. }
------------------------------------------------------------------------
section "Safe coercions"