diff --git a/clang/lib/CodeGen/CMakeLists.txt b/clang/lib/CodeGen/CMakeLists.txt
--- a/clang/lib/CodeGen/CMakeLists.txt
+++ b/clang/lib/CodeGen/CMakeLists.txt
@@ -3,7 +3,7 @@
   Analysis
   BitReader
   BitWriter
-  CodeGen
+  CodeGenTypes
   Core
   Coroutines
   Coverage
diff --git a/llvm/lib/CodeGen/AsmPrinter/CMakeLists.txt b/llvm/lib/CodeGen/AsmPrinter/CMakeLists.txt
--- a/llvm/lib/CodeGen/AsmPrinter/CMakeLists.txt
+++ b/llvm/lib/CodeGen/AsmPrinter/CMakeLists.txt
@@ -34,6 +34,7 @@
   Analysis
   BinaryFormat
   CodeGen
+  CodeGenTypes
   Core
   DebugInfoCodeView
   DebugInfoDWARF
diff --git a/llvm/lib/CodeGen/CMakeLists.txt b/llvm/lib/CodeGen/CMakeLists.txt
--- a/llvm/lib/CodeGen/CMakeLists.txt
+++ b/llvm/lib/CodeGen/CMakeLists.txt
@@ -22,6 +22,16 @@
   endif()
 endif()
 
