Never tick primitive string literals

Authored by bgamari on Mar 19 2017, 10:53 AM.

Description

Never tick primitive string literals

This is a more aggressive approach to the problem initially solved in
f5b275a239d2554c4da0b7621211642bf3b10650, where top-level primitive string
literals were being wrapped by ticks. This breaks the Core invariant descirbed
in Note [CoreSyn top-level string literals]. However, the previous approach was
incomplete and left several places where inappropriate ticks could sneak in.

This commit kills the problem at the source: we simply never tick any primitive
string literal expression. The assumption here is that these expressions are
destined for the top-level, where they cannot be ticked, anyways. So even if
they haven't been floated out yet there is no reason to tick them.

This partially reverts commit f5b275a239d2554c4da0b7621211642bf3b10650.

Test Plan: Validate with -g

Reviewers: austin, scpmw, simonpj, simonmar, dfeuer

Subscribers: dfeuer, simonmar, thomie

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