Opened 8 years ago

Closed 8 years ago

#319 closed enhancement (fixed)

Performance improvement of Universal_String's Index/Last_Index operations with SSE2

Reported by: vadim.godunko Owned by:
Priority: major Milestone: 0.6.0
Component: Matreshka - League Version:
Keywords: Cc:

Description

Performance of Index/Last_Index operations can be improved by use of SSE2 command set. Index was implemented already, but it can be improved too, by replacing use of Null_Terminator_Mask by integer mask constructed in general purpose register.

Change History (13)

comment:1 by vadim.godunko, 8 years ago

In 4049:

Improve performance of Index operation.

Refs #319.

comment:2 by vadim.godunko, 8 years ago

In 4050:

Add function to detect support of POPCNT instruction by CPU.

Refs #319.

comment:3 by vadim.godunko, 8 years ago

In 4051:

Code refactoring to be able to substitute implementation of Update_Index
procedure.

Add implementation of Update_Index based on POPCNT instruction.

Refs #319.

comment:4 by vadim.godunko, 8 years ago

In 4052:

Extend runtime configuration check to detect support of POPCNT
instruction and to use it.

Refs #319.

comment:5 by vadim.godunko, 8 years ago

In 4054:

Add naming rules for new file.

Refs #319.

comment:6 by vadim.godunko, 8 years ago

In 4055:

Limit number of passed bits to significant bits only. POPCNT version of
Update_Index works incorrectly otherwise.

Refs #319.

comment:7 by vadim.godunko, 8 years ago

In 4056:

Use next vector to start processing, otherwise first vector is processed
twice.

Refs #319.

comment:8 by vadim.godunko, 8 years ago

In 4059:

Add automated test case found as regression after changes for #319.

Refs #319.

comment:9 by vadim.godunko, 8 years ago

In 4086:

Provide implementation of Last_Index operation with use of SSE2
instruction set on x86 CPU.

Refs #319.

comment:10 by vadim.godunko, 8 years ago

In 4087:

Enable inlining to improve performance.

Refs #319.

comment:11 by vadim.godunko, 8 years ago

In 4088:

Use address arithmetic to improve performance.

Refs #319.

comment:12 by vadim.godunko, 8 years ago

In 4089:

Add special edition of Index and Last_Index operations for string that
doesn't contain surrogate pairs to improve performance.

Refs #319.

comment:13 by vadim.godunko, 8 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.