+# This provides the implementation of MVT and LLT.
+# Be careful to append deps on this, since Targets' tablegens depend on this.
+add_llvm_component_library(LLVMCodeGenTypes
+  LowLevelType.cpp
+  PARTIAL_SOURCES_INTENDED
+
+  LINK_COMPONENTS
+  Support
+  )
+
 add_llvm_component_library(LLVMCodeGen
   AggressiveAntiDepBreaker.cpp
   AllocationOrder.cpp
@@ -99,7 +109,6 @@
   LLVMTargetMachine.cpp
   LocalStackSlotAllocation.cpp
   LoopTraversal.cpp
-  LowLevelType.cpp
   LowLevelTypeUtils.cpp
   LowerEmuTLS.cpp
   MachineBasicBlock.cpp
@@ -262,6 +271,7 @@
   Analysis
   BitReader
   BitWriter
+  CodeGenTypes
   Core
   MC
   ObjCARC
diff --git a/llvm/lib/CodeGen/GlobalISel/CMakeLists.txt b/llvm/lib/CodeGen/GlobalISel/CMakeLists.txt
--- a/llvm/lib/CodeGen/GlobalISel/CMakeLists.txt
+++ b/llvm/lib/CodeGen/GlobalISel/CMakeLists.txt
@@ -33,6 +33,7 @@
   LINK_COMPONENTS
   Analysis
   CodeGen
+  CodeGenTypes
   Core
   MC
   SelectionDAG
diff --git a/llvm/lib/CodeGen/MIRParser/CMakeLists.txt b/llvm/lib/CodeGen/MIRParser/CMakeLists.txt
--- a/llvm/lib/CodeGen/MIRParser/CMakeLists.txt
+++ b/llvm/lib/CodeGen/MIRParser/CMakeLists.txt
@@ -13,6 +13,7 @@
   AsmParser
   BinaryFormat
   CodeGen
+  CodeGenTypes
   Core
   MC
   Support
diff --git a/llvm/lib/CodeGen/SelectionDAG/CMakeLists.txt b/llvm/lib/CodeGen/SelectionDAG/CMakeLists.txt
--- a/llvm/lib/CodeGen/SelectionDAG/CMakeLists.txt
+++ b/llvm/lib/CodeGen/SelectionDAG/CMakeLists.txt
@@ -31,6 +31,7 @@
   LINK_COMPONENTS
   Analysis
   CodeGen
+  CodeGenTypes
   Core
   MC
   Support
diff --git a/llvm/lib/DWARFLinker/CMakeLists.txt b/llvm/lib/DWARFLinker/CMakeLists.txt
--- a/llvm/lib/DWARFLinker/CMakeLists.txt
+++ b/llvm/lib/DWARFLinker/CMakeLists.txt
@@ -14,6 +14,7 @@
   AsmPrinter
   BinaryFormat
   CodeGen
+  CodeGenTypes
   DebugInfoDWARF
   MC
   Object
diff --git a/llvm/lib/LTO/CMakeLists.txt b/llvm/lib/LTO/CMakeLists.txt
--- a/llvm/lib/LTO/CMakeLists.txt
+++ b/llvm/lib/LTO/CMakeLists.txt
@@ -20,6 +20,7 @@
   BitReader
   BitWriter
   CodeGen
+  CodeGenTypes
   Core
   Extensions
   IPO
diff --git a/llvm/lib/Target/AArch64/AsmParser/CMakeLists.txt b/llvm/lib/Target/AArch64/AsmParser/CMakeLists.txt
--- a/llvm/lib/Target/AArch64/AsmParser/CMakeLists.txt
+++ b/llvm/lib/Target/AArch64/AsmParser/CMakeLists.txt
@@ -7,7 +7,7 @@
   AArch64Desc
   AArch64Info
   AArch64Utils
-  CodeGen
+  CodeGenTypes
   MC
   MCParser
   Support
diff --git a/llvm/lib/Target/AArch64/CMakeLists.txt b/llvm/lib/Target/AArch64/CMakeLists.txt
--- a/llvm/lib/Target/AArch64/CMakeLists.txt
+++ b/llvm/lib/Target/AArch64/CMakeLists.txt
@@ -99,6 +99,7 @@
   AsmPrinter
   CFGuard
   CodeGen
+  CodeGenTypes
   Core
   GlobalISel
   MC
diff --git a/llvm/lib/Target/AArch64/MCTargetDesc/CMakeLists.txt b/llvm/lib/Target/AArch64/MCTargetDesc/CMakeLists.txt
--- a/llvm/lib/Target/AArch64/MCTargetDesc/CMakeLists.txt
+++ b/llvm/lib/Target/AArch64/MCTargetDesc/CMakeLists.txt
@@ -16,7 +16,7 @@
   AArch64Info
   AArch64Utils
   BinaryFormat
-  CodeGen
+  CodeGenTypes
   MC
   Support
   TargetParser
diff --git a/llvm/lib/Target/AMDGPU/AsmParser/CMakeLists.txt b/llvm/lib/Target/AMDGPU/AsmParser/CMakeLists.txt
--- a/llvm/lib/Target/AMDGPU/AsmParser/CMakeLists.txt
+++ b/llvm/lib/Target/AMDGPU/AsmParser/CMakeLists.txt
@@ -5,7 +5,7 @@
   AMDGPUDesc
   AMDGPUInfo
   AMDGPUUtils
-  CodeGen
+  CodeGenTypes
   MC
   MCParser
   Support
diff --git a/llvm/lib/Target/AMDGPU/CMakeLists.txt b/llvm/lib/Target/AMDGPU/CMakeLists.txt
--- a/llvm/lib/Target/AMDGPU/CMakeLists.txt
+++ b/llvm/lib/Target/AMDGPU/CMakeLists.txt
@@ -172,6 +172,7 @@
   AsmPrinter
   BinaryFormat
   CodeGen
+  CodeGenTypes
   Core
   GlobalISel
   IPO
diff --git a/llvm/lib/Target/AMDGPU/Disassembler/CMakeLists.txt b/llvm/lib/Target/AMDGPU/Disassembler/CMakeLists.txt
--- a/llvm/lib/Target/AMDGPU/Disassembler/CMakeLists.txt
+++ b/llvm/lib/Target/AMDGPU/Disassembler/CMakeLists.txt
@@ -7,7 +7,7 @@
   AMDGPUDesc
   AMDGPUInfo
   AMDGPUUtils
-  CodeGen
+  CodeGenTypes
   MC
   MCDisassembler
   Support
diff --git a/llvm/lib/Target/AMDGPU/MCA/CMakeLists.txt b/llvm/lib/Target/AMDGPU/MCA/CMakeLists.txt
--- a/llvm/lib/Target/AMDGPU/MCA/CMakeLists.txt
+++ b/llvm/lib/Target/AMDGPU/MCA/CMakeLists.txt
@@ -5,7 +5,7 @@
   AMDGPUDesc
   AMDGPUInfo
   AMDGPUUtils
-  CodeGen
+  CodeGenTypes
   MC
   MCA
   MCParser
diff --git a/llvm/lib/Target/AMDGPU/MCTargetDesc/CMakeLists.txt b/llvm/lib/Target/AMDGPU/MCTargetDesc/CMakeLists.txt
--- a/llvm/lib/Target/AMDGPU/MCTargetDesc/CMakeLists.txt
+++ b/llvm/lib/Target/AMDGPU/MCTargetDesc/CMakeLists.txt
@@ -16,7 +16,7 @@
   AMDGPUInfo
   AMDGPUUtils
   BinaryFormat
-  CodeGen
+  CodeGenTypes
   Core
   MC
   Support
diff --git a/llvm/lib/Target/AMDGPU/Utils/CMakeLists.txt b/llvm/lib/Target/AMDGPU/Utils/CMakeLists.txt
--- a/llvm/lib/Target/AMDGPU/Utils/CMakeLists.txt
+++ b/llvm/lib/Target/AMDGPU/Utils/CMakeLists.txt
@@ -8,7 +8,7 @@
   LINK_COMPONENTS
   Analysis
   BinaryFormat
-  CodeGen
+  CodeGenTypes
   Core
   MC
   Support
diff --git a/llvm/lib/Target/ARC/CMakeLists.txt b/llvm/lib/Target/ARC/CMakeLists.txt
--- a/llvm/lib/Target/ARC/CMakeLists.txt
+++ b/llvm/lib/Target/ARC/CMakeLists.txt
@@ -33,6 +33,7 @@
   Analysis
   AsmPrinter
   CodeGen
+  CodeGenTypes
   Core
   MC
   SelectionDAG
diff --git a/llvm/lib/Target/ARC/Disassembler/CMakeLists.txt b/llvm/lib/Target/ARC/Disassembler/CMakeLists.txt
--- a/llvm/lib/Target/ARC/Disassembler/CMakeLists.txt
+++ b/llvm/lib/Target/ARC/Disassembler/CMakeLists.txt
@@ -3,7 +3,7 @@
 
   LINK_COMPONENTS
   ARCInfo
-  CodeGen
+  CodeGenTypes
   MCDisassembler
   Support
 
diff --git a/llvm/lib/Target/ARM/AsmParser/CMakeLists.txt b/llvm/lib/Target/ARM/AsmParser/CMakeLists.txt
--- a/llvm/lib/Target/ARM/AsmParser/CMakeLists.txt
+++ b/llvm/lib/Target/ARM/AsmParser/CMakeLists.txt
@@ -5,7 +5,7 @@
   ARMDesc
   ARMInfo
   ARMUtils
-  CodeGen
+  CodeGenTypes
   MC
   MCParser
   Support
diff --git a/llvm/lib/Target/ARM/CMakeLists.txt b/llvm/lib/Target/ARM/CMakeLists.txt
--- a/llvm/lib/Target/ARM/CMakeLists.txt
+++ b/llvm/lib/Target/ARM/CMakeLists.txt
@@ -77,6 +77,7 @@
   AsmPrinter
   CFGuard
   CodeGen
+  CodeGenTypes
   Core
   GlobalISel
   IPO
diff --git a/llvm/lib/Target/ARM/Disassembler/CMakeLists.txt b/llvm/lib/Target/ARM/Disassembler/CMakeLists.txt
--- a/llvm/lib/Target/ARM/Disassembler/CMakeLists.txt
+++ b/llvm/lib/Target/ARM/Disassembler/CMakeLists.txt
@@ -5,7 +5,7 @@
   ARMDesc
   ARMInfo
   ARMUtils
-  CodeGen
+  CodeGenTypes
   MC
   MCDisassembler
   Support
diff --git a/llvm/lib/Target/ARM/MCTargetDesc/CMakeLists.txt b/llvm/lib/Target/ARM/MCTargetDesc/CMakeLists.txt
--- a/llvm/lib/Target/ARM/MCTargetDesc/CMakeLists.txt
+++ b/llvm/lib/Target/ARM/MCTargetDesc/CMakeLists.txt
@@ -18,7 +18,7 @@
   ARMInfo
   ARMUtils
   BinaryFormat
-  CodeGen
+  CodeGenTypes
   MC
   MCDisassembler
   Support
diff --git a/llvm/lib/Target/AVR/AsmParser/CMakeLists.txt b/llvm/lib/Target/AVR/AsmParser/CMakeLists.txt
--- a/llvm/lib/Target/AVR/AsmParser/CMakeLists.txt
+++ b/llvm/lib/Target/AVR/AsmParser/CMakeLists.txt
@@ -4,7 +4,7 @@
   LINK_COMPONENTS
   AVRDesc
   AVRInfo
-  CodeGen
+  CodeGenTypes
   MC
   MCParser
   Support
diff --git a/llvm/lib/Target/AVR/CMakeLists.txt b/llvm/lib/Target/AVR/CMakeLists.txt
--- a/llvm/lib/Target/AVR/CMakeLists.txt
+++ b/llvm/lib/Target/AVR/CMakeLists.txt
@@ -36,6 +36,7 @@
   AVRInfo
   AsmPrinter
   CodeGen
+  CodeGenTypes
   Core
   MC
   SelectionDAG
diff --git a/llvm/lib/Target/AVR/Disassembler/CMakeLists.txt b/llvm/lib/Target/AVR/Disassembler/CMakeLists.txt
--- a/llvm/lib/Target/AVR/Disassembler/CMakeLists.txt
+++ b/llvm/lib/Target/AVR/Disassembler/CMakeLists.txt
@@ -3,7 +3,7 @@
 
   LINK_COMPONENTS
   AVRInfo
-  CodeGen
+  CodeGenTypes
   MC
   MCDisassembler
   Support
diff --git a/llvm/lib/Target/BPF/CMakeLists.txt b/llvm/lib/Target/BPF/CMakeLists.txt
--- a/llvm/lib/Target/BPF/CMakeLists.txt
+++ b/llvm/lib/Target/BPF/CMakeLists.txt
@@ -41,6 +41,7 @@
   BPFDesc
   BPFInfo
   CodeGen
+  CodeGenTypes
   Core
   IPO
   MC
diff --git a/llvm/lib/Target/CSKY/CMakeLists.txt b/llvm/lib/Target/CSKY/CMakeLists.txt
--- a/llvm/lib/Target/CSKY/CMakeLists.txt
+++ b/llvm/lib/Target/CSKY/CMakeLists.txt
@@ -36,6 +36,7 @@
   CSKYDesc
   CSKYInfo
   CodeGen
+  CodeGenTypes
   Core
   MC
   SelectionDAG
diff --git a/llvm/lib/Target/CSKY/MCTargetDesc/CMakeLists.txt b/llvm/lib/Target/CSKY/MCTargetDesc/CMakeLists.txt
--- a/llvm/lib/Target/CSKY/MCTargetDesc/CMakeLists.txt
+++ b/llvm/lib/Target/CSKY/MCTargetDesc/CMakeLists.txt
@@ -11,7 +11,7 @@
 
   LINK_COMPONENTS
   CSKYInfo
-  CodeGen
+  CodeGenTypes
   MC
   Support
   TargetParser
diff --git a/llvm/lib/Target/DirectX/CMakeLists.txt b/llvm/lib/Target/DirectX/CMakeLists.txt
--- a/llvm/lib/Target/DirectX/CMakeLists.txt
+++ b/llvm/lib/Target/DirectX/CMakeLists.txt
@@ -33,6 +33,7 @@
   Analysis
   AsmPrinter
   CodeGen
+  CodeGenTypes
   Core
   DXILBitWriter
   DirectXDesc
diff --git a/llvm/lib/Target/Hexagon/CMakeLists.txt b/llvm/lib/Target/Hexagon/CMakeLists.txt
--- a/llvm/lib/Target/Hexagon/CMakeLists.txt
+++ b/llvm/lib/Target/Hexagon/CMakeLists.txt
@@ -72,6 +72,7 @@
   Analysis
   AsmPrinter
   CodeGen
+  CodeGenTypes
   Core
   HexagonAsmParser
   HexagonDesc
diff --git a/llvm/lib/Target/Lanai/AsmParser/CMakeLists.txt b/llvm/lib/Target/Lanai/AsmParser/CMakeLists.txt
--- a/llvm/lib/Target/Lanai/AsmParser/CMakeLists.txt
+++ b/llvm/lib/Target/Lanai/AsmParser/CMakeLists.txt
@@ -4,7 +4,7 @@
   LanaiAsmParser.cpp
 
   LINK_COMPONENTS
-  CodeGen
+  CodeGenTypes
   LanaiDesc
   LanaiInfo
   MC
diff --git a/llvm/lib/Target/Lanai/CMakeLists.txt b/llvm/lib/Target/Lanai/CMakeLists.txt
--- a/llvm/lib/Target/Lanai/CMakeLists.txt
+++ b/llvm/lib/Target/Lanai/CMakeLists.txt
@@ -34,6 +34,7 @@
   Analysis
   AsmPrinter
   CodeGen
+  CodeGenTypes
   Core
   LanaiAsmParser
   LanaiDesc
diff --git a/llvm/lib/Target/Lanai/Disassembler/CMakeLists.txt b/llvm/lib/Target/Lanai/Disassembler/CMakeLists.txt
--- a/llvm/lib/Target/Lanai/Disassembler/CMakeLists.txt
+++ b/llvm/lib/Target/Lanai/Disassembler/CMakeLists.txt
@@ -2,7 +2,7 @@
   LanaiDisassembler.cpp
 
   LINK_COMPONENTS
-  CodeGen
+  CodeGenTypes
   LanaiDesc
   LanaiInfo
   MC
diff --git a/llvm/lib/Target/LoongArch/CMakeLists.txt b/llvm/lib/Target/LoongArch/CMakeLists.txt
--- a/llvm/lib/Target/LoongArch/CMakeLists.txt
+++ b/llvm/lib/Target/LoongArch/CMakeLists.txt
@@ -31,6 +31,7 @@
   Analysis
   AsmPrinter
   CodeGen
+  CodeGenTypes
   Core
   LoongArchDesc
   LoongArchInfo
diff --git a/llvm/lib/Target/M68k/AsmParser/CMakeLists.txt b/llvm/lib/Target/M68k/AsmParser/CMakeLists.txt
--- a/llvm/lib/Target/M68k/AsmParser/CMakeLists.txt
+++ b/llvm/lib/Target/M68k/AsmParser/CMakeLists.txt
@@ -2,7 +2,7 @@
   M68kAsmParser.cpp
 
   LINK_COMPONENTS
-  CodeGen
+  CodeGenTypes
   M68kCodeGen
   M68kInfo
   MC
diff --git a/llvm/lib/Target/M68k/CMakeLists.txt b/llvm/lib/Target/M68k/CMakeLists.txt
--- a/llvm/lib/Target/M68k/CMakeLists.txt
+++ b/llvm/lib/Target/M68k/CMakeLists.txt
@@ -40,6 +40,7 @@
   Analysis
   AsmPrinter
   CodeGen
+  CodeGenTypes
   Core
   GlobalISel
   M68kDesc
diff --git a/llvm/lib/Target/M68k/Disassembler/CMakeLists.txt b/llvm/lib/Target/M68k/Disassembler/CMakeLists.txt
--- a/llvm/lib/Target/M68k/Disassembler/CMakeLists.txt
+++ b/llvm/lib/Target/M68k/Disassembler/CMakeLists.txt
@@ -2,7 +2,7 @@
   M68kDisassembler.cpp
 
   LINK_COMPONENTS
-  CodeGen
+  CodeGenTypes
   M68kDesc
   M68kInfo
   MCDisassembler
diff --git a/llvm/lib/Target/MSP430/AsmParser/CMakeLists.txt b/llvm/lib/Target/MSP430/AsmParser/CMakeLists.txt
--- a/llvm/lib/Target/MSP430/AsmParser/CMakeLists.txt
+++ b/llvm/lib/Target/MSP430/AsmParser/CMakeLists.txt
@@ -2,7 +2,7 @@
   MSP430AsmParser.cpp
 
   LINK_COMPONENTS
-  CodeGen
+  CodeGenTypes
   MC
   MCParser
   MSP430Desc
diff --git a/llvm/lib/Target/MSP430/CMakeLists.txt b/llvm/lib/Target/MSP430/CMakeLists.txt
--- a/llvm/lib/Target/MSP430/CMakeLists.txt
+++ b/llvm/lib/Target/MSP430/CMakeLists.txt
@@ -30,6 +30,7 @@
   LINK_COMPONENTS
   AsmPrinter
   CodeGen
+  CodeGenTypes
   Core
   MC
   MSP430Desc
diff --git a/llvm/lib/Target/Mips/CMakeLists.txt b/llvm/lib/Target/Mips/CMakeLists.txt
--- a/llvm/lib/Target/Mips/CMakeLists.txt
+++ b/llvm/lib/Target/Mips/CMakeLists.txt
@@ -69,6 +69,7 @@
   Analysis
   AsmPrinter
   CodeGen
+  CodeGenTypes
   Core
   GlobalISel
   MC
diff --git a/llvm/lib/Target/Mips/MCTargetDesc/CMakeLists.txt b/llvm/lib/Target/Mips/MCTargetDesc/CMakeLists.txt
--- a/llvm/lib/Target/Mips/MCTargetDesc/CMakeLists.txt
+++ b/llvm/lib/Target/Mips/MCTargetDesc/CMakeLists.txt
@@ -14,7 +14,7 @@
   MipsTargetStreamer.cpp
 
   LINK_COMPONENTS
-  CodeGen
+  CodeGenTypes
   MC
   MipsInfo
   Support
diff --git a/llvm/lib/Target/NVPTX/CMakeLists.txt b/llvm/lib/Target/NVPTX/CMakeLists.txt
--- a/llvm/lib/Target/NVPTX/CMakeLists.txt
+++ b/llvm/lib/Target/NVPTX/CMakeLists.txt
@@ -46,6 +46,7 @@
   Analysis
   AsmPrinter
   CodeGen
+  CodeGenTypes
   Core
   IPO
   MC
diff --git a/llvm/lib/Target/PowerPC/CMakeLists.txt b/llvm/lib/Target/PowerPC/CMakeLists.txt
--- a/llvm/lib/Target/PowerPC/CMakeLists.txt
+++ b/llvm/lib/Target/PowerPC/CMakeLists.txt
@@ -66,6 +66,7 @@
   AsmPrinter
   BinaryFormat
   CodeGen
+  CodeGenTypes
   Core
   GlobalISel
   MC
diff --git a/llvm/lib/Target/PowerPC/MCTargetDesc/CMakeLists.txt b/llvm/lib/Target/PowerPC/MCTargetDesc/CMakeLists.txt
--- a/llvm/lib/Target/PowerPC/MCTargetDesc/CMakeLists.txt
+++ b/llvm/lib/Target/PowerPC/MCTargetDesc/CMakeLists.txt
@@ -13,7 +13,7 @@
 
   LINK_COMPONENTS
   BinaryFormat
-  CodeGen
+  CodeGenTypes
   MC
   PowerPCInfo
   Support
diff --git a/llvm/lib/Target/RISCV/CMakeLists.txt b/llvm/lib/Target/RISCV/CMakeLists.txt
--- a/llvm/lib/Target/RISCV/CMakeLists.txt
+++ b/llvm/lib/Target/RISCV/CMakeLists.txt
@@ -51,6 +51,7 @@
   Analysis
   AsmPrinter
   CodeGen
+  CodeGenTypes
   Core
   GlobalISel
   IPO
diff --git a/llvm/lib/Target/RISCV/MCA/CMakeLists.txt b/llvm/lib/Target/RISCV/MCA/CMakeLists.txt
--- a/llvm/lib/Target/RISCV/MCA/CMakeLists.txt
+++ b/llvm/lib/Target/RISCV/MCA/CMakeLists.txt
@@ -2,7 +2,7 @@
   RISCVCustomBehaviour.cpp
 
   LINK_COMPONENTS
-  CodeGen
+  CodeGenTypes
   MC
   MCA
   MCParser
diff --git a/llvm/lib/Target/SPIRV/CMakeLists.txt b/llvm/lib/Target/SPIRV/CMakeLists.txt
--- a/llvm/lib/Target/SPIRV/CMakeLists.txt
+++ b/llvm/lib/Target/SPIRV/CMakeLists.txt
@@ -39,6 +39,7 @@
   Analysis
   AsmPrinter
   CodeGen
+  CodeGenTypes
   Core
   Demangle
   GlobalISel
diff --git a/llvm/lib/Target/SPIRV/MCTargetDesc/CMakeLists.txt b/llvm/lib/Target/SPIRV/MCTargetDesc/CMakeLists.txt
--- a/llvm/lib/Target/SPIRV/MCTargetDesc/CMakeLists.txt
+++ b/llvm/lib/Target/SPIRV/MCTargetDesc/CMakeLists.txt
@@ -9,7 +9,7 @@
   SPIRVInstPrinter.cpp
 
   LINK_COMPONENTS
-  CodeGen
+  CodeGenTypes
   MC
   SPIRVInfo
   Support
diff --git a/llvm/lib/Target/Sparc/CMakeLists.txt b/llvm/lib/Target/Sparc/CMakeLists.txt
--- a/llvm/lib/Target/Sparc/CMakeLists.txt
+++ b/llvm/lib/Target/Sparc/CMakeLists.txt
@@ -32,6 +32,7 @@
   LINK_COMPONENTS
   AsmPrinter
   CodeGen
+  CodeGenTypes
   Core
   MC
   SelectionDAG
diff --git a/llvm/lib/Target/SystemZ/CMakeLists.txt b/llvm/lib/Target/SystemZ/CMakeLists.txt
--- a/llvm/lib/Target/SystemZ/CMakeLists.txt
+++ b/llvm/lib/Target/SystemZ/CMakeLists.txt
@@ -43,6 +43,7 @@
   Analysis
   AsmPrinter
   CodeGen
+  CodeGenTypes
   Core
   MC
   Scalar
diff --git a/llvm/lib/Target/SystemZ/MCTargetDesc/CMakeLists.txt b/llvm/lib/Target/SystemZ/MCTargetDesc/CMakeLists.txt
--- a/llvm/lib/Target/SystemZ/MCTargetDesc/CMakeLists.txt
+++ b/llvm/lib/Target/SystemZ/MCTargetDesc/CMakeLists.txt
@@ -7,7 +7,7 @@
   SystemZMCTargetDesc.cpp
 
   LINK_COMPONENTS
-  CodeGen
+  CodeGenTypes
   MC
   Support
   SystemZInfo
diff --git a/llvm/lib/Target/VE/AsmParser/CMakeLists.txt b/llvm/lib/Target/VE/AsmParser/CMakeLists.txt
--- a/llvm/lib/Target/VE/AsmParser/CMakeLists.txt
+++ b/llvm/lib/Target/VE/AsmParser/CMakeLists.txt
@@ -2,7 +2,7 @@
   VEAsmParser.cpp
 
   LINK_COMPONENTS
-  CodeGen
+  CodeGenTypes
   MC
   MCParser
   Support
diff --git a/llvm/lib/Target/VE/CMakeLists.txt b/llvm/lib/Target/VE/CMakeLists.txt
--- a/llvm/lib/Target/VE/CMakeLists.txt
+++ b/llvm/lib/Target/VE/CMakeLists.txt
@@ -32,6 +32,7 @@
   Analysis
   AsmPrinter
   CodeGen
+  CodeGenTypes
   Core
   MC
   SelectionDAG
diff --git a/llvm/lib/Target/VE/Disassembler/CMakeLists.txt b/llvm/lib/Target/VE/Disassembler/CMakeLists.txt
--- a/llvm/lib/Target/VE/Disassembler/CMakeLists.txt
+++ b/llvm/lib/Target/VE/Disassembler/CMakeLists.txt
@@ -2,7 +2,7 @@
   VEDisassembler.cpp
 
   LINK_COMPONENTS
-  CodeGen
+  CodeGenTypes
   MC
   MCDisassembler
   Support
diff --git a/llvm/lib/Target/VE/MCTargetDesc/CMakeLists.txt b/llvm/lib/Target/VE/MCTargetDesc/CMakeLists.txt
--- a/llvm/lib/Target/VE/MCTargetDesc/CMakeLists.txt
+++ b/llvm/lib/Target/VE/MCTargetDesc/CMakeLists.txt
@@ -9,7 +9,7 @@
   VETargetStreamer.cpp
 
   LINK_COMPONENTS
-  CodeGen
+  CodeGenTypes
   MC
   Support
   TargetParser
diff --git a/llvm/lib/Target/WebAssembly/AsmParser/CMakeLists.txt b/llvm/lib/Target/WebAssembly/AsmParser/CMakeLists.txt
--- a/llvm/lib/Target/WebAssembly/AsmParser/CMakeLists.txt
+++ b/llvm/lib/Target/WebAssembly/AsmParser/CMakeLists.txt
@@ -3,7 +3,7 @@
   WebAssemblyAsmTypeCheck.cpp
 
   LINK_COMPONENTS
-  CodeGen
+  CodeGenTypes
   MC
   MCParser
   Support
diff --git a/llvm/lib/Target/WebAssembly/CMakeLists.txt b/llvm/lib/Target/WebAssembly/CMakeLists.txt
--- a/llvm/lib/Target/WebAssembly/CMakeLists.txt
+++ b/llvm/lib/Target/WebAssembly/CMakeLists.txt
@@ -66,6 +66,7 @@
   AsmPrinter
   BinaryFormat
   CodeGen
+  CodeGenTypes
   Core
   MC
   Scalar
diff --git a/llvm/lib/Target/WebAssembly/Disassembler/CMakeLists.txt b/llvm/lib/Target/WebAssembly/Disassembler/CMakeLists.txt
--- a/llvm/lib/Target/WebAssembly/Disassembler/CMakeLists.txt
+++ b/llvm/lib/Target/WebAssembly/Disassembler/CMakeLists.txt
@@ -2,7 +2,7 @@
   WebAssemblyDisassembler.cpp
 
   LINK_COMPONENTS
-  CodeGen
+  CodeGenTypes
   MC
   MCDisassembler
   Support
diff --git a/llvm/lib/Target/WebAssembly/MCTargetDesc/CMakeLists.txt b/llvm/lib/Target/WebAssembly/MCTargetDesc/CMakeLists.txt
--- a/llvm/lib/Target/WebAssembly/MCTargetDesc/CMakeLists.txt
+++ b/llvm/lib/Target/WebAssembly/MCTargetDesc/CMakeLists.txt
@@ -9,7 +9,7 @@
   WebAssemblyWasmObjectWriter.cpp
 
   LINK_COMPONENTS
-  CodeGen
+  CodeGenTypes
   MC
   Support
   TargetParser
diff --git a/llvm/lib/Target/WebAssembly/Utils/CMakeLists.txt b/llvm/lib/Target/WebAssembly/Utils/CMakeLists.txt
--- a/llvm/lib/Target/WebAssembly/Utils/CMakeLists.txt
+++ b/llvm/lib/Target/WebAssembly/Utils/CMakeLists.txt
@@ -4,6 +4,7 @@
 
   LINK_COMPONENTS
   CodeGen
+  CodeGenTypes
   Core
   MC
   Support
diff --git a/llvm/lib/Target/X86/CMakeLists.txt b/llvm/lib/Target/X86/CMakeLists.txt
--- a/llvm/lib/Target/X86/CMakeLists.txt
+++ b/llvm/lib/Target/X86/CMakeLists.txt
@@ -95,6 +95,7 @@
   AsmPrinter
   CFGuard
   CodeGen
+  CodeGenTypes
   Core
   GlobalISel
   Instrumentation
diff --git a/llvm/lib/Target/X86/MCA/CMakeLists.txt b/llvm/lib/Target/X86/MCA/CMakeLists.txt
--- a/llvm/lib/Target/X86/MCA/CMakeLists.txt
+++ b/llvm/lib/Target/X86/MCA/CMakeLists.txt
@@ -2,7 +2,7 @@
   X86CustomBehaviour.cpp
 
   LINK_COMPONENTS
-  CodeGen
+  CodeGenTypes
   MC
   MCA
   MCParser
diff --git a/llvm/lib/Target/X86/MCTargetDesc/CMakeLists.txt b/llvm/lib/Target/X86/MCTargetDesc/CMakeLists.txt
--- a/llvm/lib/Target/X86/MCTargetDesc/CMakeLists.txt
+++ b/llvm/lib/Target/X86/MCTargetDesc/CMakeLists.txt
@@ -18,7 +18,7 @@
 
   LINK_COMPONENTS
   BinaryFormat
-  CodeGen
+  CodeGenTypes
   MC
   MCDisassembler
   Support
diff --git a/llvm/lib/Target/XCore/CMakeLists.txt b/llvm/lib/Target/XCore/CMakeLists.txt
--- a/llvm/lib/Target/XCore/CMakeLists.txt
+++ b/llvm/lib/Target/XCore/CMakeLists.txt
@@ -32,6 +32,7 @@
   Analysis
   AsmPrinter
   CodeGen
+  CodeGenTypes
   Core
   MC
   SelectionDAG
diff --git a/llvm/lib/Target/XCore/Disassembler/CMakeLists.txt b/llvm/lib/Target/XCore/Disassembler/CMakeLists.txt
--- a/llvm/lib/Target/XCore/Disassembler/CMakeLists.txt
+++ b/llvm/lib/Target/XCore/Disassembler/CMakeLists.txt
@@ -2,7 +2,7 @@
   XCoreDisassembler.cpp
 
   LINK_COMPONENTS
-  CodeGen
+  CodeGenTypes
   MC
   MCDisassembler
   Support
diff --git a/llvm/tools/dsymutil/CMakeLists.txt b/llvm/tools/dsymutil/CMakeLists.txt
--- a/llvm/tools/dsymutil/CMakeLists.txt
+++ b/llvm/tools/dsymutil/CMakeLists.txt
@@ -8,6 +8,7 @@
   AllTargetsInfos
   AsmPrinter
   CodeGen
+  CodeGenTypes
   DWARFLinker
   DebugInfoDWARF
   MC
diff --git a/llvm/tools/llc/CMakeLists.txt b/llvm/tools/llc/CMakeLists.txt
--- a/llvm/tools/llc/CMakeLists.txt
+++ b/llvm/tools/llc/CMakeLists.txt
@@ -6,6 +6,7 @@
   Analysis
   AsmPrinter
   CodeGen
+  CodeGenTypes
   Core
   IRReader
   MC
diff --git a/llvm/tools/llvm-dwarfutil/CMakeLists.txt b/llvm/tools/llvm-dwarfutil/CMakeLists.txt
--- a/llvm/tools/llvm-dwarfutil/CMakeLists.txt
+++ b/llvm/tools/llvm-dwarfutil/CMakeLists.txt
@@ -6,7 +6,7 @@
   AllTargetsCodeGens
   AllTargetsDescs
   AllTargetsInfos
-  CodeGen
+  CodeGenTypes
   DWARFLinker
   DebugInfoDWARF
   MC
diff --git a/llvm/tools/llvm-exegesis/CMakeLists.txt b/llvm/tools/llvm-exegesis/CMakeLists.txt
--- a/llvm/tools/llvm-exegesis/CMakeLists.txt
+++ b/llvm/tools/llvm-exegesis/CMakeLists.txt
@@ -4,7 +4,7 @@
   AllTargetsDescs
   AllTargetsDisassemblers
   AllTargetsInfos
-  CodeGen
+  CodeGenTypes
   MC
   MCParser
   Support
diff --git a/llvm/tools/llvm-exegesis/lib/AArch64/CMakeLists.txt b/llvm/tools/llvm-exegesis/lib/AArch64/CMakeLists.txt
--- a/llvm/tools/llvm-exegesis/lib/AArch64/CMakeLists.txt
+++ b/llvm/tools/llvm-exegesis/lib/AArch64/CMakeLists.txt
@@ -5,7 +5,7 @@
 
 set(LLVM_LINK_COMPONENTS
   AArch64
-  CodeGen
+  CodeGenTypes
   Core
   Exegesis
   MC
diff --git a/llvm/tools/llvm-exegesis/lib/CMakeLists.txt b/llvm/tools/llvm-exegesis/lib/CMakeLists.txt
--- a/llvm/tools/llvm-exegesis/lib/CMakeLists.txt
+++ b/llvm/tools/llvm-exegesis/lib/CMakeLists.txt
@@ -22,6 +22,7 @@
 set(LLVM_LINK_COMPONENTS
   Analysis
   CodeGen
+  CodeGenTypes
   Core
   ExecutionEngine
   GlobalISel
diff --git a/llvm/tools/llvm-exegesis/lib/Mips/CMakeLists.txt b/llvm/tools/llvm-exegesis/lib/Mips/CMakeLists.txt
--- a/llvm/tools/llvm-exegesis/lib/Mips/CMakeLists.txt
+++ b/llvm/tools/llvm-exegesis/lib/Mips/CMakeLists.txt
@@ -4,7 +4,7 @@
   )
 
 set(LLVM_LINK_COMPONENTS
-  CodeGen
+  CodeGenTypes
   Core
   Exegesis
   MC
diff --git a/llvm/tools/llvm-exegesis/lib/PowerPC/CMakeLists.txt b/llvm/tools/llvm-exegesis/lib/PowerPC/CMakeLists.txt
--- a/llvm/tools/llvm-exegesis/lib/PowerPC/CMakeLists.txt
+++ b/llvm/tools/llvm-exegesis/lib/PowerPC/CMakeLists.txt
@@ -4,7 +4,7 @@
   )
 
 set(LLVM_LINK_COMPONENTS
-  CodeGen
+  CodeGenTypes
   Core
   Exegesis
   MC
diff --git a/llvm/tools/llvm-exegesis/lib/X86/CMakeLists.txt b/llvm/tools/llvm-exegesis/lib/X86/CMakeLists.txt
--- a/llvm/tools/llvm-exegesis/lib/X86/CMakeLists.txt
+++ b/llvm/tools/llvm-exegesis/lib/X86/CMakeLists.txt
@@ -5,6 +5,7 @@
 
 set(LLVM_LINK_COMPONENTS
   CodeGen
+  CodeGenTypes
   Core
   Exegesis
   MC
diff --git a/llvm/tools/llvm-reduce/CMakeLists.txt b/llvm/tools/llvm-reduce/CMakeLists.txt
--- a/llvm/tools/llvm-reduce/CMakeLists.txt
+++ b/llvm/tools/llvm-reduce/CMakeLists.txt
@@ -7,6 +7,7 @@
   BitReader
   BitWriter
   CodeGen
+  CodeGenTypes
   Core
   IPO
   IRReader
diff --git a/llvm/unittests/CodeGen/CMakeLists.txt b/llvm/unittests/CodeGen/CMakeLists.txt
--- a/llvm/unittests/CodeGen/CMakeLists.txt
+++ b/llvm/unittests/CodeGen/CMakeLists.txt
@@ -4,6 +4,7 @@
   AsmParser
   AsmPrinter
   CodeGen
+  CodeGenTypes
   Core
   FileCheck
   MC
diff --git a/llvm/unittests/CodeGen/GlobalISel/CMakeLists.txt b/llvm/unittests/CodeGen/GlobalISel/CMakeLists.txt
--- a/llvm/unittests/CodeGen/GlobalISel/CMakeLists.txt
+++ b/llvm/unittests/CodeGen/GlobalISel/CMakeLists.txt
@@ -1,6 +1,7 @@
 set(LLVM_LINK_COMPONENTS
   ${LLVM_TARGETS_TO_BUILD}
   CodeGen
+  CodeGenTypes
   Core
   FileCheck
   GlobalISel
diff --git a/llvm/unittests/DebugInfo/DWARF/CMakeLists.txt b/llvm/unittests/DebugInfo/DWARF/CMakeLists.txt
--- a/llvm/unittests/DebugInfo/DWARF/CMakeLists.txt
+++ b/llvm/unittests/DebugInfo/DWARF/CMakeLists.txt
@@ -2,7 +2,7 @@
   ${LLVM_TARGETS_TO_BUILD}
   AsmPrinter
   BinaryFormat
-  CodeGen
+  CodeGenTypes
   DebugInfoDWARF
   MC
   Object
diff --git a/llvm/unittests/MI/CMakeLists.txt b/llvm/unittests/MI/CMakeLists.txt
--- a/llvm/unittests/MI/CMakeLists.txt
+++ b/llvm/unittests/MI/CMakeLists.txt
@@ -1,6 +1,7 @@
 set(LLVM_LINK_COMPONENTS
   ${LLVM_TARGETS_TO_BUILD}
   CodeGen
+  CodeGenTypes
   Core
   MC
   MIRParser
diff --git a/llvm/unittests/MIR/CMakeLists.txt b/llvm/unittests/MIR/CMakeLists.txt
--- a/llvm/unittests/MIR/CMakeLists.txt
+++ b/llvm/unittests/MIR/CMakeLists.txt
@@ -1,6 +1,7 @@
 set(LLVM_LINK_COMPONENTS
   ${LLVM_TARGETS_TO_BUILD}
   CodeGen
+  CodeGenTypes
   Core
   FileCheck
   MC
diff --git a/llvm/unittests/Target/AArch64/CMakeLists.txt b/llvm/unittests/Target/AArch64/CMakeLists.txt
--- a/llvm/unittests/Target/AArch64/CMakeLists.txt
+++ b/llvm/unittests/Target/AArch64/CMakeLists.txt
@@ -10,6 +10,7 @@
   AArch64Utils
   AsmParser
   CodeGen
+  CodeGenTypes
   Core
   GlobalISel
   MC
diff --git a/llvm/unittests/Target/AMDGPU/CMakeLists.txt b/llvm/unittests/Target/AMDGPU/CMakeLists.txt
--- a/llvm/unittests/Target/AMDGPU/CMakeLists.txt
+++ b/llvm/unittests/Target/AMDGPU/CMakeLists.txt
@@ -9,6 +9,7 @@
   AMDGPUInfo
   AMDGPUUtils
   CodeGen
+  CodeGenTypes
   Core
   MC
   Support
diff --git a/llvm/unittests/Target/ARM/CMakeLists.txt b/llvm/unittests/Target/ARM/CMakeLists.txt
--- a/llvm/unittests/Target/ARM/CMakeLists.txt
+++ b/llvm/unittests/Target/ARM/CMakeLists.txt
@@ -8,6 +8,7 @@
   ARMDesc
   ARMInfo
   CodeGen
+  CodeGenTypes
   Core
   GlobalISel
   MC
diff --git a/llvm/unittests/Target/LoongArch/CMakeLists.txt b/llvm/unittests/Target/LoongArch/CMakeLists.txt
--- a/llvm/unittests/Target/LoongArch/CMakeLists.txt
+++ b/llvm/unittests/Target/LoongArch/CMakeLists.txt
@@ -5,6 +5,7 @@
 
 set(LLVM_LINK_COMPONENTS
   CodeGen
+  CodeGenTypes
   Core
   LoongArchCodeGen
   LoongArchDesc
diff --git a/llvm/unittests/Target/WebAssembly/CMakeLists.txt b/llvm/unittests/Target/WebAssembly/CMakeLists.txt
--- a/llvm/unittests/Target/WebAssembly/CMakeLists.txt
+++ b/llvm/unittests/Target/WebAssembly/CMakeLists.txt
@@ -5,6 +5,7 @@
 
 set(LLVM_LINK_COMPONENTS
   CodeGen
+  CodeGenTypes
   Core
   MC
   MIRParser
diff --git a/llvm/unittests/Target/X86/CMakeLists.txt b/llvm/unittests/Target/X86/CMakeLists.txt
--- a/llvm/unittests/Target/X86/CMakeLists.txt
+++ b/llvm/unittests/Target/X86/CMakeLists.txt
@@ -7,6 +7,7 @@
   Analysis
   AsmParser
   CodeGen
+  CodeGenTypes
   Core
   InstCombine
   MC
diff --git a/llvm/unittests/tools/llvm-exegesis/CMakeLists.txt b/llvm/unittests/tools/llvm-exegesis/CMakeLists.txt
--- a/llvm/unittests/tools/llvm-exegesis/CMakeLists.txt
+++ b/llvm/unittests/tools/llvm-exegesis/CMakeLists.txt
@@ -3,6 +3,7 @@
   )
 
 set(LLVM_LINK_COMPONENTS
+  CodeGenTypes
   MC
   MCParser
   Object
diff --git a/llvm/utils/TableGen/CMakeLists.txt b/llvm/utils/TableGen/CMakeLists.txt
--- a/llvm/utils/TableGen/CMakeLists.txt
+++ b/llvm/utils/TableGen/CMakeLists.txt
@@ -26,7 +26,7 @@
 set_target_properties(llvm-min-tblgen PROPERTIES FOLDER "Tablegenning")
 
 set(LLVM_LINK_COMPONENTS
-  CodeGen
+  CodeGenTypes
   Support
   )
 
diff --git a/llvm/utils/TableGen/GlobalISel/CMakeLists.txt b/llvm/utils/TableGen/GlobalISel/CMakeLists.txt
--- a/llvm/utils/TableGen/GlobalISel/CMakeLists.txt
+++ b/llvm/utils/TableGen/GlobalISel/CMakeLists.txt
@@ -1,5 +1,5 @@
 set(LLVM_LINK_COMPONENTS
-  CodeGen
+  CodeGenTypes
   Support
   TableGen
   )
diff --git a/utils/bazel/llvm-project-overlay/clang/BUILD.bazel b/utils/bazel/llvm-project-overlay/clang/BUILD.bazel
--- a/utils/bazel/llvm-project-overlay/clang/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/clang/BUILD.bazel
@@ -1755,7 +1755,7 @@
         "//llvm:BitReader",
         "//llvm:BitWriter",
         "//llvm:BitstreamReader",
-        "//llvm:CodeGen",
+        "//llvm:CodeGenTypes",
         "//llvm:Core",
         "//llvm:Coroutines",
         "//llvm:Coverage",
diff --git a/utils/bazel/llvm-project-overlay/llvm/BUILD.bazel b/utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
--- a/utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
@@ -616,7 +616,7 @@
     features = ["-header_modules"],
     strip_include_prefix = "utils/TableGen",
     deps = [
-        ":CodeGen",
+        ":CodeGenTypes",
         ":Support",
         ":TableGen",
         ":config",
@@ -643,7 +643,7 @@
     copts = llvm_copts,
     stamp = 0,
     deps = [
-        ":CodeGen",
+        ":CodeGenTypes",
         ":Support",
         ":TableGen",
         ":TableGenGlobalISel",
@@ -1667,6 +1667,21 @@
     textual_hdrs = glob(["lib/CodeGen/AsmPrinter/*.def"]),
 )
 
+cc_library(
+    name = "CodeGenTypes",
+    srcs = [
+        "lib/CodeGen/LowLevelType.cpp",
+    ],
+    hdrs = [
+        "include/llvm/CodeGen/LowLevelType.h",
+        "include/llvm/CodeGen/MachineValueType.h",
+    ],
+    copts = llvm_copts,
+    deps = [
+        ":Support",
+    ],
+)
+
 cc_library(
     name = "CodeGen",
     srcs = glob(
@@ -1676,6 +1691,9 @@
             "lib/CodeGen/SelectionDAG/*.cpp",
             "lib/CodeGen/SelectionDAG/*.h",
         ],
+        exclude = [
+            "lib/CodeGen/LowLevelType.cpp",
+        ],
     ),
     hdrs = [
         "include/llvm/LinkAllPasses.h",
@@ -1696,6 +1714,7 @@
         ":BinaryFormat",
         ":BitReader",
         ":BitWriter",
+        ":CodeGenTypes",
         ":Core",
         ":DebugInfoCodeView",
         ":DebugInfoDWARF",
@@ -2213,6 +2232,7 @@
             # Depending on `:CodeGen` headers in this library is almost
             # certainly a layering problem in numerous targets.
             ":CodeGen",
+            ":CodeGenTypes",
             ":DebugInfoCodeView",
             ":MC",
             ":MCDisassembler",
@@ -2245,6 +2265,7 @@
             ":BinaryFormat",
             ":CFGuard",
             ":CodeGen",
+            ":CodeGenTypes",
             ":Core",
             ":IPO",
             ":MC",
@@ -2270,6 +2291,7 @@
         copts = llvm_copts,
         deps = [
             ":BinaryFormat",
+            ":CodeGenTypes",
             ":MC",
             ":MCParser",
             ":Support",
@@ -2315,7 +2337,7 @@
         copts = llvm_copts,
         features = ["-layering_check"],
         deps = [
-            ":CodeGen",
+            ":CodeGenTypes",
             ":Core",
             ":MC",
             ":MCDisassembler",
@@ -2337,7 +2359,7 @@
         copts = llvm_copts,
         features = ["-layering_check"],
         deps = [
-            ":CodeGen",
+            ":CodeGenTypes",
             ":MC",
             ":MCA",
             ":MCParser",
@@ -2457,6 +2479,7 @@
         ":BitReader",
         ":BitWriter",
         ":CodeGen",
+        ":CodeGenTypes",
         ":Core",
         ":IPO",
         ":IRPrinter",
@@ -2709,6 +2732,7 @@
     deps = [
         ":BinaryFormat",
         ":CodeGen",
+        ":CodeGenTypes",
         ":DebugInfoDWARF",
         ":MC",
         ":Support",
@@ -2935,6 +2959,7 @@
         ":AllTargetsAsmParsers",
         ":AllTargetsCodeGens",
         ":CodeGen",
+        ":CodeGenTypes",
         ":Core",
         ":ExecutionEngine",
         ":MC",
@@ -2986,6 +3011,7 @@
         ":AllTargetsCodeGens",
         ":BinaryFormat",
         ":CodeGen",
+        ":CodeGenTypes",
         ":DWARFLinker",
         ":DebugInfo",
         ":DebugInfoDWARF",
@@ -3017,6 +3043,7 @@
         ":AsmParser",
         ":BitReader",
         ":CodeGen",
+        ":CodeGenTypes",
         ":Core",
         ":IRPrinter",
         ":IRReader",
@@ -3406,7 +3433,7 @@
     deps = [
         ":AllTargetsAsmParsers",
         ":AllTargetsCodeGens",
-        ":CodeGen",
+        ":CodeGenTypes",
         ":DWARFLinker",
         ":DebugInfoDWARF",
         ":DwarfutilOptionsTableGen",
@@ -3447,7 +3474,7 @@
         ":AllTargetsAsmParsers",
         ":AllTargetsCodeGens",
         ":AllTargetsDisassemblers",
-        ":CodeGen",
+        ":CodeGenTypes",
         ":Exegesis",
         ":MC",
         ":MCParser",
@@ -4311,6 +4338,7 @@
         ":BitReader",
         ":BitWriter",
         ":CodeGen",
+        ":CodeGenTypes",
         ":Core",
         ":IPO",
         ":IRReader",
diff --git a/utils/bazel/llvm-project-overlay/llvm/unittests/BUILD.bazel b/utils/bazel/llvm-project-overlay/llvm/unittests/BUILD.bazel
--- a/utils/bazel/llvm-project-overlay/llvm/unittests/BUILD.bazel
+++ b/utils/bazel/llvm-project-overlay/llvm/unittests/BUILD.bazel
@@ -141,6 +141,7 @@
         "//llvm:AsmParser",
         "//llvm:BinaryFormat",
         "//llvm:CodeGen",
+        "//llvm:CodeGenTypes",
         "//llvm:Core",
         "//llvm:MC",
         "//llvm:Passes",
@@ -169,6 +170,7 @@
         "//llvm:AllTargetsAsmParsers",
         "//llvm:AllTargetsCodeGens",
         "//llvm:CodeGen",
+        "//llvm:CodeGenTypes",
         "//llvm:Core",
         "//llvm:FileCheckLib",
         "//llvm:MC",
@@ -202,7 +204,7 @@
         "//llvm:AllTargetsAsmParsers",
         "//llvm:AllTargetsCodeGens",
         "//llvm:BinaryFormat",
-        "//llvm:CodeGen",
+        "//llvm:CodeGenTypes",
         "//llvm:Core",
         "//llvm:DebugInfo",
         "//llvm:DebugInfoDWARF",
@@ -448,6 +450,7 @@
         "//llvm:AllTargetsAsmParsers",
         "//llvm:AllTargetsCodeGens",
         "//llvm:CodeGen",
+        "//llvm:CodeGenTypes",
         "//llvm:Core",
         "//llvm:MC",
         "//llvm:Support",
@@ -710,6 +713,7 @@
         "//llvm:AArch64UtilsAndDesc",
         "//llvm:AsmParser",
         "//llvm:CodeGen",
+        "//llvm:CodeGenTypes",
         "//llvm:Core",
         "//llvm:MC",
         "//llvm:Support",
@@ -778,7 +782,7 @@
     deps = [
         "//llvm:AllTargetsCodeGens",
         "//llvm:AllTargetsDisassemblers",
-        "//llvm:CodeGen",
+        "//llvm:CodeGenTypes",
         "//llvm:Exegesis",
         "//llvm:MC",
         "//llvm:MCDisassembler",