Make tickishContains faster
authorBartosz Nitka <niteria@gmail.com>
Mon, 23 Jan 2017 14:51:31 +0000 (09:51 -0500)
committerBen Gamari <ben@smart-cactus.org>
Mon, 23 Jan 2017 19:17:34 +0000 (14:17 -0500)
commit532c6ade49e9e8e7e98c35451058ba7e4ee7bb9c
treede85c211d2da57538875cc615522fc118045aba5
parent596dece7866006d699969f775fd97bd306aad85b
Make tickishContains faster

This just reorders some inequality checks to make the common case
cheaper.

The results are quite dramatic for #11095, but that's probably because
something else is causing it to do too much work.

Before (full https://phabricator.haskell.org/P136):
```
  13,589,495,832 bytes allocated in the heap
```

After (full https://phabricator.haskell.org/P137):
```
   7,885,575,872 bytes allocated in the heap
```

This is with `BuildFlavour = devel2`, so take it with a
a grain of salt.

For reference, with no `-g` I get:
```
155,703,112 bytes allocated in the heap
```
so we're still quite a way off.

Test Plan:
harbormaster
I still have to test locally

Reviewers: austin, bgamari

Subscribers: thomie, simonmar

Differential Revision: https://phabricator.haskell.org/D3001

GHC Trac Issues: #11095
compiler/basicTypes/SrcLoc.hs
compiler/coreSyn/CoreSyn.hs