JuliaHubOSS / llvm-cbe

resurrected LLVM "C Backend", with improvements
Other
811 stars 138 forks source link

cast to FixedVectorType instead of VectorType for llvm 10 above #152

Closed SdtElectronics closed 2 years ago

SdtElectronics commented 2 years ago

Build failed with llvm13.0.0 with error:

/mnt/r/llvm-cbe/lib/Target/CBackend/CBackend.cpp: In member function ‘llvm::raw_ostream& llvm_cbe::CWriter::printTypeString(llvm::raw_ostream&, llvm::Type*, bool)’:       /mnt/r/llvm-cbe/lib/Target/CBackend/CBackend.cpp:292:25: error: ‘class llvm::VectorType’ has no member named ‘getNumElements’; did you mean ‘getArrayNumElements’?
  292 |     cwriter_assert(VTy->getNumElements() != 0);
      |                         ^~~~~~~~~~~~~~
/mnt/r/llvm-cbe/lib/Target/CBackend/CBackend.cpp:106:9: note: in definition of macro ‘cwriter_assert’
  106 |   if (!(expr)) {                                                               \
      |         ^~~~
/mnt/r/llvm-cbe/lib/Target/CBackend/CBackend.cpp: In member function ‘void llvm_cbe::CWriter::printConstant(llvm::Constant*, llvm_cbe::CWriter::OperandContext)’:
/mnt/r/llvm-cbe/lib/Target/CBackend/CBackend.cpp:1484:24: error: ‘class llvm::VectorType’ has no member named ‘getNumElements’; did you mean ‘getArrayNumElements’?         1484 |     cwriter_assert(VT->getNumElements() != 0 && !isEmptyType(VT));
      |                        ^~~~~~~~~~~~~~
/mnt/r/llvm-cbe/lib/Target/CBackend/CBackend.cpp:106:9: note: in definition of macro ‘cwriter_assert’
  106 |   if (!(expr)) {                                                               \
      |         ^~~~
/mnt/r/llvm-cbe/lib/Target/CBackend/CBackend.cpp: In member function ‘void llvm_cbe::CWriter::generateHeader(llvm::Module&)’:
/mnt/r/llvm-cbe/lib/Target/CBackend/CBackend.cpp:2858:47: error: ‘class llvm::VectorType’ has no member named ‘getNumElements’; did you mean ‘getArrayNumElements’?         2858 |       cwriter_assert(cast<VectorType>(SrcTy)->getNumElements() == l);
      |                                               ^~~~~~~~~~~~~~
/mnt/r/llvm-cbe/lib/Target/CBackend/CBackend.cpp:106:9: note: in definition of macro ‘cwriter_assert’
  106 |   if (!(expr)) {                                                               \
      |         ^~~~
make[3]: *** [lib/Target/CBackend/CMakeFiles/LLVMCBackendCodeGen.dir/build.make:76: lib/Target/CBackend/CMakeFiles/LLVMCBackendCodeGen.dir/CBackend.cpp.o] Error 1
make[2]: *** [CMakeFiles/Makefile2:263: lib/Target/CBackend/CMakeFiles/LLVMCBackendCodeGen.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:427: tools/llvm-cbe/CMakeFiles/llvm-cbe.dir/rule] Error 2
make: *** [Makefile:286: llvm-cbe] Error 2

Fix: cast to FixedVectorType instead of VectorType for llvm 10 above