[commit: ghc] master: Encode alignment in MO_Memcpy and friends (681973c)
git at git.haskell.org
git at git.haskell.org
Tue Jun 16 18:15:55 UTC 2015
Repository : ssh://git@git.haskell.org/ghc
On branch : master
Link : http://ghc.haskell.org/trac/ghc/changeset/681973c31c614185229bdae4f6b7ab4f6e64753d/ghc
>---------------------------------------------------------------
commit 681973c31c614185229bdae4f6b7ab4f6e64753d
Author: Ben Gamari <bgamari.foss at gmail.com>
Date: Tue Jun 16 20:16:08 2015 +0200
Encode alignment in MO_Memcpy and friends
Summary:
Alignment needs to be a compile-time constant. Previously the code
generators had to jump through hoops to ensure this was the case as the
alignment was passed as a CmmExpr in the arguments list. Now we take
care of this up front.
This fixes #8131.
Authored-by: Reid Barton <rwbarton at gmail.com>
Dusted-off-by: Ben Gamari <ben at smart-cactus.org>
Tests for T8131
Test Plan: Validate
Reviewers: rwbarton, austin
Reviewed By: rwbarton, austin
Subscribers: bgamari, carter, thomie
Differential Revision: https://phabricator.haskell.org/D624
GHC Trac Issues: #8131
>---------------------------------------------------------------
681973c31c614185229bdae4f6b7ab4f6e64753d
compiler/cmm/CmmMachOp.hs | 29 ++++++++-----
compiler/cmm/CmmParse.y | 37 +++++++++++-----
compiler/cmm/PprC.hs | 12 +++---
compiler/codeGen/StgCmmPrim.hs | 49 +++++++++++-----------
compiler/llvmGen/LlvmCodeGen/CodeGen.hs | 43 +++++++++----------
compiler/nativeGen/PPC/CodeGen.hs | 20 +++------
compiler/nativeGen/SPARC/CodeGen.hs | 21 +++-------
compiler/nativeGen/X86/CodeGen.hs | 25 ++++-------
includes/Cmm.h | 6 +--
rts/PrimOps.cmm | 8 ++--
.../should_fail}/Makefile | 0
.../should_fail}/T8131.cmm | 0
testsuite/tests/codeGen/should_fail/all.T | 3 ++
.../should_gen_asm/memcpy-unroll-conprop.cmm | 2 +-
.../tests/codeGen/should_run/cgrun069_cmm.cmm | 20 ++++-----
testsuite/tests/llvm/should_compile/T8131b.hs | 9 ++++
testsuite/tests/llvm/should_compile/all.T | 2 +-
17 files changed, 145 insertions(+), 141 deletions(-)
Diff suppressed because of size. To see it, use:
git diff-tree --root --patch-with-stat --no-color --find-copies-harder --ignore-space-at-eol --cc 681973c31c614185229bdae4f6b7ab4f6e64753d
More information about the ghc-commits
mailing list