1
0
mirror of https://github.com/intel/isa-l.git synced 2024-12-14 02:05:11 +01:00
Commit Graph

281 Commits

Author SHA1 Message Date
Jerry Yu
5f45f3f310 igzip: Optimize adler32 with arm neon
Change-Id: I9b8932eb02ed6bc44756f6505e7efbfad1706b46
Signed-off-by: Jerry Yu <jerry.h.yu@arm.com>
2019-08-29 10:11:06 +08:00
Jerry Yu
a2005c1fd6 igzip: enable multibinary interfaces
- Add dispatcher layer
- Alias functions with assmebly

Change-Id: I84da1be539d890db0df64e5ea989b2fd1f276949
Signed-off-by: Jerry Yu <jerry.h.yu@arm.com>
2019-08-29 10:08:58 +08:00
Jun He
b721db98e5 igzip: optimize convert_dist_to_dist_sym to branchless
convert_dist_to_dist_sym uses long if/else branch to get look back distance.
The distance calculation is well formed for each distance range, so it could
be optimized for a branchless version.

Change-Id: I4e1e5170f8b3238631f3048087f95acc53e4498e
Signed-off-by: Jun He <jun.he@arm.com>
2019-08-13 11:02:53 +08:00
Greg Tucker
e2997062fb igzip: Optimize routine to find msb
Change-Id: I40e7898e2139c04f261980ca10886debc917842a
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2019-08-12 14:28:33 -07:00
Greg Tucker
25374814c9 Format only changes for new indent version
Change-Id: I2b2a5caf1b31ad56665081145d5e7089fd34d0ab
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2019-07-03 15:17:02 -07:00
Roy Oursler
9c91a18c6e igzip: Fix igzip_rand_test to test on a single file
Change-Id: I21cb27f6012094adee6496f811792d6e3b11a8bc
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2019-05-21 13:52:41 -07:00
Greg Tucker
f1252a9e79 build: Add missing files for distcheck
Change-Id: I644d59eece8a9eae9d467f42d668b13d8fae0d81
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2019-05-01 16:48:10 -07:00
Roy Oursler
db59b1082f igzip: Remove undefined behavior in igzip.c
Remove unaligend data access in
write_deflate_header_unaligned_stateless

Change-Id: I7defa5621d8dc188edc51d22d29155ed3687c49d
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2019-04-29 16:22:07 -07:00
Greg Tucker
fc9f7493a0 igzip: Fix help message in perf test
Change-Id: I2d4fd7c0eee176570d79bebf5f6e453f3b7dbba6
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2019-04-18 10:59:50 -07:00
Greg Tucker
8f06ac6973 Add Adler32 performance test
Change-Id: I511dd34235c9a4ce2f3596d63236800cbf06703b
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2019-03-22 14:29:42 -07:00
Yibo Cai
57eed2f02b aarch64: Cleanup build issues
This patch addresses one build failure and fixes several build warnings
for Arm (some for x86 too).

- Fix dynamic relocation link failure of ld.bfd 2.30 on Arm
  [log] relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `xor_gen_neon' which may bind externally can not be used when making a shared object

- Add arch dependent "other_tests" to exclude x86 specific tests on Arm
  [log] isa-l/erasure_code/gf_2vect_dot_prod_sse_test.c:181: undefined reference to `gf_2vect_dot_prod_sse'

- Check "fread" return value to fix gcc warnings on Arm and x86
  [log] warning: ignoring return value of ‘fread’, declared with attribute warn_unused_result [-Wunused-result]
        fread(in_buf, 1, in_size, in_file);
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

- Fix issue of comparing "char" with "int" on Arm. "char" is unsigned
  on Arm by default, an unsigned char will never equal to EOF(-1).
  [Log] programs/igzip_cli.c:318:31: warning: comparison is always true due to limited range of data type [-Wtype-limits]
        while (tmp != '\n' && tmp != EOF)
                                  ^~

- Include <stdlib.h> to several files to fix build warnings on Arm
  [log] igzip/igzip_inflate_perf.c:339:5: warning: incompatible implicit declaration of built-in function ‘exit’
        exit(0);
        ^~~~

