This is subsequent patch of https://reviews.llvm.org/D70116.
This is one of patches of enabling LTO support in RISCV, LTO code generator will codegen below case with
`-mabi=ilp32f`, it's similar to `llc example.c -mtriple=riscv32 -mabi=ilp32f`.
```
define float @foo(i32 %a) nounwind #0 {
...
}
define float @foo2(i32 %a) nounwind #1{
...
}
attributes #0 = { "target-features"="+f"}
attributes #1 = { "target-features"="+f"}
```
1. The target-features is per function attribute, and the original checking is in
too early stage and backned can't get the function attribute at that times.
so I think maybe moving the checking to RISCVTargetLowering is a good ideal.
2. if users don't specific `-mattr`, the default target-feature come from IR attribute.
3. fix https://reviews.llvm.org/D70116 failed case
4. changed the behavior from warning to error if ABI checking get failed
5. I temporary disable MC layer ABI checking, it will be fixed in a subsequent patch, I'm working on this issue...