Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:13.2
ghc
ghc-avoid-empty-llvm-used-definitions.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File ghc-avoid-empty-llvm-used-definitions.patch of Package ghc
git-author: Geoffrey Mainland <gmainlan@…> (06/12/13 13:31:49) git-committer: Geoffrey Mainland <gmainlan@…> (06/12/13 13:31:49) Message: Avoid generating empty llvm.used definitions. LLVM 3.3rc3 complains when the llvm.used global is an empty array, so don't define llvm.used at all when it would be empty. -- Index: ghc-7.6.3/compiler/llvmGen/LlvmCodeGen.hs =================================================================== --- ghc-7.6.3.orig/compiler/llvmGen/LlvmCodeGen.hs +++ ghc-7.6.3/compiler/llvmGen/LlvmCodeGen.hs @@ -112,19 +112,19 @@ cmmProcLlvmGens :: DynFlags -> BufHandle -> [[LlvmVar]] -- ^ info tables that need to be marked as 'used' -> IO () -cmmProcLlvmGens _ _ _ _ [] _ [] - = return () - cmmProcLlvmGens dflags h _ _ [] _ ivars - = let ivars' = concat ivars - cast x = LMBitc (LMStaticPointer (pVarLift x)) i8Ptr - ty = (LMArray (length ivars') i8Ptr) - usedArray = LMStaticArray (map cast ivars') ty - lmUsed = (LMGlobalVar (fsLit "llvm.used") ty Appending - (Just $ fsLit "llvm.metadata") Nothing False, Just usedArray) - in Prt.bufLeftRender h $ {-# SCC "llvm_used_ppr" #-} - withPprStyleDoc dflags (mkCodeStyle CStyle) $ - pprLlvmData ([lmUsed], []) + | null ivars' = return () + | otherwise = Prt.bufLeftRender h $ + {-# SCC "llvm_used_ppr" #-} + withPprStyleDoc dflags (mkCodeStyle CStyle) $ + pprLlvmData ([lmUsed], []) + where + ivars' = concat ivars + cast x = LMBitc (LMStaticPointer (pVarLift x)) i8Ptr + ty = (LMArray (length ivars') i8Ptr) + usedArray = LMStaticArray (map cast ivars') ty + lmUsed = (LMGlobalVar (fsLit "llvm.used") ty Appending + (Just $ fsLit "llvm.metadata") Nothing False, Just usedArray) cmmProcLlvmGens dflags h us env ((CmmData _ _) : cmms) count ivars = cmmProcLlvmGens dflags h us env cmms count ivars
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor