[Bug 92214] Flightgear crashes during splashboot with R600 driver, LLVM 3.7.0 and mesa 11.0.2

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Wed Oct 21 18:49:36 PDT 2015


https://bugs.freedesktop.org/show_bug.cgi?id=92214

--- Comment #31 from Barto <mister.freeman at laposte.net> ---
llvm developper ( Craig Topper ) has answered this :

https://llvm.org/bugs/show_bug.cgi?id=25021#c8

he said that the remove of the SSE4 test for penryn CPUs ( including pentium
dual core who don't support SSE4 ) was intentional,

he advices mesa developpers to use the llvm function "getHostCPUFeatures()" in
order to check if the CPU can support SSE4, before doing a llvm operation (
like a binary code generation ),

I check in mesa source code and it seems that mesa developpers don't use this
function "getHostCPUFeatures()",

I am not a specialist in llvm API, but it seems that there is a change since
llvm 3.7.0, developpers like mesa should now always check if the host CPU has
some features like SSE4, because without no check llvm will try to apply
generic CPU settings fixed in the file /lib/Target/X86.td, in this file there
are a sort of definitions of features for each CPU :


/ Intel Core 2 Solo/Duo.
def : ProcessorModel<"core2", SandyBridgeModel,
                     [FeatureSSSE3, FeatureCMPXCHG16B, FeatureSlowBTMem]>;
def : ProcessorModel<"penryn", SandyBridgeModel,
                     [FeatureSSE41, FeatureCMPXCHG16B, FeatureSlowBTMem]>;

we see here that by default all penryn CPU are treated by llvm as "SSE4 ready",
which triggers a bug with pentium dual core ( cpu family 6 model 23 ) if no
sanity checks ( like SSE4 test ) have been done by the application who uses
llvm libs

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20151022/bee338ff/attachment.html>


More information about the dri-devel mailing list