Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
We tired to speed up the toNative method in the XMLHandler.
Therefore we changed the implementation of appendASCII. It now uses SIMDe to process the Input in a Block of 8 chars at a time.
We added two three new methods to the StringManager Class
1.)int StringManager::strLength(const XMLCh* input_ptr)
This method uses SIMDe commands to determine the length of a Xerces String by finding the 0 iterator
2.)void StringManager::compress64(const XMLCh* inputIt, char* outputIt)
This method helps the appendASCII method to compress 8 UTF 16 char at a time down to ASCII chars also using SIMDe
3.)bool StringManager::isASCII(const XMLCh* chars, const XMLSize_t length)
This Method determines whether or not an Input is ASCII convertible or not by checking the upper bytes of a UTF 16 char.
Underlying logic : very UTF -16 char with two zeros as upper bits is ASCII convertible.
We added a XMLHandler_test where all the new methods and implementations are tested
Remaining Problems:
Remaining Problems and Benchmarks of the Project are in the pdf in the appendix
Benchmarks.pdf
Checklist
How can I get additional information on failed tests during CI
Click to expand
If your PR is failing you can check outIf you click in the column that lists the failed tests you will get detailed error messages.
Advanced commands (admins / reviewer only)
Click to expand
/reformat(experimental) applies the clang-format style changes as additional commit. Note: your branch must have a different name (e.g., yourrepo:feature/XYZ) than the receiving branch (e.g., OpenMS:develop). Otherwise, reformat fails to push.rebuild jenkinswill retrigger Jenkins-based CI builds