Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Handle II16 size value in PowerPC code generator. | Erik de Castro Lopo | 2012-09-08 | 1 | -2/+2 | |
| | ||||||
* | Fix the PPC and SPARC NCGs to handle multiple info tables in a proc | Simon Marlow | 2012-09-07 | 2 | -32/+42 | |
| | ||||||
* | Make the ways dynamic | Ian Lynagh | 2012-09-03 | 1 | -8/+7 | |
| | ||||||
* | Load the PIC base register on every entry point | Simon Marlow | 2012-08-31 | 1 | -7/+27 | |
| | | | | (fixes dyn tests with -fnew-codegen on x86) | |||||
* | Remove some CPP from nativeGen/X86/Instr.hs | Ian Lynagh | 2012-08-28 | 1 | -5/+4 | |
| | ||||||
* | Remove some CPP from nativeGen/PPC/Regs.h | Ian Lynagh | 2012-08-28 | 3 | -27/+16 | |
| | ||||||
* | Remove some old commented-out code | Ian Lynagh | 2012-08-28 | 1 | -128/+0 | |
| | ||||||
* | Move more code into codeGen/CodeGen/Platform.hs | Ian Lynagh | 2012-08-28 | 18 | -974/+202 | |
| | | | | | | | | HaskellMachRegs.h is no longer included in anything under compiler/ Also, includes/CodeGen.Platform.hs now includes "stg/MachRegs.h" rather than <stg/MachRegs.h> which means that we always get the file from the tree, rather than from the bootstrapping compiler. | |||||
* | Fix -fPIC with the new code generator | Simon Marlow | 2012-08-28 | 4 | -7/+7 | |
| | | | | The CmmBlocks inside CmmExprs were not getting the PIC treatment | |||||
* | Fix for optimizer bug on linux-powerpc (#6156). | Erik de Castro Lopo | 2012-08-23 | 1 | -4/+4 | |
| | ||||||
* | More CPP removal in nativeGen/X86/Regs.hs | Ian Lynagh | 2012-08-22 | 2 | -12/+10 | |
| | ||||||
* | More CPP removal in nativeGen/X86/Regs.hs | Ian Lynagh | 2012-08-22 | 1 | -15/+10 | |
| | ||||||
* | Remove some CPP in nativeGen/X86/Regs.hs | Ian Lynagh | 2012-08-22 | 2 | -30/+24 | |
| | ||||||
* | Make the PPC globalRegMaybe more similar to the other platforms' | Ian Lynagh | 2012-08-21 | 2 | -27/+27 | |
| | ||||||
* | Whitespace only in compiler/nativeGen/PPC/Regs.hs | Ian Lynagh | 2012-08-21 | 1 | -201/+194 | |
| | ||||||
* | Whitespace only in nativeGen/RegAlloc/Linear/X86/FreeRegs.hs | Ian Lynagh | 2012-08-21 | 1 | -24/+17 | |
| | ||||||
* | Remove unused 'targetWordSize' | Ian Lynagh | 2012-08-21 | 1 | -6/+0 | |
| | ||||||
* | Pass platform down to lastint | Ian Lynagh | 2012-08-21 | 5 | -25/+25 | |
| | ||||||
* | Pass platform down to lastxmm | Ian Lynagh | 2012-08-21 | 14 | -108/+129 | |
| | ||||||
* | Move activeStgRegs into CodeGen.Platform | Ian Lynagh | 2012-08-21 | 1 | -1/+1 | |
| | ||||||
* | Reduce the likelihood of x64/x86-64 changes breaking the build on other ↵ | Erik de Castro Lopo | 2012-08-21 | 1 | -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 Marlow | 2012-08-09 | 1 | -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.h | Ian Lynagh | 2012-08-06 | 4 | -4/+4 | |
| | | | | No functional differences yet | |||||
* | Convert prefix uses of (<>) to infix <> | Ian Lynagh | 2012-08-05 | 2 | -5/+5 | |
| | ||||||
* | Merge branch 'master' of darcs.haskell.org:/srv/darcs//ghc | Ian Lynagh | 2012-08-05 | 2 | -33/+63 | |
|\ | ||||||
| * | comment wibble | Simon Marlow | 2012-08-02 | 1 | -1/+1 | |
| | | ||||||
| * | Disable the mini-inliner when using the new codegen | Simon Marlow | 2012-08-02 | 1 | -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 clobbered | Simon Marlow | 2012-07-31 | 1 | -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//ghc | Ian Lynagh | 2012-07-30 | 7 | -153/+161 | |
|\ \ | |/ | ||||||
| * | fix warnings | Simon Marlow | 2012-07-30 | 1 | -1/+1 | |
| | | ||||||
| * | fix merge bugs | Simon Marlow | 2012-07-30 | 2 | -7/+7 | |
| | | ||||||
| * | New codegen: do not split proc-points when using the NCG | Simon Marlow | 2012-07-30 | 6 | -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 point | Simon Marlow | 2012-07-30 | 1 | -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.hs | Ian Lynagh | 2012-07-29 | 1 | -2/+0 | |
|/ | | | | Looks like I accidentally added it a while ago | |||||
* | Remove pprNatCmmDecl's Platform argument | Ian Lynagh | 2012-07-24 | 4 | -56/+64 | |
| | ||||||
* | Remove unnecessary Platform arguments in nativeGen/PPC/Ppr.hs | Ian Lynagh | 2012-07-24 | 1 | -207/+214 | |
| | ||||||
* | GHC 7.4 is now required for building HEAD | Ian Lynagh | 2012-07-20 | 1 | -5/+0 | |
| | ||||||
* | Remove most of the redundant Platform argument passing in nativeGen/X86/Ppr.hs | Ian Lynagh | 2012-07-18 | 1 | -327/+334 | |
| | ||||||
* | Remove a load of Platform arguments | Ian Lynagh | 2012-07-18 | 1 | -117/+117 | |
| | | | | We don't need them any more, now that we have DynFlags inside SDoc | |||||
* | Whitespace only in nativeGen/SPARC/Ppr.hs | Ian Lynagh | 2012-07-18 | 1 | -305/+300 | |
| | ||||||
* | Make -fPIC a dynamic flag | Ian Lynagh | 2012-07-16 | 5 | -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 warning | Ian Lynagh | 2012-07-16 | 1 | -1/+7 | |
| | ||||||
* | Remove redundant warning suppression | Ian Lynagh | 2012-07-16 | 1 | -1/+0 | |
| | ||||||
* | Move -fno-warn-orphan flag into individual modules | Ian Lynagh | 2012-07-15 | 4 | -0/+4 | |
| | ||||||
* | Fix build for non x86/x86_64 (#7065) | Paolo Capriotti | 2012-07-11 | 1 | -1/+3 | |
| | ||||||
* | Fix overlapping patterns warning (#7065) | Paolo Capriotti | 2012-07-11 | 1 | -8/+10 | |
| | ||||||
* | Don't re-allocate %esi on x86. | Simon Marlow | 2012-07-09 | 1 | -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 Lopo | 2012-07-09 | 1 | -0/+5 | |
| | ||||||
* | fix warning | Simon Marlow | 2012-07-06 | 1 | -1/+0 | |
| | ||||||
* | Allow the register allocator access to argument regs (R1.., F1.., etc.) | Simon Marlow | 2012-07-06 | 5 | -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. |