summaryrefslogtreecommitdiff
path: root/compiler/nativeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* Handle II16 size value in PowerPC code generator.Erik de Castro Lopo2012-09-081-2/+2
|
* Fix the PPC and SPARC NCGs to handle multiple info tables in a procSimon Marlow2012-09-072-32/+42
|
* Make the ways dynamicIan Lynagh2012-09-031-8/+7
|
* Load the PIC base register on every entry pointSimon Marlow2012-08-311-7/+27
| | | | (fixes dyn tests with -fnew-codegen on x86)
* Remove some CPP from nativeGen/X86/Instr.hsIan Lynagh2012-08-281-5/+4
|
* Remove some CPP from nativeGen/PPC/Regs.hIan Lynagh2012-08-283-27/+16
|
* Remove some old commented-out codeIan Lynagh2012-08-281-128/+0
|
* Move more code into codeGen/CodeGen/Platform.hsIan Lynagh2012-08-2818-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 generatorSimon Marlow2012-08-284-7/+7
| | | | The CmmBlocks inside CmmExprs were not getting the PIC treatment
* Fix for optimizer bug on linux-powerpc (#6156).Erik de Castro Lopo2012-08-231-4/+4
|
* More CPP removal in nativeGen/X86/Regs.hsIan Lynagh2012-08-222-12/+10
|
* More CPP removal in nativeGen/X86/Regs.hsIan Lynagh2012-08-221-15/+10
|
* Remove some CPP in nativeGen/X86/Regs.hsIan Lynagh2012-08-222-30/+24
|
* Make the PPC globalRegMaybe more similar to the other platforms'Ian Lynagh2012-08-212-27/+27
|
* Whitespace only in compiler/nativeGen/PPC/Regs.hsIan Lynagh2012-08-211-201/+194
|
* Whitespace only in nativeGen/RegAlloc/Linear/X86/FreeRegs.hsIan Lynagh2012-08-211-24/+17
|
* Remove unused 'targetWordSize'Ian Lynagh2012-08-211-6/+0
|
* 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.