Hi,

I'm porting marisa-tire[0] now, it is a C++ implementation of MARISA 
(Matching Algorithm with Recursively Implemented StorAge) trie data 
structure. It offers a configure flag --enable-native-code for detecting 
and enabling processor-dependent optimizations which I'm not sure if I 
should use in my port. Will this cause compatibility issue for binary 
package users? I wonder what's the policy on this kind of optimizations?

On my i7-3520M it detects and enables the following optimizations:

marisa 0.2.6 configuration:
-------------------------------
  HOST:      x86_64-unknown-openbsd6.9
  CXX:       c++
  CXXFLAGS:  -g -O2 -DMARISA_USE_POPCNT -mpopcnt -DMARISA_USE_SSE4 -msse4
  LDFLAGS:   
  PREFIX:    /usr/local

  NATIVE:    yes
  SSE2:      yes
  SSE3:      yes
  SSSE3:     yes
  SSE4.1:    yes
  SSE4.2:    yes
  SSE4a:     no
  POPCNT:    yes
  BMI:       no
  BMI2:      no

... and it brings about 13% of performance gain when running 
marisa-benchmark and with enwiki-latest-all-titles-in-ns0 as input.

[0]: https://github.com/s-yata/marisa-trie

Reply via email to