Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ARROW-6664: [C++] Add CMake option to build without SSE4.2 instructions #5468

Closed
wants to merge 1 commit into from

Conversation

wesm
Copy link
Member

@wesm wesm commented Sep 22, 2019

This may not 100% fix the issue reported in ARROW-5381, but it will help.

CPUs from Intel's Penryn architecture and prior have SSE4.1 support but not SSE4.2. For example, many Apple computers sold in 2009 have chips with this CPU architecture.

On a Penryn machine (late-2009 MacBook), binaries from our builds contain SSE4.2 instructions. I found that merely opting out of the -msse4.2 flag fixes everything. There are no issues relating to __builtin_popcountll on this machine, which according to documentation is suppose to gracefully handle both pre/post SSE4.2 CPUs.

Building with SSE4.2 on by default is reasonable to have good performance on computers sold in the last 10 years, but having the compatibility option will expand our spectrum of support.

@codecov-io
Copy link

Codecov Report

❗ No coverage uploaded for pull request base (master@5653711). Click here to learn what that means.
The diff coverage is n/a.

Impacted file tree graph

@@            Coverage Diff            @@
##             master    #5468   +/-   ##
=========================================
  Coverage          ?   89.19%           
=========================================
  Files             ?      766           
  Lines             ?   112057           
  Branches          ?        0           
=========================================
  Hits              ?    99952           
  Misses            ?    12105           
  Partials          ?        0

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 5653711...63649e9. Read the comment docs.

@wesm wesm changed the title ARROW-5381: [C++] Add CMake option to build without SSE4.2 instructions ARROW-6664: [C++] Add CMake option to build without SSE4.2 instructions Sep 23, 2019
@pitrou
Copy link
Member

pitrou commented Sep 23, 2019

Sounds ok to me, though I'm skeptical this is actually useful (except perhaps for Linux distributions).

Copy link
Member

@pitrou pitrou left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1. Feel free to merge :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants