[X86] Reduce -ffixed-r compile-time overhead (#184606)
PR #180242 added reserve-r support across the driver and backend, but it
also introduced avoidable compile-time work in hot paths.
In Clang, delay +egpr detection until -ffixed-r16 through -ffixed-r31
are actually queried instead of computing it for every x86_64
invocation.
In LLVM, store X86Subtarget::ReservedRReg in a fixed-size std::bitset
and update X86RegisterInfo::getReservedRegs() to iterate only over the
reserve-r register ranges instead of scanning every target register.
These changes keep reserve-r behavior unchanged while trimming the extra
compile-time overhead introduced by the PR.
Signed-off-by: ZhouGuangyuan <zhouguangyuan.xian@gmail.com>