[llvm-dev] [GlobalISel] gen-global-isel failed to work
Leslie Zhai via llvm-dev
llvm-dev at lists.llvm.org
Tue Dec 19 01:36:11 PST 2017
Hi LLVM developers,
I am porting GlobalISel to AVR Target, try to delete SelectionDAG in
100* commits :) 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,
~~~~~^~~~~~~~~~~~~~
GPR8RegClass
/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!
--
Regards,
Leslie Zhai - https://reviews.llvm.org/p/xiangzhai/
More information about the llvm-dev
mailing list