summaryrefslogtreecommitdiff
path: root/compiler/nativeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* Pass platform down to lastintIan Lynagh2012-08-215-25/+25
|
* Pass platform down to lastxmmIan Lynagh2012-08-2114-108/+129
|
* Move activeStgRegs into CodeGen.PlatformIan Lynagh2012-08-211-1/+1
|
* Reduce the likelihood of x64/x86-64 changes breaking the build on other ↵Erik de Castro Lopo2012-08-211-36/+20
| | | | | | | | | | | | | | arches (#7083). Code that needs to differentiate between i386 and x86-64 should now be written as if x86-64 is the default and i386 is the special case. Eg: # if i386_TARGET_ARCH someFuncion = ..... # else someFuncion = ..... # endif
* Fix build failure on OS X (#7119)Simon Marlow2012-08-091-1/+2
| | | | | When refactoring this recently I accidentally put the dead-strip-preventer symbol (only used on OS X) in the wrong section.
* Start separating out the RTS and Haskell imports of MachRegs.hIan Lynagh2012-08-064-4/+4
| | | | No functional differences yet
* Convert prefix uses of (<>) to infix <>Ian Lynagh2012-08-052-5/+5
|
* Merge branch 'master' of darcs.haskell.org:/srv/darcs//ghcIan Lynagh2012-08-052-33/+63
|\
| * comment wibbleSimon Marlow2012-08-021-1/+1
| |
| * Disable the mini-inliner when using the new codegenSimon Marlow2012-08-021-1/+4
| | | | | | | | | | The new sinker is at least as powerful, and the mini-inliner sometimes even makes things worse.
| * Improve code generated when real registers are clobberedSimon Marlow2012-07-311-32/+59
| | | | | | | | | | | | | | | | There was a long-standing ToDo here that I just did: if a real register is clobbered by the current instruction, then we should move it to another free register rather than spilling it to memory. This case crops up more often now that the register allocator can allocate into the fixed Rn registers.
* | Merge branch 'master' of darcs.haskell.org:/srv/darcs//ghcIan Lynagh2012-07-307-153/+161
|\ \ | |/
| * fix warningsSimon Marlow2012-07-301-1/+1
| |
| * fix merge bugsSimon Marlow2012-07-302-7/+7
| |
| * New codegen: do not split proc-points when using the NCGSimon Marlow2012-07-306-143/+157
| | | | | | | | | | | | | | | | | | Proc-point splitting is only required by backends that do not support having proc-points within a code block (that is, everything except the native backend, i.e. LLVM and C). Not doing proc-point splitting saves some compilation time, and might produce slightly better code in some cases.
| * bugfix: cope when a source reg is dead at a join pointSimon Marlow2012-07-301-10/+4
| | | | | | | | | | We didn't trip over this one until I started generating code without proc-point splitting, which has more join points and loops.
* | Remove nativeGen/PprInstruction.hsIan Lynagh2012-07-291-2/+0
|/ | | | Looks like I accidentally added it a while ago
* Remove pprNatCmmDecl's Platform argumentIan Lynagh2012-07-244-56/+64
|
* Remove unnecessary Platform arguments in nativeGen/PPC/Ppr.hsIan Lynagh2012-07-241-207/+214
|
* GHC 7.4 is now required for building HEADIan Lynagh2012-07-201-5/+0
|
* Remove most of the redundant Platform argument passing in nativeGen/X86/Ppr.hsIan Lynagh2012-07-181-327/+334
|
* Remove a load of Platform argumentsIan Lynagh2012-07-181-117/+117
| | | | We don't need them any more, now that we have DynFlags inside SDoc
* Whitespace only in nativeGen/SPARC/Ppr.hsIan Lynagh2012-07-181-305/+300
|
* Make -fPIC a dynamic flagIan Lynagh2012-07-165-73/+76
| | | | | | Hopefully I've kept the logic the same, and we now generate warnings if the user does -fno-PIC but we ignore them (e.g. because they're on OS X amd64).
* Fix a warningIan Lynagh2012-07-161-1/+7
|
* Remove redundant warning suppressionIan Lynagh2012-07-161-1/+0
|
* Move -fno-warn-orphan flag into individual modulesIan Lynagh2012-07-154-0/+4
|
* Fix build for non x86/x86_64 (#7065)Paolo Capriotti2012-07-111-1/+3
|
* Fix overlapping patterns warning (#7065)Paolo Capriotti2012-07-111-8/+10
|
* Don't re-allocate %esi on x86.Simon Marlow2012-07-091-0/+17
| | | | | | | | | | | | | Recent changes have freed up %esi for general use on x86 when it is not being used for R1. However, x86 has a non-uniform register architecture where there is no 8-bit equivalent of %esi. The register allocators aren't sophisticated enough to cope with this, so we have to back off and treat %esi as non-allocatable for now. (of course, LLVM doesn't suffer from this problem) One workaround would be to change the calling convention to use %rbx for R1, however we can't change the calling convention now without patching LLVM too.
* Fix compile failure on non x86/x86-64 (#7054).Erik de Castro Lopo2012-07-091-0/+5
|
* fix warningSimon Marlow2012-07-061-1/+0
|
* Allow the register allocator access to argument regs (R1.., F1.., etc.)Simon Marlow2012-07-065-81/+61
| | | | | | | | | | | | | | | This was made possible by the recent change to codeGen to attach the live GlobalRegs to every CmmJump, and we'll be relying on it quite heavily in the new code generator too. What this means essentially is that when we see x = R1 the register allocator will automatically assign x to R1 and generate no code at all (also known as "coalescing"). It wasn't possible before because the register allocator had to assume that R1 was always live, because it didn't have access to accurate liveness information.
* bugfix: coalescing moves from RealReg to VirtualReg got broken at some pointSimon Marlow2012-07-061-1/+6
|
* Fix merge-related problemsSimon Marlow2012-07-041-1/+1
|
* Merge remote-tracking branch 'origin/master' into newcgSimon Marlow2012-07-0425-1900/+2004
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * origin/master: (756 commits) don't crash if argv[0] == NULL (#7037) -package P was loading all versions of P in GHCi (#7030) Add a Note, copying text from #2437 improve the --help docs a bit (#7008) Copy Data.HashTable's hashString into our Util module Build fix Build fixes Parse error: suggest brackets and indentation. Don't build the ghc DLL on Windows; works around trac #5987 On Windows, detect if DLLs have too many symbols; trac #5987 Add some more Integer rules; fixes #6111 Fix PA dfun construction with silent superclass args Add silent superclass parameters to the vectoriser Add silent superclass parameters (again) Mention Generic1 in the user's guide Make the GHC API a little more powerful. tweak llvm version warning message New version of the patch for #5461. Fix Word64ToInteger conversion rule. Implemented feature request on reconfigurable pretty-printing in GHCi (#5461) ... Conflicts: compiler/basicTypes/UniqSupply.lhs compiler/cmm/CmmBuildInfoTables.hs compiler/cmm/CmmLint.hs compiler/cmm/CmmOpt.hs compiler/cmm/CmmPipeline.hs compiler/cmm/CmmStackLayout.hs compiler/cmm/MkGraph.hs compiler/cmm/OldPprCmm.hs compiler/codeGen/CodeGen.lhs compiler/codeGen/StgCmm.hs compiler/codeGen/StgCmmBind.hs compiler/codeGen/StgCmmLayout.hs compiler/codeGen/StgCmmUtils.hs compiler/main/CodeOutput.lhs compiler/main/HscMain.hs compiler/nativeGen/AsmCodeGen.lhs compiler/simplStg/SimplStg.lhs
| * Remove some more redundant Platform argumentsIan Lynagh2012-06-201-1/+1
| |
| * Remove some more redundant Platform argumentsIan Lynagh2012-06-202-5/+3
| |
| * Make -dppr-cols a dynamic flagIan Lynagh2012-06-181-1/+1
| |
| * Stop exporting, and stop using, some deprecated functionsIan Lynagh2012-06-132-5/+5
| |
| * Use 'ppr' rather than 'pprCLabel platform'Ian Lynagh2012-06-131-19/+19
| | | | | | | | Means we can stop passing platform around as much.
| * Remove some more Platform argumentsIan Lynagh2012-06-132-12/+6
| |
| * Remove more unused Platform argumentsIan Lynagh2012-06-134-12/+9
| |
| * Remove lots of commented out 'in' keywordsIan Lynagh2012-06-132-35/+0
| |
| * Remove PlatformOutputableIan Lynagh2012-06-1313-99/+86
| | | | | | | | | | We can now get the Platform from the DynFlags inside an SDoc, so we no longer need to pass the Platform in.
| * Whitespace only in nativeGen/RegAlloc/Graph/Main.hsIan Lynagh2012-06-131-306/+299
| |
| * Add DynFlags to the SDoc stateIan Lynagh2012-06-121-2/+2
| |
| * Use SDoc rather than Doc in the native gensIan Lynagh2012-06-129-279/+236
| | | | | | | | This avoid lots of converting back and forth between the two types.
| * Pass DynFlags down to showSDocIan Lynagh2012-06-121-4/+3
| |
| * Pass DynFlags to renderWithStyleIan Lynagh2012-06-111-1/+1
| |