Skip to content
  • Tom Stellard's avatar
    gallivm: Make sure module has the correct data layout when pass manager runs · 14e525a4
    Tom Stellard authored
    The datalayout for modules was purposely not being set in order to work around
    the fact that the ExecutionEngine requires that the module's datalayout
    matches the datalayout of the TargetMachine that the ExecutionEngine is
    using.
    
    When the pass manager runs on a module with no datalayout, it uses
    the default datalayout which is little-endian.  This causes problems
    on big-endian targets, because some optimizations that are legal on
    little-endian or illegal on big-endian.
    
    To resolve this, we set the datalayout prior to running the pass
    manager, and then clear it before creating the ExectionEngine.
    
    This patch fixes a lot of piglit tests on big-endian ppc64.
    
    Cc: mesa-stable@lists.freedesktop.org
    14e525a4