[project @ 2005-08-10 11:09:05 by simonpj]
[ghc-hetmet.git] / ghc / rts / Makefile
index 934c429..0d09e79 100644 (file)
@@ -318,12 +318,20 @@ SRC_HC_OPTS += \
   -\#include ProfHeap.h \
   -\#include LdvProfile.h \
   -\#include Profiling.h \
-  -\#include Apply.h
+  -\#include OSThreads.h \
+  -\#include Apply.h \
+  -\#include SMP.h
 
 ifeq "$(Windows)" "YES"
 PrimOps_HC_OPTS += -\#include '<windows.h>' -\#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
 SRC_HC_OPTS += -fvia-C