Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Glasgow Haskell Compiler
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Iterations
Merge Requests
0
Merge Requests
0
Requirements
Requirements
List
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Package Registry
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issue
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Shayne Fletcher
Glasgow Haskell Compiler
Commits
87837181
Commit
87837181
authored
Jan 17, 2012
by
dterei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Only use TBAA when LLVM > 2.8. (#5782)
parent
7bbc1b05
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
25 additions
and
11 deletions
+25
-11
compiler/llvmGen/LlvmCodeGen.hs
compiler/llvmGen/LlvmCodeGen.hs
+4
-1
compiler/main/DriverPipeline.hs
compiler/main/DriverPipeline.hs
+8
-2
compiler/main/DynFlags.hs
compiler/main/DynFlags.hs
+13
-8
No files found.
compiler/llvmGen/LlvmCodeGen.hs
View file @
87837181
...
...
@@ -27,6 +27,7 @@ import UniqSupply
import
Util
import
SysTools
(
figureLlvmVersion
)
import
Data.IORef
(
writeIORef
)
import
Data.Maybe
(
fromMaybe
)
import
System.IO
...
...
@@ -47,10 +48,12 @@ llvmCodeGen dflags h us cmms
in
(
d
,
env'
)
in
do
showPass
dflags
"LlVM CodeGen"
bufh
<-
newBufHandle
h
dumpIfSet_dyn
dflags
Opt_D_dump_llvm
"LLVM Code"
$
docToSDoc
pprLlvmHeader
bufh
<-
newBufHandle
h
Prt
.
bufLeftRender
bufh
$
pprLlvmHeader
ver
<-
(
fromMaybe
defaultLlvmVersion
)
`
fmap
`
figureLlvmVersion
dflags
-- cache llvm version for later use
writeIORef
(
llvmVersion
dflags
)
ver
env'
<-
{-# SCC "llvm_datas_gen" #-}
cmmDataLlvmGens
dflags
bufh
(
setLlvmVer
ver
env
)
cdata
[]
{-# SCC "llvm_procs_gen" #-}
...
...
compiler/main/DriverPipeline.hs
View file @
87837181
...
...
@@ -1306,6 +1306,8 @@ runPhase SplitAs _input_fn dflags
runPhase
LlvmOpt
input_fn
dflags
=
do
ver
<-
io
$
readIORef
(
llvmVersion
dflags
)
let
lo_opts
=
getOpts
dflags
opt_lo
opt_lvl
=
max
0
(
min
2
$
optLevel
dflags
)
-- don't specify anything if user has specified commands. We do this
...
...
@@ -1315,7 +1317,8 @@ runPhase LlvmOpt input_fn dflags
optFlag
=
if
null
lo_opts
then
[
SysTools
.
Option
(
llvmOpts
!!
opt_lvl
)]
else
[]
tbaa
|
dopt
Opt_LlvmTBAA
dflags
=
"--enable-tbaa=true"
tbaa
|
ver
<
29
=
""
-- no tbaa in 2.8 and earlier
|
dopt
Opt_LlvmTBAA
dflags
=
"--enable-tbaa=true"
|
otherwise
=
"--enable-tbaa=false"
...
...
@@ -1340,12 +1343,15 @@ runPhase LlvmOpt input_fn dflags
runPhase
LlvmLlc
input_fn
dflags
=
do
ver
<-
io
$
readIORef
(
llvmVersion
dflags
)
let
lc_opts
=
getOpts
dflags
opt_lc
opt_lvl
=
max
0
(
min
2
$
optLevel
dflags
)
rmodel
|
opt_PIC
=
"pic"
|
not
opt_Static
=
"dynamic-no-pic"
|
otherwise
=
"static"
tbaa
|
dopt
Opt_LlvmTBAA
dflags
=
"--enable-tbaa=true"
tbaa
|
ver
<
29
=
""
-- no tbaa in 2.8 and earlier
|
dopt
Opt_LlvmTBAA
dflags
=
"--enable-tbaa=true"
|
otherwise
=
"--enable-tbaa=false"
-- hidden debugging flag '-dno-llvm-mangler' to skip mangling
...
...
compiler/main/DynFlags.hs
View file @
87837181
...
...
@@ -588,7 +588,9 @@ data DynFlags = DynFlags {
haddockOptions
::
Maybe
String
,
-- | what kind of {-# SCC #-} to add automatically
profAuto
::
ProfAuto
profAuto
::
ProfAuto
,
llvmVersion
::
IORef
(
Int
)
}
class
HasDynFlags
m
where
...
...
@@ -824,13 +826,15 @@ initDynFlags dflags = do
refFilesToClean
<-
newIORef
[]
refDirsToClean
<-
newIORef
Map
.
empty
refGeneratedDumps
<-
newIORef
Set
.
empty
refLlvmVersion
<-
newIORef
28
return
dflags
{
ways
=
ways
,
buildTag
=
mkBuildTag
(
filter
(
not
.
wayRTSOnly
)
ways
),
rtsBuildTag
=
mkBuildTag
ways
,
filesToClean
=
refFilesToClean
,
dirsToClean
=
refDirsToClean
,
generatedDumps
=
refGeneratedDumps
ways
=
ways
,
buildTag
=
mkBuildTag
(
filter
(
not
.
wayRTSOnly
)
ways
),
rtsBuildTag
=
mkBuildTag
ways
,
filesToClean
=
refFilesToClean
,
dirsToClean
=
refDirsToClean
,
generatedDumps
=
refGeneratedDumps
,
llvmVersion
=
refLlvmVersion
}
-- | The normal 'DynFlags'. Note that they is not suitable for use in this form
...
...
@@ -922,7 +926,8 @@ defaultDynFlags mySettings =
extensions
=
[]
,
extensionFlags
=
flattenExtensionFlags
Nothing
[]
,
log_action
=
defaultLogAction
,
profAuto
=
NoProfAuto
profAuto
=
NoProfAuto
,
llvmVersion
=
panic
"defaultDynFlags: No llvmVersion"
}
type
LogAction
=
Severity
->
SrcSpan
->
PprStyle
->
MsgDoc
->
IO
()
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment