[Git][ghc/ghc][wip/T18857] 4 commits: CmmToLlvm: Declare signature for memcmp

Ben Gamari gitlab at gitlab.haskell.org
Fri Oct 30 18:38:37 UTC 2020



Ben Gamari pushed to branch wip/T18857 at Glasgow Haskell Compiler / GHC


Commits:
e82d03da by Ben Gamari at 2020-10-30T14:34:26-04:00
CmmToLlvm: Declare signature for memcmp

Otherwise `opt` fails with:

    error: use of undefined value '@memcmp$def'

Fixes #18857.

- - - - -
b2b10d0c by Ben Gamari at 2020-10-30T14:34:26-04:00
gitlab-ci: Run LLVM job on appropriately-labelled MRs

Namely, those marked with the ~"LLVM backend" label

- - - - -
79195366 by Ben Gamari at 2020-10-30T14:34:26-04:00
gitlab-ci: Run LLVM builds on Debian 10

The current Debian 9 image doesn't provide LLVM 7.

- - - - -
00e08ea0 by Ben Gamari at 2020-10-30T14:36:52-04:00
hadrian: Don't use -fllvm to bootstrap under LLVM flavour

Previously Hadrian's LLVM build flavours would use `-fllvm` for all
invocations, even those to stage0 GHC. This meant that we needed to keep
two LLVM versions around in all of the CI images. Moreover, it differed
from the behavior of the old make build system's llvm flavours.

Change this to reflect the behavior of the `make` build system, using
`-fllvm` only with the stage1 and stage2 compilers.

- - - - -


3 changed files:

- .gitlab-ci.yml
- compiler/GHC/CmmToLlvm/Base.hs
- hadrian/src/Settings/Flavours/Llvm.hs


Changes:

=====================================
.gitlab-ci.yml
=====================================
@@ -647,22 +647,6 @@ validate-x86_64-linux-deb9-debug:
     when: always
     expire_in: 2 week
 
-# Disabled to alleviate CI load
-.validate-x86_64-linux-deb9-llvm:
-  extends: .build-x86_64-linux-deb9
-  stage: full-build
-  variables:
-    BUILD_FLAVOUR: perf-llvm
-    TEST_ENV: "x86_64-linux-deb9-llvm"
-
-nightly-x86_64-linux-deb9-llvm:
-  <<: *nightly
-  extends: .build-x86_64-linux-deb9
-  stage: full-build
-  variables:
-    BUILD_FLAVOUR: perf-llvm
-    TEST_ENV: "x86_64-linux-deb9-llvm"
-
 validate-x86_64-linux-deb9-integer-simple:
   extends: .build-x86_64-linux-deb9
   stage: full-build
@@ -719,6 +703,23 @@ release-x86_64-linux-deb10:
   <<: *release
   extends: .build-x86_64-linux-deb10
 
+validate-x86_64-linux-deb10-llvm:
+  extends: .build-x86_64-linux-deb10
+  stage: full-build
+  rules:
+    - if: '$CI_MERGE_REQUEST_LABELS =~ /.*LLVM backend.*/'
+  variables:
+    BUILD_FLAVOUR: perf-llvm
+    TEST_ENV: "x86_64-linux-deb10-llvm"
+
+nightly-x86_64-linux-deb10-llvm:
+  <<: *nightly
+  extends: .build-x86_64-linux-deb10
+  stage: full-build
+  variables:
+    BUILD_FLAVOUR: perf-llvm
+    TEST_ENV: "x86_64-linux-deb10-llvm"
+
 #################################
 # x86_64-linux-ubuntu 20.04
 #################################


=====================================
compiler/GHC/CmmToLlvm/Base.hs
=====================================
@@ -476,6 +476,7 @@ ghcInternalFunctions :: LlvmM ()
 ghcInternalFunctions = do
     platform <- getPlatform
     let w = llvmWord platform
+    mk "memcmp" w [i8Ptr, i8Ptr, w]
     mk "memcpy" i8Ptr [i8Ptr, i8Ptr, w]
     mk "memmove" i8Ptr [i8Ptr, i8Ptr, w]
     mk "memset" i8Ptr [i8Ptr, w, w]


=====================================
hadrian/src/Settings/Flavours/Llvm.hs
=====================================
@@ -25,5 +25,5 @@ mkLlvmFlavour :: Flavour -> Flavour
 mkLlvmFlavour flav = flav
     { name = name flav ++ "-llvm"
     , args = mconcat [ args flav
-                     , builder Ghc ? arg "-fllvm" ]
+                     , notStage0 ? builder Ghc ? arg "-fllvm" ]
     }



View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/33845867954b01524fa2cde51cdd639908eb8a9f...00e08ea0e232257d1957de9f9fae0bd6f985186f

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/33845867954b01524fa2cde51cdd639908eb8a9f...00e08ea0e232257d1957de9f9fae0bd6f985186f
You're receiving this email because of your account on gitlab.haskell.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20201030/091d1220/attachment-0001.html>


More information about the ghc-commits mailing list