summaryrefslogtreecommitdiff
path: root/compiler/cmm
Commit message (Collapse)AuthorAgeFilesLines
...
* Fixed typoDaniel Fischer2011-10-041-1/+1
|
* Fix validate with old bootstrapping compilersIan Lynagh2011-10-021-0/+5
| | | | | They weren't smart enough to see our GADT pattern matches are complete, so gave a warning.
* Replace a -w flag with the more specific -fno-warn-deprecationsIan Lynagh2011-10-021-1/+1
|
* Fix warnings in cmm/CLabel.hsIan Lynagh2011-10-021-18/+59
|
* Whitespace only in cmm/CLabel.hsIan Lynagh2011-10-021-325/+325
|
* Remove remaining CPP from cmm/CLabel.hsIan Lynagh2011-10-021-26/+15
|
* More CPP removal: pprDynamicLinkerAsmLabel in CLabelIan Lynagh2011-10-0211-488/+482
| | | | And some knock-on changes
* Some CPP removalIan Lynagh2011-10-021-24/+31
|
* disable a debug traceSimon Marlow2011-08-251-1/+2
|
* refactoring and fixing the stage 2 compilationSimon Marlow2011-08-253-41/+42
|
* eliminate ConInfoSimon Marlow2011-08-251-1/+5
|
* Remove another use of mkConInfoSimon Marlow2011-08-251-16/+37
|
* Refactoring: reduce usage of mkConInfo, with a view to killing itSimon Marlow2011-08-251-16/+47
|
* rewrite branchChainElim; other refactoring in CmmContFlowOptSimon Marlow2011-08-252-133/+145
|
* add note about branchChainElimSimon Marlow2011-08-251-0/+4
|
* use qualified names for claritySimon Marlow2011-08-251-4/+4
|
* Renaming onlySimon Peyton Jones2011-08-2514-92/+100
| | | | | CmmTop -> CmmDecl CmmPgm -> CmmGroup
* fix type tags for RTS-defined info tablesSimon Marlow2011-08-253-59/+65
|
* More refactoring (CgRep)Simon Peyton Jones2011-08-254-1/+432
| | | | | | * Move CgRep (private to old codgen) from SMRep to ClosureInfo * Avoid using CgRep in new codegen * Move SMRep and Bitmap from codeGen/ to cmm/
* Snapshot of codegen refactoring to share with simonpjSimon Marlow2011-08-2525-746/+960
|
* Use double method, not the hacked rational method.David Terei2011-08-241-1/+2
|
* More cmm-notesSimon Peyton Jones2011-08-221-14/+36
|
* 'Fix' a validation problem when bootstrap is 7.2.1David Terei2011-08-193-3/+3
| | | | | | Problem is with GADTs in new code gen and incomplete pattern warnings. Just disabled the warning really and created #5424 to track an actual fix.
* Add popCnt# primopJohan Tibell2011-08-161-0/+2
|
* fix some #ifdefs that were making compilation with 7.2.1 fail - theSimon Marlow2011-08-141-1/+1
| | | | safified array package is not in 7.2.1
* Update to work with Alex 3.0: basically disabling Alex's new UnicodeSimon Marlow2011-08-051-3/+14
| | | | | | support because we have our own, and defining alexGetByte instead of alexGetChar (actually we also define alexGetChar, for backwards compatibility).
* Fix import DEPRECATE failures for castSTUArraySimon Peyton Jones2011-08-021-0/+7
|
* Merge branch 'master' of http://darcs.haskell.org/ghcSimon Peyton Jones2011-07-295-89/+53
|\
| * We no longer need to mark Entry as local or notMax Bolingbroke2011-07-291-6/+5
| |
| * Remove last use of entryLblToInfoLblMax Bolingbroke2011-07-292-19/+12
| |
| * Common up uses of entryLblToInfoLbl in CmmProcPointMax Bolingbroke2011-07-291-20/+21
| |
| * Eliminate cvtToSRTLbl (dead code)Max Bolingbroke2011-07-281-9/+1
| |
| * Eliminate localiseLabelMax Bolingbroke2011-07-281-6/+0
| |
| * Eliminate infoLblToEntryLblMax Bolingbroke2011-07-281-12/+3
| |
| * Put the info CLabel in CmmInfoTable rather than a localness flag, tidy up ↵Max Bolingbroke2011-07-284-22/+16
| | | | | | | | some info<->entry conversions
* | Comments about _info and _closure labelsSimon Peyton Jones2011-07-291-0/+27
|/
* White space onlySimon Peyton Jones2011-07-271-2/+4
|
* More work towards cross-compilationIan Lynagh2011-07-159-89/+109
| | | | | | | | | | | | There's now a variant of the Outputable class that knows what platform we're targetting: class PlatformOutputable a where pprPlatform :: Platform -> a -> SDoc pprPlatformPrec :: Platform -> Rational -> a -> SDoc and various instances have had to be converted to use that class, and we pass Platform around accordingly.
* Remove 'threadsafe' FFI importsIan Lynagh2011-07-131-4/+2
| | | | They've been deprecated since GHC 6.12.
* Don't export the _info symbol for the data constructor worker bindingsMax Bolingbroke2011-07-077-33/+49
| | | | | | | This is safe because GHC never generates a fast call to a data constructor worker: if the call is seen statically it will be eta-expanded and the allocation of the data will be inlined. We still need to export the _closure in case the constructor is used in an unapplied fashion.
* Refactoring: explicitly mark whether we have an info table in RawCmmMax Bolingbroke2011-07-065-18/+20
| | | | | | | | | | | | I introduced this to support explicitly recording the info table label in RawCmm for another patch I am working on, but it turned out to lead to significant simplification in those parts of the compiler that consume RawCmm. Now, instead of lots of tests for null [CmmStatic] we have a simple test of a Maybe, and have reduced the number of guys that need to know how to convert entry->info labels by a TON. There are only 3 callers of that function now!
* Don't export SRT labelsMax Bolingbroke2011-07-051-1/+5
|
* Remove the unused CmmAlign and CmmDataLabel from CmmStaticMax Bolingbroke2011-07-054-19/+8
|
* Refactoring: use a structured CmmStatics type rather than [CmmStatic]Max Bolingbroke2011-07-057-35/+36
| | | | | | | | | | | | | | | | | | I observed that the [CmmStatics] within CmmData uses the list in a very stylised way. The first item in the list is almost invariably a CmmDataLabel. Many parts of the compiler pattern match on this list and fail if this is not true. This patch makes the invariant explicit by introducing a structured type CmmStatics that holds the label and the list of remaining [CmmStatic]. There is one wrinkle: the x86 backend sometimes wants to output an alignment directive just before the label. However, this can be easily fixed up by parameterising the native codegen over the type of CmmStatics (though the GenCmmTop parameterisation) and using a pair (Alignment, CmmStatics) there instead. As a result, I think we will be able to remove CmmAlign and CmmDataLabel from the CmmStatic data type, thus nuking a lot of code and failing pattern matches. This change will come as part of my next patch.
* comment updatesSimon Marlow2011-06-284-43/+17
|
* Fix warnings in PprCDavid Terei2011-06-231-40/+48
|
* Add support for new mem primops to C backendDavid Terei2011-06-231-9/+9
|
* Iteratively try to fold expressions before constant propagationJohan Tibell2011-06-231-2/+5
| | | | | | | | | | | | | Before this change the constant expression _ccI::I64 = (16 >> 7) + 1; wouldn't be propagated, as it wouldn't be completely folded. This meant that this expression wouldn't be unrolled thawArray# arr# 0# 16# s# The new code generator already does this correctly.
* Merge branch 'master' of http://darcs.haskell.org/ghcIan Lynagh2011-06-176-274/+308
|\
| * Port MachOp folding to new code generator.Edward Z. Yang2011-06-173-180/+259
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Rewrote cmmMachOpFold to cmmMachOpFoldM, which returns Nothing if no folding took place. * Wrote some generic mapping functions which take functions of form 'a -> Maybe a' and are smart about sharing. * Split up optimizations from PIC and PPC work in the native codegen, so they'll be easier to turn off later (they are not currently being turned off, however.) * Whitespace fixes! ToDo: Turn off MachOp folding when new codegenerator is being used. Signed-off-by: Edward Z. Yang <ezyang@mit.edu>