module LLVM_Analysis {
  requires cplusplus
  umbrella "Analysis"
  module * { export * }

  // This is intended for (repeated) textual inclusion.
  textual header "Analysis/TargetLibraryInfo.def"
}

module LLVM_AsmParser { requires cplusplus umbrella "AsmParser" module * { export * } }

// A module covering CodeGen/ and Target/. These are intertwined
// and codependent, and thus notionally form a single module.
module LLVM_Backend {
  requires cplusplus

  module CodeGen {
    umbrella "CodeGen"
    module * { export * }

    // Exclude these; they're intended to be included into only a single
    // translation unit (or none) and aren't part of this module.
    exclude header "CodeGen/CommandFlags.h"
    exclude header "CodeGen/LinkAllAsmWriterComponents.h"
    exclude header "CodeGen/LinkAllCodegenComponents.h"
    exclude header "CodeGen/GlobalISel/InstructionSelectorImpl.h"

    // These are intended for (repeated) textual inclusion.
    textual header "CodeGen/DIEValue.def"
  }

  module Target {
    umbrella "Target"
    module * { export * }

    // This is intended for (repeated) textual inclusion.
    textual header "Target/TargetOpcodes.def"
  }
}

module LLVM_Bitcode { requires cplusplus umbrella "Bitcode" module * { export * } }

module LLVM_BinaryFormat {
    requires cplusplus
    umbrella "BinaryFormat" module * { export * }
    textual header "BinaryFormat/Dwarf.def"
    textual header "BinaryFormat/MachO.def"
    textual header "BinaryFormat/ELFRelocs/AArch64.def"
    textual header "BinaryFormat/ELFRelocs/AMDGPU.def"
    textual header "BinaryFormat/ELFRelocs/ARM.def"
    textual header "BinaryFormat/ELFRelocs/AVR.def"
    textual header "BinaryFormat/ELFRelocs/BPF.def"
    textual header "BinaryFormat/ELFRelocs/Hexagon.def"
    textual header "BinaryFormat/ELFRelocs/i386.def"
    textual header "BinaryFormat/ELFRelocs/Lanai.def"
    textual header "BinaryFormat/ELFRelocs/Mips.def"
    textual header "BinaryFormat/ELFRelocs/PowerPC64.def"
    textual header "BinaryFormat/ELFRelocs/PowerPC.def"
    textual header "BinaryFormat/ELFRelocs/RISCV.def"
    textual header "BinaryFormat/ELFRelocs/Sparc.def"
    textual header "BinaryFormat/ELFRelocs/SystemZ.def"
    textual header "BinaryFormat/ELFRelocs/x86_64.def"
    textual header "BinaryFormat/ELFRelocs/WebAssembly.def"
    textual header "BinaryFormat/WasmRelocs/WebAssembly.def"
}

module LLVM_Config { requires cplusplus umbrella "Config" module * { export * } }

module LLVM_DebugInfo {
  requires cplusplus
  module DIContext { header "DebugInfo/DIContext.h" export * }
}

module LLVM_DebugInfo_DWARF {
  requires cplusplus

  umbrella "DebugInfo/DWARF"
  module * { export * }
}

module LLVM_DebugInfo_PDB {
  requires cplusplus

  umbrella "DebugInfo/PDB"
  module * { export * }

  // Separate out this subdirectory; it's an optional component that depends on
  // a separate library which might not be available.
  //
  // FIXME: There should be a better way to specify this.
  exclude header "DebugInfo/PDB/DIA/DIADataStream.h"
  exclude header "DebugInfo/PDB/DIA/DIAEnumDebugStreams.h"
  exclude header "DebugInfo/PDB/DIA/DIAEnumLineNumbers.h"
  exclude header "DebugInfo/PDB/DIA/DIAEnumSourceFiles.h"
  exclude header "DebugInfo/PDB/DIA/DIAEnumSymbols.h"
  exclude header "DebugInfo/PDB/DIA/DIALineNumber.h"
  exclude header "DebugInfo/PDB/DIA/DIARawSymbol.h"
  exclude header "DebugInfo/PDB/DIA/DIASession.h"
  exclude header "DebugInfo/PDB/DIA/DIASourceFile.h"
  exclude header "DebugInfo/PDB/DIA/DIASupport.h"
}

module LLVM_DebugInfo_PDB_DIA {
  requires cplusplus

  umbrella "DebugInfo/PDB/DIA"
  module * { export * }
}

module LLVM_DebugInfo_MSF {
  requires cplusplus

  umbrella "DebugInfo/MSF"
  module * { export * }
}

module LLVM_DebugInfo_CodeView {
  requires cplusplus

  umbrella "DebugInfo/CodeView"
  module * { export * }

  // These are intended for (repeated) textual inclusion.
  textual header "DebugInfo/CodeView/CodeViewTypes.def"
  textual header "DebugInfo/CodeView/CodeViewSymbols.def"
}

module LLVM_ExecutionEngine {
  requires cplusplus

  umbrella "ExecutionEngine"
  module * { export * }

  // Exclude this; it's an optional component of the ExecutionEngine.
  exclude header "ExecutionEngine/OProfileWrapper.h"

  // Exclude these; they're intended to be included into only a single
  // translation unit (or none) and aren't part of this module.
  exclude header "ExecutionEngine/MCJIT.h"
  exclude header "ExecutionEngine/Interpreter.h"
  exclude header "ExecutionEngine/OrcMCJITReplacement.h"

