8 Commits
Author SHA1 Message Date
Thiago Macieira 468d8e5bd0 Fix creating the haswell/avx512_1 subdir
The original shell script was mkdir -p. The perl function mkdir()
doesn't do that, though, so we have to use File::Path::make_path().

Signed-off-by: Thiago Macieira <thiago.macieira@intel.com>
v2
2018-06-30 10:48:39 -07:00
Thiago Macieira e08b27e18c Correct mistaken crediting of FMA instructions to AVX512
VFMADD132SS is an FMA instruction, which was added to Haswell
architecture at the same time it got AVX2. This was correct prior to the
patch in PR #1.

Signed-off-by: Thiago Macieira <thiago.macieira@intel.com>
2018-06-29 23:19:38 -07:00
Thiago Macieira b48a8636cf Perform the directory scanning in clr-avs2-move.pl itself
Simplifies macros in the .spec files.

Signed-off-by: Thiago Macieira <thiago.macieira@intel.com>
2018-06-29 21:31:17 -07:00
Leandro Pereira e97531c2ba avxjudge: Simplify report generation
Refactor report generation function to reduce amount of copy-paste.

Signed-off-by: Leandro Pereira <leandro.pereira@intel.com>
2018-06-29 15:19:15 -07:00
William Douglas e91e112d61 Merge pull request #1 from lpereira/master
Clean up/optimize avxjudge
2018-06-29 14:09:29 -07:00
Leandro Pereira 9c04fe6028 avxjudge: Use more efficient method to determine if reg is a high register
Use the `endswith()` from string objects to determine if any of the
register names ends with `mm16`..`mm31`.

Signed-off-by: Leandro Pereira <leandro.pereira@intel.com>
2018-06-29 13:59:09 -07:00
Leandro Pereira be7a4d7566 avxjudge: Speed up instruction lookup by using sets instead of lists
Python's `in` operator are translated to a hash table lookup in Python;
it's more efficient than using it with lists or tuples.  Modify the
instruction tables to use sets instead.

Also changes how the instruction tables are initialized; initializing
them using this syntax is slighly more efficient.

Analyzing the libc library on my system went from 3.40s to 2.61s with
this change alone.

Signed-off-by: Leandro Pereira <leandro.pereira@intel.com>
2018-06-29 13:58:43 -07:00
Thiago Macieira 3ef098476e Initial import of the Clear Linux set of AVX build tools
avxjudge.py: used automatically by the RPM scripts to heuristically
determine whether a library or plugin created with AVX2 or AVX512
support is worth keeping.

clr-avx-move.pl: inserted into RPM builds by Autospec to move the
libraries and plugins to their correct locations.

clr-python-avx2 and clr-python-avx512: wrappers for avxjudge.py.

Signed-off-by: Thiago Macieira <thiago.macieira@intel.com>
v1
2018-06-29 13:16:44 -07:00