simonmar    2005/11/08 04:56:04 PST

  Modified files:
    ghc/compiler/main    DriverPipeline.hs 
  Log:
  gcc's -fstrict-aliasing is biting us when we use the stack to store
  different types of objects.  For example:
  
    *((StgDouble*)((W_)Sp-8)) = *((StgDouble*)((W_)Sp+8));
    Sp[1] = (W_)&s1Cx_info;
  
  gcc feels free to reorder these two lines, because they refer to
  differently typed objects, even though the assignment to Sp[1] clearly
  aliases the read from the same location.
  
  Trying to fix this by accessing locations using union types might be
  possible, but I took the sledgehammer approach of
  -fno-strict-aliasing.  This is justified to a certain extent because
  our generated C code is derived from a very weakly-typed internal
  language (C--).
  
  Revision  Changes    Path
  1.214     +20 -3     fptools/ghc/compiler/main/DriverPipeline.hs
_______________________________________________
Cvs-ghc mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to