[GlobalISel] gen-global-isel failed to work

Hi LLVM developers,

I am porting GlobalISel to AVR Target, try to delete SelectionDAG in 100* commits :slight_smile: https://github.com/xiangzhai/llvm/tree/avr/lib/Target/AVR

I just copy ARMCallLowering, ARMRegisterBankInfo, ARMLegalizerInfo, ARMInstructionSelector, ARMRegisterBanks.td into AVR target's folder, then renamed them to AVRXXX

Removed ARM related code, for example:

* AEABI (eabi)

* hasDivideInXXXMode

* useSoftFloat (soft-float-point), hasVFP2

Overrided addIRTranslator, addLegalizeMachineIR, addRegBankSelectaddGlobalInstructionSelect in AVRTargetMachine.

Added AVRGenGlobalISel.inc to CMakeLists.txt for tablegen, also *.cpp related to GlobalISel.

Also added GlobalISel dependence to LLVMBuild.txt

But tablegen is failed to generate AVRGenGlobalISel.inc:

[ 53%] Building CXX object lib/Target/AVR/CMakeFiles/LLVMAVRCodeGen.dir/AVRLegalizerInfo.cpp.o
In file included from /data/project/xiangzhai/llvm/lib/Target/AVR/AVRInstructionSelector.cpp:103:
/data/project/xiangzhai/llvm/build/lib/Target/AVR/AVRGenGlobalISel.inc:112:64: error: no member named
'GPR8RegClassID' in namespace 'llvm::AVR'; did you mean 'GPR8RegClass'?
GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/AVR::GPR8RegClassID,
/data/project/xiangzhai/llvm/build/lib/Target/AVR/AVRGenRegisterInfo.inc:827:36: note: 'GPR8RegClass'
declared here
extern const TargetRegisterClass GPR8RegClass;

The general purpose registers, such as GPR8, defined in AVRRegisterInfo.td like this https://github.com/xiangzhai/llvm/blob/avr/lib/Target/AVR/AVRRegisterInfo.td#L114

Why auto-generated GPR8RegClassID, but not GPR8RegClass, where is the ID come from? please give me some hint, thanks a lot!