summaryrefslogtreecommitdiff
path: root/utils/genprimopcode
Commit message (Collapse)AuthorAgeFilesLines
* Automatically add the $(exeext) to program namesIan Lynagh2013-03-031-1/+1
| | | | | | | We now define _PROGNAME, and _PROG is automatically defined with $(exeext). This will shortly automatically use the right exeext depending on what stage it is being compiled with (exeext may be different for different stages when cross-compiling).
* Define $(prog)_INPLACE variables automatically, and start using themIan Lynagh2013-03-031-1/+1
|
* Add a primop attribute llvm_only.Geoffrey Mainland2013-02-011-6/+6
| | | | | The llvm_only attribute indicates that a primop is only available when using the LLVM back-end.
* Add the Int64X2# primitive type and associated primops.Geoffrey Mainland2013-02-011-0/+2
|
* Add the DoubleX2# primitive type and associated primops.Geoffrey Mainland2013-02-011-4/+6
|
* Add the Int32X4# primitive type and associated primops.Paul Monday2013-02-011-2/+5
|
* Add the Float32X4# primitive type and associated primops.Geoffrey Mainland2013-02-011-5/+23
| | | | | | | | | | | | | This patch lays the groundwork needed for primop support for SIMD vectors. In addition to the groundwork, we add support for the FloatX4# primitive type and associated primops. * Add the FloatX4# primitive type and associated primops. * Add CodeGen support for Float vectors. * Compile vector operations to LLVM vector operations in the LLVM code generator. * Make the x86 native backend fail gracefully when encountering vector primops. * Only generate primop wrappers for vector primops when using LLVM.
* Add fixity information to primops (ticket #6026)Michal Terepeta2012-11-235-3/+58
|
* Build the dynamic way by default on Linux/amd64Ian Lynagh2012-10-031-0/+1
| | | | | | | | | | | | | This required various build system changes to get the build to go through. In the inplace shell wrappers, we set LD_LIBRARY_PATH to allow programs to find their libraries. In the future, we might change the inplace tree to be the same shape as an installed tree instead. However, this would mean changing the way we do installation, as currently we use cabal's installation methods to install the libraries, but that only works if the libraries are under libraries/foo/dist-install/build/..., rather than in inplace/lib/...
* Tabs -> SpacesDavid Terei2012-03-234-236/+219
|
* Add new primtypes 'ArrayArray#' and 'MutableArrayArray#'Manuel M T Chakravarty2011-12-071-15/+16
| | | | | | | | The primitive array types, such as 'ByteArray#', have kind #, but are represented by pointers. They are boxed, but unpointed types (i.e., they cannot be 'undefined'). The two categories of array types —[Mutable]Array# and [Mutable]ByteArray#— are containers for unboxed (and unpointed) as well as for boxed and pointed types. So far, we lacked support for containers for boxed, unpointed types (i.e., containers for the primitive arrays themselves). This is what the new primtypes provide. Containers for boxed, unpointed types are crucial for the efficient implementation of scattered nested arrays, which are central to the new DPH backend library dph-lifted-vseg. Without such containers, we cannot eliminate all unboxing from the inner loops of traversals processing scattered nested arrays.
* Use -fwarn-tabs when validatingIan Lynagh2011-11-042-0/+14
| | | | | We only use it for "compiler" sources, i.e. not for libraries. Many modules have a -fno-warn-tabs kludge for now.
* Handle HValues slightly nicerIan Lynagh2011-10-031-0/+1
| | | | | | We now have addrToAny# rather than addrToHValue#, and both addrToAny# and mkApUpd0# return "Any" rather than "a". This makes it a little easier to see what's going on, and fixes a warning in ByteCodeLink.
* Implement -XConstraintKindMax Bolingbroke2011-09-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Basically as documented in http://hackage.haskell.org/trac/ghc/wiki/KindFact, this patch adds a new kind Constraint such that: Show :: * -> Constraint (?x::Int) :: Constraint (Int ~ a) :: Constraint And you can write *any* type with kind Constraint to the left of (=>): even if that type is a type synonym, type variable, indexed type or so on. The following (somewhat related) changes are also made: 1. We now box equality evidence. This is required because we want to give (Int ~ a) the *lifted* kind Constraint 2. For similar reasons, implicit parameters can now only be of a lifted kind. (?x::Int#) => ty is now ruled out 3. Implicit parameter constraints are now allowed in superclasses and instance contexts (this just falls out as OK with the new constraint solver) Internally the following major changes were made: 1. There is now no PredTy in the Type data type. Instead GHC checks the kind of a type to figure out if it is a predicate 2. There is now no AClass TyThing: we represent classes as TyThings just as a ATyCon (classes had TyCons anyway) 3. What used to be (~) is now pretty-printed as (~#). The box constructor EqBox :: (a ~# b) -> (a ~ b) 4. The type LCoercion is used internally in the constraint solver and type checker to represent coercions with free variables of type (a ~ b) rather than (a ~# b)
* Follow ghc-prim changesIan Lynagh2011-08-261-1/+1
|
* compatibility with Alex 3.0Simon Marlow2011-08-082-2/+12
|
* fix warningsSimon Marlow2011-05-241-1/+3
|
* Assign more accurate code sizes to primops, so that the inliningSimon Marlow2011-05-245-6/+13
| | | | | heuristics work better. Also removed the old unused "needs_wrapper" predicate for primops. This helps with #4978.
* Fix the type sanity test in genprimopcode's Syntax.hs2010-11-18Ian Lynagh2010-11-171-2/+2
| | | | | | We assume this is what it's supposed to be checking. Certainly the old test (t2 == t2) can't be right. Spotted by Andres Loeh.
* add some {-# LANGUAGE BangPatterns #-} to mollify GHCSimon Marlow2010-11-172-0/+2
|
* Fix building genprimopcode with GHC 7.0, and remove haskell98 importsIan Lynagh2010-11-022-4/+5
|
* Follow GHC.Bool/GHC.Types mergeIan Lynagh2010-10-231-2/+2
|
* Remove a redundant parameter for mkTupleTy (the arity)simonpj@microsoft.com2009-10-281-2/+1
|
* Include a pointer to GHC.Exts in the generated GHC.Prim docsIan Lynagh2009-08-111-0/+2
|
* Fix warnings when building with the HEADIan Lynagh2009-07-301-1/+0
|
* Put "%expect 0" directives in the .y filesIan Lynagh2009-06-081-0/+1
| | | | | With the exception of GHC's main Parser.y(.pp), which has 2 reduce/reduce conflicts
* Fix warnings in genprimopcodeIan Lynagh2009-05-231-9/+10
|
* Fix building with the HEADIan Lynagh2009-05-202-2/+2
|
* Add a header to all build system files:Simon Marlow2009-04-282-0/+24
| | | | | | | | | | | | | | # ----------------------------------------------------------------------------- # # (c) 2009 The University of Glasgow # # This file is part of the GHC build system. # # To understand how the build system works and how to modify it, see # http://hackage.haskell.org/trac/ghc/wiki/Building/Architecture # http://hackage.haskell.org/trac/ghc/wiki/Building/Modifying # # -----------------------------------------------------------------------------
* GHC new build system megapatchIan Lynagh2009-04-262-10/+7
|
* Move the "This is a generated file" to the top of GHC.PrimIan Lynagh2008-09-051-7/+7
|
* Make genprimopcode generate code that haddock 2 understandsIan Lynagh2008-09-051-10/+26
| | | | | | | Mainly this means adding a binding for all the exports, e.g. as well as gtAddr# :: Addr# -> Addr# -> Bool we also generate gtAddr# = let x = x in x
* bindists are now some way towards workingIan Lynagh2008-08-101-0/+3
|
* () is now in ghc-prim:GHC.UnitIan Lynagh2008-06-241-0/+1
|
* Generate a warning-free GHC.PrimopWrappers. ghc-prim is now -Wall clean.Ian Lynagh2008-06-241-18/+35
|
* Fix some inconsistencies in the code and docs of primitivesIan Lynagh2008-06-231-8/+4
| | | | | | We were inconsistent about whether to use the name "MutArr#" or "MutableArray#". Likewise ByteArr#/ByteArray# and MutByteArr#/MutableByteArray#.
* More commandline flag improvementsIan Lynagh2008-06-161-2/+2
| | | | | | | * Allow -ffoo flags to be deprecated * Mark some -ffoo flags as deprecated * Avoid using deprecated flags in error messages, in the build system, etc * Add a flag to en/disable the deprecated flag warning
* Cabalize ext-core toolsTim Chevalier2008-05-141-2/+3
| | | | | | | | I cabalized the ext-core tools, so now they can be built as a library. The driver program has to be built separately. Also updated genprimopcode to reflect the new module hierarchy for the Core tools.
* Generate fsLit not FSLIT in genprimopcodeIan Lynagh2008-04-121-1/+1
|
* Extra info in genprimopcode --make-ext-core-sourceTim Chevalier2008-04-141-10/+43
| | | | | | | The ext-core typechecker needs to know what types are valid for various kinds of literals, so I changed genprimopcode to dump out that information as well with --make-ext-core-source.
* Extend genprimopcode to print primop types for ext-coreTim Chevalier2008-04-101-2/+94
| | | | | | | I added a new flag, --make-ext-core-source, to genprimopcode. It prints out the type information for primops that the External Core typechecker needs. This replaces the old mechanism where the ext-core tools had a hard-wired Prims module that could get out of sync with the old primops.txt. Now, that won't happen.
* prelude/PrimOp is now mostly warning-freeIan Lynagh2008-03-291-5/+7
| | | | commutableOp seems to be unused, so we're no 100% there yet.
* Use _ rather than "other" in generated codeIan Lynagh2008-03-291-1/+1
|
* Add an OPTIONS -w pragma to utils/genprimopcode/Lexer.xxIan Lynagh2007-09-051-0/+7
| | | | SPJ reports that it has warnings (=> errors with -Werror) on Windows.
* Fix CodingStyle#Warnings URLsIan Lynagh2007-09-041-1/+1
|
* Use OPTIONS rather than OPTIONS_GHC for pragmasIan Lynagh2007-09-031-2/+2
| | | | | | | Older GHCs can't parse OPTIONS_GHC. This also changes the URL referenced for the -w options from WorkingConventions#Warnings to CodingStyle#Warnings for the compiler modules.
* Fix and supress some warnings, and turn on -Werror when validatingIan Lynagh2007-09-021-0/+7
|
* Warning Police: Unused importsMichael D. Adams2007-07-132-3/+1
|
* remove now-unused usage information (#1003)Simon Marlow2007-05-101-13/+0
|
* Remove redundant importIan Lynagh2007-04-111-1/+0
|