  // FIXME: These exclude directives were added as a workaround for
  //        <rdar://problem/29247092> and should be removed once it is fixed.
  exclude header "ExecutionEngine/Orc/RawByteChannel.h"
  exclude header "ExecutionEngine/Orc/RPCUtils.h"
  exclude header "ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.h"
  exclude header "ExecutionEngine/Orc/OrcRemoteTargetClient.h"
  exclude header "ExecutionEngine/Orc/OrcRemoteTargetServer.h"
}

module LLVM_Pass {
  module Pass {
    // PassSupport.h and PassAnalysisSupport.h are made available only through
    // Pass.h.
    header "Pass.h"
    header "PassSupport.h"
    header "PassAnalysisSupport.h"
    export *
  }

  module PassRegistry { header "PassRegistry.h" export * }
  module InitializePasses { header "InitializePasses.h" export * }
}

module LLVM_intrinsic_gen {
  requires cplusplus

  // Delay building the modules containing dependencies to Attributes.h and
  // Intrinsics.h because they need to be generated by tablegen first.

  // Attributes.h
  module IR_Argument { header "IR/Argument.h" export * }
  module IR_Attributes { header "IR/Attributes.h" export * }
  module IR_CallSite { header "IR/CallSite.h" export * }
  module IR_ConstantFolder { header "IR/ConstantFolder.h" export * }
  module IR_GlobalVariable { header "IR/GlobalVariable.h" export * }
  module IR_NoFolder { header "IR/NoFolder.h" export * }
  module IR_Module { header "IR/Module.h" export * }
  module IR_ModuleSummaryIndex { header "IR/ModuleSummaryIndex.h" export * }
  module IR_ModuleSummaryIndexYAML { header "IR/ModuleSummaryIndexYAML.h" export * }
  module IR_Function { header "IR/Function.h" export * }
  module IR_InstrTypes { header "IR/InstrTypes.h" export * }
  module IR_Instructions { header "IR/Instructions.h" export * }


  // Intrinsics.h
  module IR_CFG { header "IR/CFG.h" export * }
  module IR_ConstantRange { header "IR/ConstantRange.h" export * }
  module IR_Dominators { header "IR/Dominators.h" export * }
  module IR_IRBuilder { header "IR/IRBuilder.h" export * }
  module IR_PassManager { header "IR/PassManager.h" export * }
  module IR_PredIteratorCache { header "IR/PredIteratorCache.h" export * }
  module IR_Verifier { header "IR/Verifier.h" export * }
  module IR_InstIterator { header "IR/InstIterator.h" export * }
  module IR_InstVisitor { header "IR/InstVisitor.h" export * }
  module IR_Intrinsics { header "IR/Intrinsics.h" export * }
  module IR_IntrinsicInst { header "IR/IntrinsicInst.h" export * }
  module IR_PatternMatch { header "IR/PatternMatch.h" export * }
  module IR_Statepoint { header "IR/Statepoint.h" export * }

  export *
}

module LLVM_IR {
  requires cplusplus

  umbrella "IR"
  module * { export * }

  // These are intended for (repeated) textual inclusion.
  textual header "IR/DebugInfoFlags.def"
  textual header "IR/Instruction.def"
  textual header "IR/Metadata.def"
  textual header "IR/Value.def"
}

module LLVM_IRReader { requires cplusplus umbrella "IRReader" module * { export * } }
module LLVM_LineEditor { requires cplusplus umbrella "LineEditor" module * { export * } }
module LLVM_LTO { requires cplusplus umbrella "LTO" module * { export * } }

module LLVM_MC {
  requires cplusplus

  // FIXME: Mislayered?
  module Support_TargetRegistry {
    header "Support/TargetRegistry.h"
    export *
  }

  umbrella "MC"
  module * { export * }

  // Exclude this; it's fundamentally non-modular.
  exclude header "MC/MCTargetOptionsCommandFlags.h"
}

module LLVM_Object {
  requires cplusplus
  umbrella "Object"
  module * { export * }
}

module LLVM_Option { requires cplusplus umbrella "Option" module * { export * } }

module LLVM_ProfileData {
  requires cplusplus

  umbrella "ProfileData"
  module * { export * }

  textual header "ProfileData/InstrProfData.inc"
}

module LLVM_TableGen { requires cplusplus umbrella "TableGen" module * { export * } }

module LLVM_Transforms {
  requires cplusplus
  umbrella "Transforms"
  module * { export * }
}

// A module covering ADT/ and Support/. These are intertwined and
// codependent, and notionally form a single module.
module LLVM_Utils {
  module ADT {
    requires cplusplus

    umbrella "ADT"
    module * { export * }
  }

  module Support {
    requires cplusplus

    umbrella "Support"
    module * { export * }

    // Exclude these; they are fundamentally non-modular.
    exclude header "Support/PluginLoader.h"
    exclude header "Support/Solaris/sys/regset.h"

    // These are intended for textual inclusion.
    textual header "Support/ARMTargetParser.def"
    textual header "Support/AArch64TargetParser.def"
  }

  // This part of the module is usable from both C and C++ code.
  module ConvertUTF {
    header "Support/ConvertUTF.h"
    export *
  }

  module LLVM_CodeGen_MachineValueType {
    requires cplusplus
    header "CodeGen/MachineValueType.h"
    export *
  }
}

// This is used for a $src == $build compilation. Otherwise we use
// LLVM_Support_DataTypes_Build, defined in a module map that is
// copied into the build area.
module LLVM_Support_DataTypes_Src {
  header "llvm/Support/DataTypes.h"
  export *
}
