summaryrefslogtreecommitdiff
path: root/compiler/GHC/Core/Opt
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/GHC/Core/Opt')
-rw-r--r--compiler/GHC/Core/Opt/Simplify.hs8
-rw-r--r--compiler/GHC/Core/Opt/Specialise.hs2
-rw-r--r--compiler/GHC/Core/Opt/WorkWrap/Utils.hs2
3 files changed, 6 insertions, 6 deletions
diff --git a/compiler/GHC/Core/Opt/Simplify.hs b/compiler/GHC/Core/Opt/Simplify.hs
index cb5264f4ba..d1ca3e3f9c 100644
--- a/compiler/GHC/Core/Opt/Simplify.hs
+++ b/compiler/GHC/Core/Opt/Simplify.hs
@@ -1722,8 +1722,8 @@ simplRecE env pairs body cont
In `simplNonRecE`, the call to `isStrictId` will fail if the binder
has a representation-polymorphic type, of kind (TYPE r). So we are careful to
call `isStrictId` on the OutId, not the InId, in case we have
- ((\(r::RuntimeRep) \(x::Type r). blah) Lifted arg)
-That will lead to `simplNonRecE env (x::Type r) arg`, and we can't tell
+ ((\(r::RuntimeRep) \(x::TYPE r). blah) Lifted arg)
+That will lead to `simplNonRecE env (x::TYPE r) arg`, and we can't tell
if x is lifted or unlifted from that.
We only get such redexes from the compulsory inlining of a wired-in,
@@ -3166,11 +3166,11 @@ even though it'll be over-ridden in every case alternative with a more
informative unfolding. Why? Because suppose a later, less clever, pass
simply replaces all occurrences of the case binder with the binder itself;
then Lint may complain about the let/app invariant. Example
- case e of b { DEFAULT -> let v = reallyUnsafePtrEq# b y in ....
+ case e of b { DEFAULT -> let v = reallyUnsafePtrEquality# b y in ....
; K -> blah }
The let/app invariant requires that y is evaluated in the call to
-reallyUnsafePtrEq#, which it is. But we still want that to be true if we
+reallyUnsafePtrEquality#, which it is. But we still want that to be true if we
propagate binders to occurrences.
This showed up in #13027.
diff --git a/compiler/GHC/Core/Opt/Specialise.hs b/compiler/GHC/Core/Opt/Specialise.hs
index 88f5d408de..20f78f94bc 100644
--- a/compiler/GHC/Core/Opt/Specialise.hs
+++ b/compiler/GHC/Core/Opt/Specialise.hs
@@ -1762,7 +1762,7 @@ Wrinkles
unfolding of the specialised function: this is the last field in specHeader's
big result tuple.
- The right thing to do is to produce a RubbishLit; it should rapidly
+ The right thing to do is to produce a LitRubbish; it should rapidly
disappear. Rather like GHC.Core.Opt.WorkWrap.Utils.mk_absent_let.
Note [Zap occ info in rule binders]
diff --git a/compiler/GHC/Core/Opt/WorkWrap/Utils.hs b/compiler/GHC/Core/Opt/WorkWrap/Utils.hs
index 3eb4b31c52..61de975bf0 100644
--- a/compiler/GHC/Core/Opt/WorkWrap/Utils.hs
+++ b/compiler/GHC/Core/Opt/WorkWrap/Utils.hs
@@ -1213,7 +1213,7 @@ Needless to say, there are some wrinkles:
cardinality 'C_10' (say, the arg to a bottoming function) where we could've
used an error-thunk, but that's a small price to pay for simplicity.
- 3. We can only emit a RubbishLit if the arg's type @arg_ty@ is mono-rep, e.g.
+ 3. We can only emit a LitRubbish if the arg's type @arg_ty@ is mono-rep, e.g.
of the form @TYPE rep@ where @rep@ is not (and doesn't contain) a variable.
Why? Because if we don't know its representation (e.g. size in memory,
register class), we don't know what or how much rubbish to emit in codegen.