Before we used "custom heuristics" to determine if a newly placed
unreachable should be preceded by a trap (llvm.trap) or not. This was
undesirable for multiple reasons, mainly it causes traps where we might
really want to avoid them (GPU targets), and it didn't allow to insert
more traps with proper debug information for debugging. The new scheme
allows the user to overwrite the standard "context decision" and force
or disallow traps instead.
This patch should not change the behavior on it's own but just provide
more options. The plan is to update the default for OpenMP GPU targets.
s/awlays/always