36e8d9ab6f
Ensure padding around data and length fields for these strings is zeroed-out, allowing for comparison to be done in word-sized chunks. For configurations where the hash is not in the header, swap the length and the hash in string class so that the length is adjacent to the data. x64 === LongStringCompare.2.3000reps 109.2% LongStringCompare.32.1000reps 526.4% LongStringCompare.1024.30reps 670.1% === ia32 === LongStringCompare.2.3000reps 90.68% LongStringCompare.32.1000reps 274.5% LongStringCompare.1024.30reps 211.4% === arm64 === LongStringCompare.2.3000reps 89.28% LongStringCompare.32.1000reps 454.5% LongStringCompare.1024.30reps 677.7% === arm === LongStringCompare.2.3000reps 68.76% LongStringCompare.32.1000reps 330.9% LongStringCompare.1024.30reps 426.8% === BUG=https://github.com/dart-lang/sdk/issues/50190 TEST=string_equals_test Change-Id: Ia4ab9bcb4daca5d4f403e0ece364bb6aafb68577 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/269600 Commit-Queue: Alexander Aprelev <aam@google.com> Reviewed-by: Ryan Macnak <rmacnak@google.com>