From: sewardj Date: Wed, 1 Mar 2000 12:31:22 +0000 (+0000) Subject: [project @ 2000-03-01 12:31:22 by sewardj] X-Git-Tag: Approximately_9120_patches~5076 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=9fa0c8cb6a8eeb2621b97b581a6bd5887f3bcfba;p=ghc-hetmet.git [project @ 2000-03-01 12:31:22 by sewardj] Temporarily disable Stix inlining whilst we figure out how to fix obscure bugs in the register allocator. With inlining off, everything seems to work, and the compiler can boot itself, but when enabled, inlining exposes a register allocation bug which causes ghc/compiler/utils/FastString.lhs to be miscompiled on Linux (the big arithmetic expressions for computing hash values). --- diff --git a/ghc/compiler/nativeGen/AsmCodeGen.lhs b/ghc/compiler/nativeGen/AsmCodeGen.lhs index e82bc8e..4d08b4a 100644 --- a/ghc/compiler/nativeGen/AsmCodeGen.lhs +++ b/ghc/compiler/nativeGen/AsmCodeGen.lhs @@ -115,12 +115,12 @@ codeGen stixFinal dynamic_codes text_prealloc = vcat (intersperse (char ' ' $$ char ' ') docs_prealloc) in - -- trace (showSDoc text_prealloc) ( + --trace (showSDoc text_prealloc) ( returnUs (vcat (intersperse (char ' ' $$ ptext SLIT("# ___stg_split_marker") $$ char ' ') docs)) - -- ) + --) \end{code} Top level code generator for a chunk of stix code. For this part of @@ -199,6 +199,7 @@ stixPeep :: [StixTree] -> [StixTree] -- second assignment would be substituted for, giving nonsense -- code. As far as I can see, StixTemps are only ever assigned -- to once. It would be nice to be sure! +{- stixPeep ( t1@(StAssign pka (StReg (StixTemp u pk)) rhs) : t2 : ts ) @@ -210,6 +211,12 @@ stixPeep ( t1@(StAssign pka (StReg (StixTemp u pk)) rhs) stixPeep (t1:t2:ts) = t1 : stixPeep (t2:ts) stixPeep [t1] = [t1] stixPeep [] = [] +-} + +-- disable stix inlining until we figure out how to fix the +-- latent bugs in the register allocator which are exposed by +-- the inliner. +stixPeep = id \end{code} For most nodes, just optimize the children.