Branch relaxation is needed to support branch displacements that overflow the instruction's immediate field.
This is the last non-trivial patch required for a 100% pass rate of the GCC torture suite targeting RV32I.
The churn in bswap-ctlz-cttz-ctpop.ll and jumptable.ll seems unfortunate, but I don't think it's caused by lib/Target/RISCV logic.
Add some vertical whitespace around here somewhere, the code is quite dense