Currently, a failure to resolve a fixup implies instruction relaxation; this policy may not be correct on some targets.
MCAssembler::fixupNeedsRelaxation()
if (!evaluateFixup(Layout, Fixup, DF, Target, Value)) <-- Fixup failed to resolve return true; <-- This fixup needs relaxation
In Hexagon, failing to resolve a fixup does not imply relaxation in all cases.
This change adds a parameter to MCAsmBackend::fixupNeedsRelaxation() indicating whether the fixup was resolved and allows the backend to make the full relaxation decision.
Backends that do not use relaxation only have their function signatures changed.