Change-Id: I82c1b63316b634b3d398ffba2ff815679d9051a8
Signed-off-by: Yibo Cai <yibo.cai@arm.com>
2019-03-20 10:15:40 +08:00
Greg Tucker
3c009347b1 Fix a few c99isms in unit tests
Change-Id: Iea9ba619e337d5abea7ee791ddf3dd27e0f3e60f
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2019-03-19 15:02:40 -07:00
Roy Oursler
31eca5035f igzip: Modify last byte retrieval method
Change-Id: I3ba7e9bd007277be543ba7a6299d5acc5c848bd2
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2019-03-07 09:28:04 -07:00
Roy Oursler
67c4e26580 igzip: Remove unneeded generation of k register
Change-Id: I79bfb3b3a3feeb969a0c0ec92b7ae0633f6be1b0
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2019-03-07 09:28:04 -07:00
Roy Oursler
28da992ad2 igzip: Reduce data used in encode_df_06.asm
Change-Id: I83dbca452840c07b0fd77faaf9d35c46065f8a08
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2019-03-07 09:28:04 -07:00
Roy Oursler
863e72189b igzip: Modify igzip_rand_test to optionally use getopt
Change-Id: I8ad8e7f18f292b54158f1cda2eef9aec3919d175
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2019-03-07 09:28:04 -07:00
Roy Oursler
35e90e73d5 igzip: Write out compressed data from igzip_perf
Change-Id: Iefea3e314e277112858874f826f54bdfa0172e04
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2019-03-07 09:28:04 -07:00
Roy Oursler
d90220d935 igzip: Implement window size for igzip_perf
Change-Id: I6f5e9453aaff980b44c3e6d56b113da7625ec36e
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2019-03-07 09:28:04 -07:00
Roy Oursler
699bb5bd3f all: Revamp performance testing to be time based
Change-Id: I6260d28e4adc974d8db0a1c770e3eb922d87f8e4
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2019-03-07 09:28:04 -07:00
Roy Oursler
bde3fc5ff1 igzip: Remove igzip_stateless_file_perf
Remove igzip_stateless_file_perf as all the functionality is included in
igzip_perf

Change-Id: Icfd4dfd25af1a3a6c16fa2c3299d277c18f204d9
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2019-03-07 09:28:04 -07:00
Roy Oursler
4ac2b7864b igzip: Remove igzip_inflate_perf
Remove igzip_inflate_perf as all the functionality is duplicated in igzip_perf

Change-Id: I510cc4643a3949e2fa8f30309b5d45a249320b9e
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2019-03-07 09:28:04 -07:00
Roy Oursler
623d2f0dc0 igzip: Bitbuf improvements
Update Bitbuf to use stdmac and decrease register dependencies by replaces a sub
with an and.

Change-Id: Iaadf3c6ef7f533540a7adb57a418e9e80e9b8503
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2019-03-07 09:28:04 -07:00
Roy Oursler
53b92e83f4 igzip: Avoid UB pointer arithmetic underflow for virtual file start
Change-Id: I95c0e6f004eaf70227a6419fc14bf0958d1f4538
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2019-03-07 09:27:50 -07:00
Roy Oursler
139fdb68b9 igzip: Fix latent pointer undeflow bug
Change-Id: I60a3d6b355dc4ab5d74ad701d7c76d989ae30906
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2019-03-07 09:27:50 -07:00
Roy Oursler
c0467e56d5 igzip: Use blind union to represent overlapped tables in hufftables_icf
Change-Id: I0260a705db81f4e7731d4d40757c5919be002e8f
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2019-03-07 09:27:50 -07:00
Roy Oursler
342cae57fc igzip: Modify fast hash table init to avoid signed shift
Change-Id: Ifd8e6e6540b6d6e6d82af74bb57c25733684bfd4
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2019-03-07 09:27:50 -07:00
Roy Oursler
aae6e29d28 igzip: Remove unaligned stores
Change-Id: I8d351c8b7153178d26d6fc702ee3036b71165b93
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2019-03-07 09:27:50 -07:00
Roy Oursler
5be1ba2215 igzip: Remove undefined unaligned loads
Change-Id: I02591d958f8691d07b261218cf5ab361e8ad36c9
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2019-03-07 09:27:50 -07:00
Zach Bjornson
f9588bbedc igzip: export isal_adler32
Change-Id: Iadb73851f826131cc59974b65240b501e9d57f98
Signed-off-by: Zach Bjornson <zbbjornson@gmail.com>
2019-02-10 13:37:52 -07:00
Yibo Cai
7a44098a98 build: Add aarch64 support
Change-Id: If9594936a28355d89edd1a331b3b429dffa44184
Signed-off-by: Yibo Cai <yibo.cai@arm.com>
2019-02-10 13:08:56 -07:00
Roy Oursler
ff3841d638 igzip: Fix Type 0 block_size calculation missing buffered bits
Change-Id: I7ee01353673ca66e79e2087bf814bccf76d1824c
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2018-12-12 11:03:43 -07:00
Roy Oursler
1fdc5941a3 igzip: Modify set_long_icf to handle small end_in
Change-Id: I24c3420df5d9e84d27fe28eff96155e5fcd51760
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2018-12-04 10:41:40 -07:00
Roy Oursler
ba1a000680 igzip: Implement set_long_icf to compare more than 258
Change-Id: Ia8813d176da6bfcd3c6ef441eca1c59ac99db7f2
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2018-12-04 10:41:40 -07:00
Roy Oursler
bdb6289bbe igzip: Reduce data usage of set_long_icf_fg_06
Change-Id: If05629100ef21fa43a0275110ad978c705c1a7bd
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2018-12-04 10:41:40 -07:00
Roy Oursler
fce71b0670 igzip: Implement icf_body random data skip ahead
Change-Id: I5dd5f37ec0cdfe4f2591685dc4a0a056f0b07ea3
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2018-12-04 10:41:40 -07:00
Greg Tucker
940515d51f igzip: Add missing initialization in perf test
Change-Id: Ia51a45edd48bd57c925f86c9de7616075a81e64d
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2018-11-29 16:37:56 -07:00
Greg Tucker
e1470f70f6 igzip: Fixup a few labels and return warnings
Change-Id: Iaf2634a939fc741006895407b4b219a2f2cae98e
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2018-11-29 16:37:56 -07:00
Greg Tucker
2e212f28fa build: Fix for mac nasm lack of symbol types
Change-Id: I9ee86a3e32876d3860477c8365fc459d94a8920e
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2018-11-29 13:54:36 -07:00
Greg Tucker
06b926fbb6 igzip: Fix portability issue when bad window size passed
If a user passes an invalid size for window bits it could have triggered an
undefined shift by larger than variable size.

