Home
Reading
Searching
Subscribe
Sponsors
Statistics
Posting
Contact
Spam
Lists
Links
About
Hosting
Filtering
Features Download
Marketing
Archives
FAQ
Blog
 
Gmane

From: Chandler Carruth <chandlerc <at> gmail.com>
Subject: RFB: Would like to flip the vector shuffle legality flag
Newsgroups: gmane.comp.compilers.llvm.devel
Date: Friday 23rd January 2015 08:15:58 UTC (over 3 years ago)
Greetings LLVM hackers and x86 vector shufflers!

I would like to flip on another chunk of the new vector shuffling,
specifically the logic to mark ~all shuffles as "legal".

This can be tested today with the flag
"-x86-experimental-vector-shuffle-legality". I would essentially like to
make this the default (by removing the "false" path). Doing this will allow
me to completely delete the old vector shuffle lowering.

I've got the patches prepped and ready to go, but it will likely have a
significant impact on performance. Notably, a bunch of the remaining domain
crossing bugs I'm seeing are due to this. The key thing to realize is that
vector shuffle combining is *much* more powerful when we think all of these
are legal, and so we combine away bad shuffles that would trigger domain
crosses.

All of my benchmarks have come back performance neutral overall with a few
benchmarks improving. However, there may be some regressions that folks
want to track down first. I'd really like to get those reported and
prioritize among the vector shuffle work so we can nuke several *thousand*
lines of code from X86ISelLowering.cpp. =D

Thanks!
-Chandler


PS: If you're feeling adventurous, the next big mode flip flag I want to
see changed is -x86-experimental-vector-widening-legalization, but this is
a much more deep change to the entire vector legalization strategy, so I
want to do it second and separately.
 
CD: 20ms