From: simonmar Date: Thu, 28 Jul 2005 13:12:02 +0000 (+0000) Subject: [project @ 2005-07-28 13:12:02 by simonmar] X-Git-Tag: Initial_conversion_from_CVS_complete~291 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=106fcfb0003ae4555db0495904864f8921c49202;p=ghc-hetmet.git [project @ 2005-07-28 13:12:02 by simonmar] comments about -fno-strict-aliasing --- diff --git a/ghc/rts/Makefile b/ghc/rts/Makefile index 0588a5b..0d09e79 100644 --- a/ghc/rts/Makefile +++ b/ghc/rts/Makefile @@ -326,6 +326,10 @@ ifeq "$(Windows)" "YES" PrimOps_HC_OPTS += -\#include '' -\#include win32/AsyncIO.h endif +# -O3 helps unroll some loops (especially in copy() with a constant argument). +# -fno-strict-aliasing is a hack because we often mix StgPtr and StgClosure pointers +# to the same object, and gcc will assume these don't alias. eg. it happens in +# copy() with gcc 3.4.3, the upd_evacee() assigments get moved before the object copy. GC_HC_OPTS += -optc-O3 -optc-fno-strict-aliasing # Cmm must be compiled via-C for now, because the NCG can't handle loops