Change-Id: Ib2999b094af075596be3333418667ae9b498e2ae
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2018-10-25 14:43:27 -07:00
Roy Oursler
b4dfd61d06 igzip: Fix missing argument in base aliases
Fix missing argument in decode_huffman_code_block_stateless base alias that
causes runtime issues for some architectures.

Change-Id: I84c34bf2635dad2fca6235bd4fe0a5bc78dfbbe6
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2018-10-23 12:54:36 -07:00
Roy Oursler
8a2be4b693 igzip: Optimize reset hash table
Change-Id: I380353ec846190acc87f19fd7660991e2db62010
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2018-10-18 17:47:09 -07:00
Roy Oursler
412abd81ea igzip: Make all perf tests run a round for warmup
Change-Id: I9b6d4bd261b8633a6d44458aaa7c0b4bb7d713a5
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2018-10-18 15:13:31 -07:00
Roy Oursler
2458a651b7 igzip: Increase overestimate of compressed data size in igzip_perf
Change-Id: I16adcd817737f71fc59dac585c65c73eb3397d99
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2018-10-18 14:53:12 -07:00
Roy Oursler
e4bfb4d22e igzip: Remove unecessary validation checks from igzip_perf
Change-Id: I0a79bfc9604153ab554275949caf987265e17113
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2018-10-17 13:52:55 -07:00
Roy Oursler
5793a8514e igzip: Modify igzip_perf to be able to avoid perf testing inflate
Change-Id: I384485a6ce8b35cae3738aebc9291d5ff5f8b029
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2018-10-17 13:52:47 -07:00
Roy Oursler
cb17625279 igzip: Implement zlib stateful perf for igzip_perf
Change-Id: I124de36254dd079e6cf46681fd0cbc86659f2561
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2018-10-17 13:52:34 -07:00
Roy Oursler
18fd996588 igzip: Add flush type performance testing to igzip_perf
Change-Id: I66de7fa27de43ada1930475aafd1558f09d32ea9
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2018-10-17 13:51:09 -07:00
Roy Oursler
71a76468d6 igzip: Setup wrapper_hdr_test to use isal_gzip_hdr_init
Change-Id: I42c6ff0375b87d892bfebf28853403adef0a68c7
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2018-10-16 18:36:05 -07:00
Greg Tucker
41fc273c43 igzip: Add missing files for distcheck
Change-Id: Ic6acd926c19113ecfa4233ca8d0a658e1a10ecd8
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2018-09-21 16:13:17 -07:00
Roy Oursler
a570a3e5d4 igzip: Limit max compare_large to limit redundant matching
Change-Id: I989c9b805700fdced4624fb5f4b4c19cce389448
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2018-09-20 11:12:02 -07:00