Multiple fixes / improvements for LLVM backend
- Fix for Trac #13904 -- stop "trashing" callee-saved registers, since it is not actually doing anything useful.
- Fix for Trac #14251 -- fixes the calling convention for functions passing raw SSE-register values by adding padding as needed to get the values in the right registers. This problem cropped up when some args were unused an dropped from the live list.
- Fixed a typo in 'readnone' attribute
- Added 'lower-expect' pass to level 0 LLVM optimization passes to improve block layout in LLVM for stack checks, etc.
Test Plan: make test WAYS=optllvm and make test WAYS=llvm
Reviewers: bgamari, simonmar, angerman
Reviewed By: angerman
Subscribers: rwbarton, carter
Differential Revision: https://phabricator.haskell.org/D5190