================
@@ -39,6 +39,7 @@ ENUM_CODEGENOPT(RelocationModel, llvm::Reloc::Model, 3, 
llvm::Reloc::PIC_) ///<
 ENUM_CODEGENOPT(DebugInfo,  llvm::codegenoptions::DebugInfoKind, 4,  
llvm::codegenoptions::NoDebugInfo) ///< Level of debug info to generate
 ENUM_CODEGENOPT(VecLib, llvm::driver::VectorLibrary, 3, 
llvm::driver::VectorLibrary::NoLibrary) ///< Vector functions library to use
 ENUM_CODEGENOPT(FramePointer, llvm::FramePointerKind, 2, 
llvm::FramePointerKind::None) ///< Enable the usage of frame pointers
+ENUM_CODEGENOPT(CodeModel, llvm::CodeModel::Model, 5, 
llvm::CodeModel::Model::Small)
----------------
tblah wrote:

What was your reasoning for defaulting to `llvm::CodeModel::Model::Small` here? 
So far as I can tell, clang avoids setting it when the option is not specified 
explicitly: 
https://github.com/llvm/llvm-project/blob/44df1167f88cabbb4cfde816f279337379ea30b3/clang/lib/CodeGen/CodeGenModule.cpp#L1304

In LLVM, the code model logic seems to get overridden in each implementation of 
LLVMTargetMachine. The first one I looked at does default to 
llvm::CodeModel::Model::Small, but I don't know whether that will always be 
true for every target.

I think it would be safer to store this as a std::optional instead of a 
bitfield.

https://github.com/llvm/llvm-project/pull/95411
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to