Switch to LLVM version 3.8
authorErik de Castro Lopo <erikd@mega-nerd.com>
Wed, 6 Jul 2016 19:38:14 +0000 (05:38 +1000)
committerErik de Castro Lopo <erikd@mega-nerd.com>
Wed, 6 Jul 2016 19:40:11 +0000 (05:40 +1000)
LLVM 3.8 was released a couple of months ago.

Test Plan: Build and test on x86_64/linux (perf-llvm) and armhf/linux.

Reviewers: austin, hvr, rwbarton, bgamari

Reviewed By: bgamari

Subscribers: thomie

Differential Revision: https://phabricator.haskell.org/D2382

compiler/llvmGen/Llvm/PpLlvm.hs
compiler/llvmGen/Llvm/Types.hs
configure.ac

index 47e26ab..c9c1f95 100644 (file)
@@ -73,7 +73,7 @@ ppLlvmGlobal (LMGlobal var@(LMGlobalVar _ _ link x a c) dat) =
             Nothing -> empty
 
         rhs = case dat of
-            Just stat -> ppr stat
+            Just stat -> pprSpecialStatic stat
             Nothing   -> ppr (pLower $ getVarType var)
 
         -- Position of linkage is different for aliases.
index 5c2ce5e..d2cab44 100644 (file)
@@ -175,6 +175,14 @@ instance Outputable LlvmStatic where
   ppr (LMSub s1 s2)
       = pprStaticArith s1 s2 (sLit "sub") (sLit "fsub") "LMSub"
 
+
+pprSpecialStatic :: LlvmStatic -> SDoc
+pprSpecialStatic (LMBitc v t) =
+    ppr (pLower t) <> text ", bitcast (" <> ppr v <> text " to " <> ppr t
+        <> char ')'
+pprSpecialStatic stat = ppr stat
+
+
 pprStaticArith :: LlvmStatic -> LlvmStatic -> LitString -> LitString -> String -> SDoc
 pprStaticArith s1 s2 int_op float_op op_name =
   let ty1 = getStatType s1
index 664deb4..f4b839e 100644 (file)
@@ -521,7 +521,7 @@ esac
 # tools we are looking for. In the past, GHC supported a number of
 # versions of LLVM simultaneously, but that stopped working around
 # 3.5/3.6 release of LLVM.
-LlvmVersion=3.7
+LlvmVersion=3.8
 AC_SUBST([LlvmVersion])
 sUPPORTED_LLVM_VERSION=$(echo \($LlvmVersion\) | sed 's/\./,/')
 AC_DEFINE_UNQUOTED([sUPPORTED_LLVM_VERSION], ${sUPPORTED_LLVM_VERSION}, [The supported LLVM version number])