Add ptr-eq short-cut to `compareByteArrays#` primitive
authorHerbert Valerio Riedel <hvr@gnu.org>
Fri, 26 Jan 2018 18:07:17 +0000 (13:07 -0500)
committerBen Gamari <ben@smart-cactus.org>
Fri, 26 Jan 2018 19:37:28 +0000 (14:37 -0500)
commit31c260f3967d2c06063c962a98475058daa45c6d
tree0c2ce731c6e84f62d0f8b2ef7ee5d37bc3ffafec
parente7dcc7085315ea8ebc2d6808fde2d9c37fd10c67
Add ptr-eq short-cut to `compareByteArrays#` primitive

This is an obvious optimisation whose overhead is neglectable but
which significantly simplifies the common uses of `compareByteArrays#`
which would otherwise require to make *careful* use of
`reallyUnsafePtrEquality#` or (equally fragile) `byteArrayContents#`
which can result in less optimal assembler code being generated.

Test Plan: carefully examined generated cmm/asm code; validate via phab

Reviewers: alexbiehl, bgamari, simonmar

Reviewed By: bgamari, simonmar

Subscribers: rwbarton, thomie, carter

Differential Revision: https://phabricator.haskell.org/D4319
compiler/codeGen/StgCmmPrim.hs