diff options
Diffstat (limited to 'compiler/llvmGen/LlvmCodeGen')
-rw-r--r-- | compiler/llvmGen/LlvmCodeGen/CodeGen.hs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/compiler/llvmGen/LlvmCodeGen/CodeGen.hs b/compiler/llvmGen/LlvmCodeGen/CodeGen.hs index fb79a9d973..539e2220b7 100644 --- a/compiler/llvmGen/LlvmCodeGen/CodeGen.hs +++ b/compiler/llvmGen/LlvmCodeGen/CodeGen.hs @@ -38,6 +38,10 @@ import Control.Monad.Trans.Writer #else import Data.Monoid ( Monoid, mappend, mempty ) #endif +#if __GLASGOW_HASKELL__ > 710 +import Data.Semigroup ( Semigroup ) +import qualified Data.Semigroup as Semigroup +#endif import Data.List ( nub ) import Data.Maybe ( catMaybes ) @@ -1840,6 +1844,12 @@ getTBAARegMeta = getTBAAMeta . getTBAA -- | A more convenient way of accumulating LLVM statements and declarations. data LlvmAccum = LlvmAccum LlvmStatements [LlvmCmmDecl] +#if __GLASGOW_HASKELL__ > 710 +instance Semigroup LlvmAccum where + LlvmAccum stmtsA declsA <> LlvmAccum stmtsB declsB = + LlvmAccum (stmtsA Semigroup.<> stmtsB) (declsA Semigroup.<> declsB) +#endif + instance Monoid LlvmAccum where mempty = LlvmAccum nilOL [] LlvmAccum stmtsA declsA `mappend` LlvmAccum stmtsB declsB = |