summaryrefslogtreecommitdiff
path: root/compiler/llvmGen/Llvm/MetaData.hs
Commit message (Collapse)AuthorAgeFilesLines
* compiler: introduce custom "GhcPrelude" PreludeHerbert Valerio Riedel2017-09-191-0/+2
| | | | | | | | | | | | | | | | | | This switches the compiler/ component to get compiled with -XNoImplicitPrelude and a `import GhcPrelude` is inserted in all modules. This is motivated by the upcoming "Prelude" re-export of `Semigroup((<>))` which would cause lots of name clashes in every modulewhich imports also `Outputable` Reviewers: austin, goldfire, bgamari, alanz, simonmar Reviewed By: bgamari Subscribers: goldfire, rwbarton, thomie, mpickering, bgamari Differential Revision: https://phabricator.haskell.org/D3989
* Spelling fixes in comments [ci skip]Gabor Greif2017-01-181-1/+1
|
* llvmGen: Add strictness to metadata fieldsBen Gamari2016-06-191-5/+5
|
* llvmGen: Consolidate MetaExpr pretty-printingBen Gamari2016-06-181-2/+3
| | | | Previously this logic was duplicated needlessly.
* llvmGen: Make metadata ids a newtypeBen Gamari2016-06-181-4/+13
| | | | | These were previously just represented as Ints which was needlessly vague.
* llvmGen: move to LLVM 3.6 exclusivelyBen Gamari2015-02-091-7/+7
| | | | | | | | | | | | | | | | | | | Summary: Rework llvmGen to use LLVM 3.6 exclusively. The plans for the 7.12 release are to ship LLVM alongside GHC in the interests of user (and developer) sanity. Along the way, refactor TNTC support to take advantage of the new `prefix` data support in LLVM 3.6. This allows us to drop the section-reordering component of the LLVM mangler. Test Plan: Validate, look at emitted code Reviewers: dterei, austin, scpmw Reviewed By: austin Subscribers: erikd, awson, spacekitteh, thomie, carter Differential Revision: https://phabricator.haskell.org/D530 GHC Trac Issues: #10074
* Fix new Haddock doc parse failures.Austin Seipp2014-01-121-7/+6
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* LLVM refactor cleanupsPeter Wortmann2013-06-271-1/+0
| | | | | Slightly more documentation, removed unused label map (huh), removed MonadIO instance on LlvmM to improve encapsulation.
* Use SDoc for all LLVM pretty-printingPeter Wortmann2013-06-271-7/+6
| | | | | | | This patch reworks some parts of the LLVM pretty-printing code that were still using Show and String. Now we should be using SDoc and Outputable throughout. Note that many get*Name functions become pp*Name here as a side-effect.
* Iteration on dterei's metadata designPeter Wortmann2013-06-271-50/+9
| | | | | | | | | | | | | | | | | | | | | - MetaArgs is not needed, as variables are already meta data - Same goes for MetaVal - its only reason for existing seems to be to support LLVM's strange pretty-printing for meta-data annotations, and I feel that is better to keep the data structure clean and handle it in the pretty-printing instead. - Rename "MetaData" to "MetaAnnot". Meta-data is still meta-data when it is not associated with an expression or statement - for example compile unit data for debugging. I feel the old name was a bit misleading. - Make the renamed MetaAnnot a proper data type instead of a type alias for a pair. - Rename "MetaExpr" constructor to "MetaStruct". As the data is much more like a LLVM structure (not array, as it can contain values). - Fix a warning
* Add ability to call functions with metadata as arguments to LLVMDavid Terei2013-06-271-8/+18
| | | | backend.
* Rework LLVM metadata representation to be more accurate.David Terei2013-06-271-0/+117