summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* use assert(0) instead of exit(1)Loic Dachary2014-12-153-8/+11
| | | | | | | | | | | When a fatal error (unaligned memory etc.) is detected, gf-complete should assert(3) instead of exit(3) to give a chance to the calling program to catch the exception and display a stack trace. Although it is possible for gdb to display the stack trace and break on exit, libraries are not usually expected to terminate the calling program in this way. Signed-off-by: Loic Dachary <loic@dachary.org> (cherry picked from commit 29427efac2ce362fce8e4f5f5f1030feba942b73)
* arm: NEON optimisations for gf_w64Janne Grunau2014-10-243-37/+350
| | | | | Optimisations for 4,64 split table region multiplications. Only used on ARMv8-A since it is not faster on ARMv7-A.
* arm: NEON optimisations for gf_w32Janne Grunau2014-10-243-57/+287
| | | | | | | | | | | | | Optimisations for 4,32 split table multiplications. Selected time_tool.sh results on a 1.7 GHz cortex-a9: Region Best (MB/s): 346.67 W-Method: 32 -m SPLIT 32 4 -r SIMD - Region Best (MB/s): 92.89 W-Method: 32 -m SPLIT 32 4 -r NOSIMD - Region Best (MB/s): 258.17 W-Method: 32 -m SPLIT 32 4 -r SIMD -r ALTMAP - Region Best (MB/s): 162.00 W-Method: 32 -m SPLIT 32 8 - Region Best (MB/s): 160.53 W-Method: 32 -m SPLIT 8 8 - Region Best (MB/s): 32.74 W-Method: 32 -m COMPOSITE 2 - - Region Best (MB/s): 199.79 W-Method: 32 -m COMPOSITE 2 - -r ALTMAP -
* arm: NEON optimisations for gf_w16Janne Grunau2014-10-243-51/+369
| | | | | | | | | | | | | | Optimisations for the 4,16 split table region multiplications. Selected time_tool.sh 16 -A -B results for a 1.7 GHz cortex-a9: Region Best (MB/s): 532.14 W-Method: 16 -m SPLIT 16 4 -r SIMD - Region Best (MB/s): 212.34 W-Method: 16 -m SPLIT 16 4 -r NOSIMD - Region Best (MB/s): 801.36 W-Method: 16 -m SPLIT 16 4 -r SIMD -r ALTMAP - Region Best (MB/s): 93.20 W-Method: 16 -m SPLIT 16 4 -r NOSIMD -r ALTMAP - Region Best (MB/s): 273.99 W-Method: 16 -m SPLIT 16 8 - Region Best (MB/s): 270.81 W-Method: 16 -m SPLIT 8 8 - Region Best (MB/s): 70.42 W-Method: 16 -m COMPOSITE 2 - - Region Best (MB/s): 393.54 W-Method: 16 -m COMPOSITE 2 - -r ALTMAP -
* arm: NEON optimisations for gf_w8Janne Grunau2014-10-244-89/+329
| | | | | | | | | | | | | | | | | | | Optimisations for the 4,4 split table region multiplication and carry less multiplication using NEON's polynomial long multiplication. arm: w8: NEON carry less multiplication Selected time_tool.sh results for a 1.7GHz cortex-a9: Region Best (MB/s): 375.86 W-Method: 8 -m CARRY_FREE - Region Best (MB/s): 142.94 W-Method: 8 -m TABLE - Region Best (MB/s): 225.01 W-Method: 8 -m TABLE -r DOUBLE - Region Best (MB/s): 211.23 W-Method: 8 -m TABLE -r DOUBLE -r LAZY - Region Best (MB/s): 160.09 W-Method: 8 -m LOG - Region Best (MB/s): 123.61 W-Method: 8 -m LOG_ZERO - Region Best (MB/s): 123.85 W-Method: 8 -m LOG_ZERO_EXT - Region Best (MB/s): 1183.79 W-Method: 8 -m SPLIT 8 4 -r SIMD - Region Best (MB/s): 177.68 W-Method: 8 -m SPLIT 8 4 -r NOSIMD - Region Best (MB/s): 87.85 W-Method: 8 -m COMPOSITE 2 - - Region Best (MB/s): 428.59 W-Method: 8 -m COMPOSITE 2 - -r ALTMAP -
* arm: NEON optimisations for gf_w4Janne Grunau2014-10-243-50/+272
| | | | | | | | | | | | | | | | | | Optimisations for the single table region multiplication and carry less multiplication using NEON's polynomial multiplication of 8-bit values. The single polynomial multiplication is not that useful but vector version is for region multiplication. Selected time_tool.sh results for a 1.7GHz cortex-a9: Region Best (MB/s): 672.72 W-Method: 4 -m CARRY_FREE - Region Best (MB/s): 265.84 W-Method: 4 -m BYTWO_p - Region Best (MB/s): 329.41 W-Method: 4 -m TABLE -r DOUBLE - Region Best (MB/s): 278.63 W-Method: 4 -m TABLE -r QUAD - Region Best (MB/s): 329.81 W-Method: 4 -m TABLE -r QUAD -r LAZY - Region Best (MB/s): 1318.03 W-Method: 4 -m TABLE -r SIMD - Region Best (MB/s): 165.15 W-Method: 4 -m TABLE -r NOSIMD - Region Best (MB/s): 99.73 W-Method: 4 -m LOG -
* arm: NEON optimisations for XOR in gf_multby_oneJanne Grunau2014-10-091-0/+35
|
* simd: rename the region flags from SSE to SIMDJanne Grunau2014-10-098-84/+91
| | | | | SSE is not the only supported SIMD instruction set. Keep the old names for backward compatibility.
* build: fix out of source tree buildJanne Grunau2014-10-091-2/+2
|
* remove dead code in create_gf_from_argvLoic Dachary2014-09-171-1/+0
| | | | | | | | Since there can only be one -m, base cannot be set by -m COMPOSITE and then deallocated on the second -m if it is bugous. The second -m will exit on error at _gf_errno = GF_E_TWOMULT;. Signed-off-by: Loic Dachary <loic-201408@dachary.org>
* disable gf_error_check test that requires >> 64Loic Dachary2014-09-171-1/+1
| | | | | | Because >> 64 does not have a defined behavior. Signed-off-by: Loic Dachary <loic-201408@dachary.org>
* Removed comments marking CARRY_FREE_GK additions.Adam Disney2014-06-163-10/+1
|
* Merge remote-tracking branch 'dalgaaf/wip-da-sca-20140513'Adam Disney2014-06-165-22/+10
|\
| * gf_w32.c: remove dead assignment with no effectDanny Al-Gaaf2014-05-141-1/+0
| | | | | | | | Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
| * gf_w32.c: fix/remove some dead assignmentsDanny Al-Gaaf2014-05-141-8/+4
| | | | | | | | Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
| * gf_w16.c: fix/remove some dead assignmentsDanny Al-Gaaf2014-05-141-2/+2
| | | | | | | | Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
| * gf_w128.c: remove some dead assignmentsDanny Al-Gaaf2014-05-141-3/+0
| | | | | | | | Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
| * gf_w8.c: fix dead assignment report from scan-buildDanny Al-Gaaf2014-05-141-1/+2
| | | | | | | | | | | | Fix dead assignment in case of INTEL_SSSE3 defined. Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
| * gf_w64.c: remove dead assignments and unused variable 'm2'Danny Al-Gaaf2014-05-141-3/+1
| | | | | | | | | | | | | | The 'm2' variable in gf_w64_clm_multiply_region_from_single_2() isn't used except for calculations on 'm2' which are not used later in the code. Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
| * gf_w64.c: remove dead assigments in gf_w64_shift_multiply()Danny Al-Gaaf2014-05-141-3/+0
| | | | | | | | | | | | | | These assigments are never used and directly overwritten later in the function. Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
| * gf_w32.c: fix dereference of undefined pointer valueDanny Al-Gaaf2014-05-131-1/+1
| | | | | | | | | | | | Check for array boundaries of 't' in while loop header. Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
* | Fixed a few minor warnings when running autogen.sh.Adam Disney2014-06-161-1/+1
| |
* | Merge remote-tracking branch 'jayrde/wip-autoconf-cleanup'Adam Disney2014-06-161-654/+0
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .gitignore INSTALL Makefile.in aclocal.m4 config.guess config.sub configure examples/Makefile.in include/config.h.in include/config.h.in~ install-sh ltmain.sh m4/libtool.m4 m4/ltversion.m4 missing src/Makefile.in test/Makefile.in tools/Makefile.in
| * | remove autogenerated files from repositoryJens Rosenboom2014-03-181-464/+0
| | |
* | | Implemented CARRY_FREE_GK. Sections added are tagged with a comment //ADAMAdam Disney2014-06-063-6/+152
| |/ |/| | | | | for easy navigation.
* | gf_w4.c: remove some dead codeDanny Al-Gaaf2014-04-221-1/+0
| | | | | | | | | | | | | | | | | | Fix for coverity issue from Ceph project: CID 1193093 (#1 of 1): Structurally dead code (UNREACHABLE) unreachable: This code cannot be reached: "return gf_w4_double_table_i...". Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
* | gf.c: fix pointless expressionDanny Al-Gaaf2014-04-221-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove identical expression, reorganize code in gf_error_check() to be identical handled trough all checks. Removed (raltmap && arg1 != 4) check - this is dead code (arg1 is always 4 in this code path). Fix for coverity issue from Ceph project: CID 1193071 (#1 of 1): Same on both sides (CONSTANT_EXPRESSION_RESULT) pointless_expression: The expression (arg1 == 4 && arg2 == 32) || (arg1 == 4 && arg2 == 32) does not accomplish anything because it evaluates to either of its identical operands, arg1 == 4 && arg2 == 32. Did you intend the operands to be different? Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
* | fix comment/message on GF_E_SP128_A/GF_E_SP128_SDanny Al-Gaaf2014-04-221-2/+2
| | | | | | | | | | | | Swap comments/messages on GF_E_SP128_A/GF_E_SP128_S. Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
* | gf_w8.c: add missing breaksDanny Al-Gaaf2014-04-221-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | Since there is no comment indicating fallthrough on purpose added a break in switch value 5 and 6. Fix for coverity issue from Ceph project: CID 1193084 (#1 of 1): Missing break in switch (MISSING_BREAK) unterminated_case: This case (value 5) is not terminated by a 'break' statement. Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
* | gf_w4.c: add missing breaksDanny Al-Gaaf2014-04-221-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since there is no comment indicating fallthrough on purpose added a break in switch value 5 and 6. Fix for coverity issue from Ceph project: CID 1193082 (#1 of 1): Missing break in switch (MISSING_BREAK) unterminated_case: This case (value 5) is not terminated by a 'break' statement. CID 1193083 (#1 of 1): Missing break in switch (MISSING_BREAK) unterminated_case: This case (value 6) is not terminated by a 'break' statement. Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
* | gf_w32.c: add missing breaksDanny Al-Gaaf2014-04-221-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since there is no comment indicating fallthrough on purpose added a break in switch value 3 and 5/before default. Fix for coverity issue from Ceph project: CID 1193080 (#1 of 1): Missing break in switch (MISSING_BREAK) unterminated_case: This case (value 3) is not terminated by a 'break' statement. CID 1193081 (#1 of 1): Missing break in switch (MISSING_BREAK) unterminated_case: This case (value 5) is not terminated by a 'break' statement. Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
* | gf_w16.c: add missing breakDanny Al-Gaaf2014-04-221-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Since there is no comment indicating fallthrough on purpose added a break in switch value 5/before default. Fix for coverity issue from Ceph project: CID 1193079 (#1 of 1): Missing break in switch (MISSING_BREAK) unterminated_case: This case (value 5) is not terminated by a 'break' statement. Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
* | gf_general.c: fix pointless expressionDanny Al-Gaaf2014-04-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of checking w128[0] twice check for w128[0] and w128[1]. Fix for coverity issue from Ceph project: CID 1193072 (#1 of 1): Same on both sides (CONSTANT_EXPRESSION_RESULT) pointless_expression: The expression v1->w128[0] == v2->w128[0] && v1->w128[0] == v2->w128[0] does not accomplish anything because it evaluates to either of its identical operands, v1->w128[0] == v2->w128[0]. Did you intend the operands to be different? Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
* | Merged in dachary/gf-complete/wip-uint-8 (pull request #19) Kevin Greenan2014-04-105-28/+28
|\ \ | | | | | | prefer uint8_t to char in pointer arithmetic
| * | prefer uint8_t to char in pointer arithmeticLoic Dachary2014-04-105-28/+28
| | | | | | | | | | | | Signed-off-by: Loic Dachary <loic@dachary.org>
* | | TODO reminder for KMG/JSP about hardcoded constantLoic Dachary2014-04-101-0/+1
|/ / | | | | | | Signed-off-by: Loic Dachary <loic@dachary.org>
* | Ran autogen to pick-up the changes needed to run 'make check'Kevin Greenan2014-04-021-101/+291
| |
* | Merged in dachary/gf-complete/wip-compilation-warnings (pull request #12) Kevin Greenan2014-03-311-1/+1
|\ \ | | | | | | fix void* arithmetic compilation warning
| * | fix void* arithmetic compilation warningLoic Dachary2014-03-291-1/+1
| | | | | | | | | | | | Signed-off-by: Loic Dachary <loic@dachary.org>
* | | do not compile if used in SSE4 code path onlyLoic Dachary2014-03-301-2/+2
|/ / | | | | | | | | | | | | | | | | | | | | Acknowledge that gf_w128_split_4_128_multiply_region and gf_w128_split_4_128_sse_multiply_region are only used when the INTEL_SSE4 flag is present, even though they only need INTEL_SSSE3 It suppresses a compilation warning complaining about them not being used if INTEL_SSE4 is absent and INTEL_SSSE3 is present. Signed-off-by: Loic Dachary <loic@dachary.org>
* | remove unused static function gf_w128_group_r_sse_initLoic Dachary2014-03-281-1/+1
| | | | | | | | Signed-off-by: Loic Dachary <loic@dachary.org>
* | remove unused argument from SSE_AB2Loic Dachary2014-03-061-23/+23
| | | | | | | | Signed-off-by: Loic Dachary <loic@dachary.org>
* | remove unused variables from #if SSE blocsLoic Dachary2014-03-066-123/+70
| | | | | | | | Signed-off-by: Loic Dachary <loic@dachary.org>
* | do not use gf_internal_t when it is nullLoic Dachary2014-03-061-1/+1
| | | | | | | | Signed-off-by: Loic Dachary <loic@dachary.org>
* | silence some warnings for unset variablesLoic Dachary2014-03-062-4/+4
| | | | | | | | | | | | | | By setting them when they are defined and when the compiler fails to see the logic is ok. Signed-off-by: Loic Dachary <loic@dachary.org>
* | remove duplicate headers from srcLoic Dachary2014-03-063-283/+0
| | | | | | | | Signed-off-by: Loic Dachary <loic@dachary.org>
* | move #if to avoid unused warningLoic Dachary2014-03-066-108/+104
| | | | | | | | Signed-off-by: Loic Dachary <loic@dachary.org>
* | initialize pointer early in the functionLoic Dachary2014-03-061-1/+2
| | | | | | | | | | | | otherwise it may be used uninitialized Signed-off-by: Loic Dachary <loic@dachary.org>
* | cast void* to char* for pointer arithmeticLoic Dachary2014-03-065-27/+27
| | | | | | | | Signed-off-by: Loic Dachary <loic@dachary.org>
* | remove unused variablesLoic Dachary2014-03-0610-122/+45
|/ | | | | | | In some places move variables in the scope of the CPP define where they are used. Signed-off-by: Loic Dachary <loic@dachary.org>