# Copyright 2016 The SwiftShader Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import("../../src/swiftshader.gni")

# Need a separate config to ensure the warnings are added to the end.
config("swiftshader_llvm_private_config") {
  cflags = []

  if (is_win) {
    cflags += [
      "/wd4005",
      "/wd4065",
      "/wd4146",
      "/wd4245",
      "/wd4267",
      "/wd4310",
      "/wd4319",
      "/wd4334",
      "/wd4389",
      "/wd4624",
      "/wd4701",
      "/wd4702",
      "/wd4703",
      "/wd4706",
      "/wd4800",
    ]

    if (!is_debug) {
      cflags += [ "/wd4324" ]
    }

    if (is_clang) {
      cflags += [
        "-Wno-format",
        "-Wno-sign-compare",
        "-Wno-macro-redefined",
      ]
    }
  }

  if (is_fuchsia) {
    cflags += [ "-Wno-error" ]
  }

  if (is_clang) {
    cflags += [ "-Wno-header-hygiene",
                "-Wno-error=header-hygiene"
    ]
    if (target_cpu == "x86" || target_cpu == "x64") {
      cflags += [ "-msse2" ]
    }
  }

  cflags += [
    "-Wno-attributes",
    "-Wno-deprecated-declarations",
    "-Wno-enum-compare",
    "-Wno-unused-function",
    "-Wno-unused-local-typedef",
    "-Wno-unused-private-field",
    "-Wno-unused-result",
    "-Wno-unused-variable",
  ]

  defines = [
    "__STDC_CONSTANT_MACROS",
    "__STDC_LIMIT_MACROS",
  ]
}

llvm_include_dirs = [
  "llvm/include/",
  "llvm/lib/Target/AArch64/",
  "llvm/lib/Target/ARM/",
  "llvm/lib/Target/Mips/",
  "llvm/lib/Target/X86/",
  "configs/common/include/",
  "configs/common/lib/IR/",
  "configs/common/lib/Target/AArch64/",
  "configs/common/lib/Target/ARM/",
  "configs/common/lib/Target/Mips/",
  "configs/common/lib/Target/X86/",
  "configs/common/lib/Transforms/InstCombine/",
]

if (is_linux) {
  llvm_include_dirs += [ "configs/linux/include/" ]
} else if (is_fuchsia) {
  llvm_include_dirs += [ "configs/fuchsia/include/" ]
} else if (is_win) {
  llvm_include_dirs += [ "configs/windows/include/" ]
} else if (is_android) {
  llvm_include_dirs += [ "configs/android/include/" ]
} else {
  assert(false, "llvm-7.0 not configured for target platform")
}

swiftshader_source_set("swiftshader_llvm") {
  sources = [
    "llvm/lib/Analysis/AliasAnalysis.cpp",
    "llvm/lib/Analysis/AliasAnalysisEvaluator.cpp",
    "llvm/lib/Analysis/AliasAnalysisSummary.cpp",
    "llvm/lib/Analysis/AliasSetTracker.cpp",
    "llvm/lib/Analysis/Analysis.cpp",
    "llvm/lib/Analysis/AssumptionCache.cpp",
    "llvm/lib/Analysis/BasicAliasAnalysis.cpp",
    "llvm/lib/Analysis/BlockFrequencyInfo.cpp",
    "llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp",
    "llvm/lib/Analysis/BranchProbabilityInfo.cpp",
    "llvm/lib/Analysis/CFG.cpp",
    "llvm/lib/Analysis/CFGPrinter.cpp",
    "llvm/lib/Analysis/CFLAndersAliasAnalysis.cpp",
    "llvm/lib/Analysis/CFLSteensAliasAnalysis.cpp",
    "llvm/lib/Analysis/CGSCCPassManager.cpp",
    "llvm/lib/Analysis/CallGraph.cpp",
    "llvm/lib/Analysis/CallGraphSCCPass.cpp",
    "llvm/lib/Analysis/CallPrinter.cpp",
    "llvm/lib/Analysis/CaptureTracking.cpp",
    "llvm/lib/Analysis/CmpInstAnalysis.cpp",
    "llvm/lib/Analysis/CodeMetrics.cpp",
    "llvm/lib/Analysis/ConstantFolding.cpp",
    "llvm/lib/Analysis/CostModel.cpp",
    "llvm/lib/Analysis/Delinearization.cpp",
    "llvm/lib/Analysis/DemandedBits.cpp",
    "llvm/lib/Analysis/DependenceAnalysis.cpp",
    "llvm/lib/Analysis/DivergenceAnalysis.cpp",
    "llvm/lib/Analysis/DomPrinter.cpp",
    "llvm/lib/Analysis/DominanceFrontier.cpp",
    "llvm/lib/Analysis/EHPersonalities.cpp",
    "llvm/lib/Analysis/GlobalsModRef.cpp",
    "llvm/lib/Analysis/IVUsers.cpp",
    "llvm/lib/Analysis/IndirectCallPromotionAnalysis.cpp",
    "llvm/lib/Analysis/InlineCost.cpp",
    "llvm/lib/Analysis/InstCount.cpp",
    "llvm/lib/Analysis/InstructionSimplify.cpp",
    "llvm/lib/Analysis/Interval.cpp",
    "llvm/lib/Analysis/IntervalPartition.cpp",
    "llvm/lib/Analysis/IteratedDominanceFrontier.cpp",
    "llvm/lib/Analysis/LazyBlockFrequencyInfo.cpp",
    "llvm/lib/Analysis/LazyBranchProbabilityInfo.cpp",
    "llvm/lib/Analysis/LazyCallGraph.cpp",
    "llvm/lib/Analysis/LazyValueInfo.cpp",
    "llvm/lib/Analysis/Lint.cpp",
    "llvm/lib/Analysis/Loads.cpp",
    "llvm/lib/Analysis/LoopAccessAnalysis.cpp",
    "llvm/lib/Analysis/LoopAnalysisManager.cpp",
    "llvm/lib/Analysis/LoopInfo.cpp",
    "llvm/lib/Analysis/LoopPass.cpp",
    "llvm/lib/Analysis/LoopUnrollAnalyzer.cpp",
    "llvm/lib/Analysis/MemDepPrinter.cpp",
    "llvm/lib/Analysis/MemDerefPrinter.cpp",
    "llvm/lib/Analysis/MemoryBuiltins.cpp",
    "llvm/lib/Analysis/MemoryDependenceAnalysis.cpp",
    "llvm/lib/Analysis/MemoryLocation.cpp",
    "llvm/lib/Analysis/MemorySSA.cpp",
    "llvm/lib/Analysis/MemorySSAUpdater.cpp",
    "llvm/lib/Analysis/ModuleDebugInfoPrinter.cpp",
    "llvm/lib/Analysis/ModuleSummaryAnalysis.cpp",
    "llvm/lib/Analysis/MustExecute.cpp",
    "llvm/lib/Analysis/ObjCARCAliasAnalysis.cpp",
    "llvm/lib/Analysis/ObjCARCAnalysisUtils.cpp",
    "llvm/lib/Analysis/ObjCARCInstKind.cpp",
    "llvm/lib/Analysis/OptimizationRemarkEmitter.cpp",
    "llvm/lib/Analysis/OrderedBasicBlock.cpp",
    "llvm/lib/Analysis/PHITransAddr.cpp",
    "llvm/lib/Analysis/PhiValues.cpp",
    "llvm/lib/Analysis/PostDominators.cpp",
    "llvm/lib/Analysis/ProfileSummaryInfo.cpp",
    "llvm/lib/Analysis/PtrUseVisitor.cpp",
    "llvm/lib/Analysis/RegionInfo.cpp",
    "llvm/lib/Analysis/RegionPass.cpp",
    "llvm/lib/Analysis/RegionPrinter.cpp",
    "llvm/lib/Analysis/ScalarEvolution.cpp",
    "llvm/lib/Analysis/ScalarEvolutionAliasAnalysis.cpp",
    "llvm/lib/Analysis/ScalarEvolutionExpander.cpp",
    "llvm/lib/Analysis/ScalarEvolutionNormalization.cpp",
    "llvm/lib/Analysis/ScopedNoAliasAA.cpp",
    "llvm/lib/Analysis/SyntheticCountsUtils.cpp",
    "llvm/lib/Analysis/TargetLibraryInfo.cpp",
    "llvm/lib/Analysis/TargetTransformInfo.cpp",
    "llvm/lib/Analysis/Trace.cpp",
    "llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp",
    "llvm/lib/Analysis/TypeMetadataUtils.cpp",
    "llvm/lib/Analysis/ValueLattice.cpp",
    "llvm/lib/Analysis/ValueLatticeUtils.cpp",
    "llvm/lib/Analysis/ValueTracking.cpp",
    "llvm/lib/Analysis/VectorUtils.cpp",
    "llvm/lib/AsmParser/LLLexer.cpp",
    "llvm/lib/AsmParser/LLParser.cpp",
    "llvm/lib/AsmParser/Parser.cpp",
    "llvm/lib/BinaryFormat/Dwarf.cpp",
    "llvm/lib/BinaryFormat/Magic.cpp",
    "llvm/lib/BinaryFormat/Wasm.cpp",
    "llvm/lib/Bitcode/Reader/BitReader.cpp",
    "llvm/lib/Bitcode/Reader/BitcodeReader.cpp",
    "llvm/lib/Bitcode/Reader/BitstreamReader.cpp",
    "llvm/lib/Bitcode/Reader/MetadataLoader.cpp",
    "llvm/lib/Bitcode/Reader/ValueList.cpp",
    "llvm/lib/Bitcode/Writer/BitWriter.cpp",
    "llvm/lib/Bitcode/Writer/BitcodeWriter.cpp",
    "llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp",
    "llvm/lib/Bitcode/Writer/ValueEnumerator.cpp",
    "llvm/lib/DebugInfo/CodeView/AppendingTypeTableBuilder.cpp",
    "llvm/lib/DebugInfo/CodeView/CVSymbolVisitor.cpp",
    "llvm/lib/DebugInfo/CodeView/CVTypeVisitor.cpp",
    "llvm/lib/DebugInfo/CodeView/CodeViewError.cpp",
    "llvm/lib/DebugInfo/CodeView/CodeViewRecordIO.cpp",
    "llvm/lib/DebugInfo/CodeView/ContinuationRecordBuilder.cpp",
    "llvm/lib/DebugInfo/CodeView/DebugChecksumsSubsection.cpp",
    "llvm/lib/DebugInfo/CodeView/DebugCrossExSubsection.cpp",
    "llvm/lib/DebugInfo/CodeView/DebugCrossImpSubsection.cpp",
    "llvm/lib/DebugInfo/CodeView/DebugFrameDataSubsection.cpp",
    "llvm/lib/DebugInfo/CodeView/DebugInlineeLinesSubsection.cpp",
    "llvm/lib/DebugInfo/CodeView/DebugLinesSubsection.cpp",
    "llvm/lib/DebugInfo/CodeView/DebugStringTableSubsection.cpp",
    "llvm/lib/DebugInfo/CodeView/DebugSubsection.cpp",
    "llvm/lib/DebugInfo/CodeView/DebugSubsectionRecord.cpp",
    "llvm/lib/DebugInfo/CodeView/DebugSubsectionVisitor.cpp",
    "llvm/lib/DebugInfo/CodeView/DebugSymbolRVASubsection.cpp",
    "llvm/lib/DebugInfo/CodeView/DebugSymbolsSubsection.cpp",
    "llvm/lib/DebugInfo/CodeView/EnumTables.cpp",
    "llvm/lib/DebugInfo/CodeView/Formatters.cpp",
    "llvm/lib/DebugInfo/CodeView/GlobalTypeTableBuilder.cpp",
    "llvm/lib/DebugInfo/CodeView/LazyRandomTypeCollection.cpp",
    "llvm/lib/DebugInfo/CodeView/Line.cpp",
    "llvm/lib/DebugInfo/CodeView/MergingTypeTableBuilder.cpp",
    "llvm/lib/DebugInfo/CodeView/RecordName.cpp",
    "llvm/lib/DebugInfo/CodeView/RecordSerialization.cpp",
    "llvm/lib/DebugInfo/CodeView/SimpleTypeSerializer.cpp",
    "llvm/lib/DebugInfo/CodeView/StringsAndChecksums.cpp",
    "llvm/lib/DebugInfo/CodeView/SymbolDumper.cpp",
    "llvm/lib/DebugInfo/CodeView/SymbolRecordMapping.cpp",
    "llvm/lib/DebugInfo/CodeView/SymbolSerializer.cpp",
    "llvm/lib/DebugInfo/CodeView/TypeDumpVisitor.cpp",
    "llvm/lib/DebugInfo/CodeView/TypeHashing.cpp",
    "llvm/lib/DebugInfo/CodeView/TypeIndex.cpp",
    "llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp",
    "llvm/lib/DebugInfo/CodeView/TypeRecordMapping.cpp",
    "llvm/lib/DebugInfo/CodeView/TypeStreamMerger.cpp",
    "llvm/lib/DebugInfo/CodeView/TypeTableCollection.cpp",
    "llvm/lib/ExecutionEngine/ExecutionEngine.cpp",
    "llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp",
    "llvm/lib/ExecutionEngine/GDBRegistrationListener.cpp",
    "llvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp",
    "llvm/lib/ExecutionEngine/Orc/Core.cpp",
    "llvm/lib/ExecutionEngine/Orc/ExecutionUtils.cpp",
    "llvm/lib/ExecutionEngine/Orc/IRCompileLayer.cpp",
    "llvm/lib/ExecutionEngine/Orc/IRTransformLayer.cpp",
    "llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp",
    "llvm/lib/ExecutionEngine/Orc/LLJIT.cpp",
    "llvm/lib/ExecutionEngine/Orc/Layer.cpp",
    "llvm/lib/ExecutionEngine/Orc/Legacy.cpp",
    "llvm/lib/ExecutionEngine/Orc/NullResolver.cpp",
    "llvm/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp",
    "llvm/lib/ExecutionEngine/Orc/OrcABISupport.cpp",
    "llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp",
    "llvm/lib/ExecutionEngine/Orc/OrcError.cpp",
    "llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.cpp",
    "llvm/lib/ExecutionEngine/Orc/RPCUtils.cpp",
    "llvm/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp",
    "llvm/lib/ExecutionEngine/RuntimeDyld/JITSymbol.cpp",
    "llvm/lib/ExecutionEngine/RuntimeDyld/RTDyldMemoryManager.cpp",
    "llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp",
    "llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldCOFF.cpp",
    "llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp",
    "llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp",
    "llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp",
    "llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldELFMips.cpp",
    "llvm/lib/ExecutionEngine/SectionMemoryManager.cpp",
    "llvm/lib/ExecutionEngine/TargetSelect.cpp",
    "llvm/lib/IRReader/IRReader.cpp",
    "llvm/lib/MC/ConstantPools.cpp",
    "llvm/lib/MC/ELFObjectWriter.cpp",
    "llvm/lib/MC/MCAsmBackend.cpp",
    "llvm/lib/MC/MCAsmInfo.cpp",
    "llvm/lib/MC/MCAsmInfoCOFF.cpp",
    "llvm/lib/MC/MCAsmInfoDarwin.cpp",
    "llvm/lib/MC/MCAsmInfoELF.cpp",
    "llvm/lib/MC/MCAsmInfoWasm.cpp",
    "llvm/lib/MC/MCAsmMacro.cpp",
    "llvm/lib/MC/MCAsmStreamer.cpp",
    "llvm/lib/MC/MCAssembler.cpp",
    "llvm/lib/MC/MCCodeEmitter.cpp",
    "llvm/lib/MC/MCCodePadder.cpp",
    "llvm/lib/MC/MCCodeView.cpp",
    "llvm/lib/MC/MCContext.cpp",
    "llvm/lib/MC/MCDisassembler/Disassembler.cpp",
    "llvm/lib/MC/MCDisassembler/MCDisassembler.cpp",
    "llvm/lib/MC/MCDisassembler/MCExternalSymbolizer.cpp",
    "llvm/lib/MC/MCDisassembler/MCRelocationInfo.cpp",
    "llvm/lib/MC/MCDisassembler/MCSymbolizer.cpp",
    "llvm/lib/MC/MCDwarf.cpp",
    "llvm/lib/MC/MCELFObjectTargetWriter.cpp",
    "llvm/lib/MC/MCELFStreamer.cpp",
    "llvm/lib/MC/MCExpr.cpp",
    "llvm/lib/MC/MCFragment.cpp",
    "llvm/lib/MC/MCInst.cpp",
    "llvm/lib/MC/MCInstPrinter.cpp",
    "llvm/lib/MC/MCInstrAnalysis.cpp",
    "llvm/lib/MC/MCInstrDesc.cpp",
    "llvm/lib/MC/MCLabel.cpp",
    "llvm/lib/MC/MCLinkerOptimizationHint.cpp",
    "llvm/lib/MC/MCMachOStreamer.cpp",
    "llvm/lib/MC/MCMachObjectTargetWriter.cpp",
    "llvm/lib/MC/MCNullStreamer.cpp",
    "llvm/lib/MC/MCObjectFileInfo.cpp",
    "llvm/lib/MC/MCObjectStreamer.cpp",
    "llvm/lib/MC/MCObjectWriter.cpp",
    "llvm/lib/MC/MCParser/AsmLexer.cpp",
    "llvm/lib/MC/MCParser/AsmParser.cpp",
    "llvm/lib/MC/MCParser/COFFAsmParser.cpp",
    "llvm/lib/MC/MCParser/DarwinAsmParser.cpp",
    "llvm/lib/MC/MCParser/ELFAsmParser.cpp",
    "llvm/lib/MC/MCParser/MCAsmLexer.cpp",
    "llvm/lib/MC/MCParser/MCAsmParser.cpp",
    "llvm/lib/MC/MCParser/MCAsmParserExtension.cpp",
    "llvm/lib/MC/MCParser/MCTargetAsmParser.cpp",
    "llvm/lib/MC/MCRegisterInfo.cpp",
    "llvm/lib/MC/MCSchedule.cpp",
    "llvm/lib/MC/MCSection.cpp",
    "llvm/lib/MC/MCSectionCOFF.cpp",
    "llvm/lib/MC/MCSectionELF.cpp",
    "llvm/lib/MC/MCSectionMachO.cpp",
    "llvm/lib/MC/MCSectionWasm.cpp",
    "llvm/lib/MC/MCStreamer.cpp",
    "llvm/lib/MC/MCSubtargetInfo.cpp",
    "llvm/lib/MC/MCSymbol.cpp",
    "llvm/lib/MC/MCSymbolELF.cpp",
    "llvm/lib/MC/MCTargetOptions.cpp",
    "llvm/lib/MC/MCValue.cpp",
    "llvm/lib/MC/MCWasmObjectTargetWriter.cpp",
    "llvm/lib/MC/MCWasmStreamer.cpp",
    "llvm/lib/MC/MCWin64EH.cpp",
    "llvm/lib/MC/MCWinCOFFStreamer.cpp",
    "llvm/lib/MC/MCWinEH.cpp",
    "llvm/lib/MC/MachObjectWriter.cpp",
    "llvm/lib/MC/StringTableBuilder.cpp",
    "llvm/lib/MC/SubtargetFeature.cpp",
    "llvm/lib/MC/WasmObjectWriter.cpp",
    "llvm/lib/MC/WinCOFFObjectWriter.cpp",
    "llvm/lib/Object/Archive.cpp",
    "llvm/lib/Object/ArchiveWriter.cpp",
    "llvm/lib/Object/Binary.cpp",
    "llvm/lib/Object/COFFImportFile.cpp",
    "llvm/lib/Object/COFFModuleDefinition.cpp",
    "llvm/lib/Object/COFFObjectFile.cpp",
    "llvm/lib/Object/Decompressor.cpp",
    "llvm/lib/Object/ELF.cpp",
    "llvm/lib/Object/ELFObjectFile.cpp",
    "llvm/lib/Object/Error.cpp",
    "llvm/lib/Object/IRObjectFile.cpp",
    "llvm/lib/Object/IRSymtab.cpp",
    "llvm/lib/Object/MachOObjectFile.cpp",
    "llvm/lib/Object/MachOUniversal.cpp",
    "llvm/lib/Object/ModuleSymbolTable.cpp",
    "llvm/lib/Object/Object.cpp",
    "llvm/lib/Object/ObjectFile.cpp",
    "llvm/lib/Object/RecordStreamer.cpp",
    "llvm/lib/Object/SymbolSize.cpp",
    "llvm/lib/Object/SymbolicFile.cpp",
    "llvm/lib/Object/WasmObjectFile.cpp",
    "llvm/lib/Object/WindowsResource.cpp",
    "llvm/lib/ProfileData/GCOV.cpp",
    "llvm/lib/ProfileData/InstrProf.cpp",
    "llvm/lib/ProfileData/InstrProfReader.cpp",
    "llvm/lib/ProfileData/InstrProfWriter.cpp",
    "llvm/lib/ProfileData/ProfileSummaryBuilder.cpp",
    "llvm/lib/ProfileData/SampleProf.cpp",
    "llvm/lib/ProfileData/SampleProfReader.cpp",
    "llvm/lib/ProfileData/SampleProfWriter.cpp",
    "llvm/lib/Target/Target.cpp",
    "llvm/lib/Target/TargetIntrinsicInfo.cpp",
    "llvm/lib/Target/TargetLoweringObjectFile.cpp",
    "llvm/lib/Target/TargetMachine.cpp",
    "llvm/lib/Target/TargetMachineC.cpp",
  ]

  configs = [ ":swiftshader_llvm_private_config" ]

  include_dirs = llvm_include_dirs

  deps = [
    ":swiftshader_llvm_codegen",
    ":swiftshader_llvm_ir",
    ":swiftshader_llvm_support",
    ":swiftshader_llvm_transforms",
  ]

  if (target_cpu == "x86" || target_cpu == "x64") {
    deps += [":swiftshader_llvm_x86"]
  } else if (target_cpu == "arm") {
    deps += [":swiftshader_llvm_arm"]
  } else if (target_cpu == "arm64") {
    deps += [":swiftshader_llvm_aarch64"]
  } else if (target_cpu == "mipsel" || target_cpu == "mips64el") {
    deps += [":swiftshader_llvm_mips"]
  } else {
    assert(false, "Unsupported target_cpu")
  }

  if (target_cpu != current_cpu &&
      (current_cpu == "x86" || current_cpu == "x64") ||
      # Windows ARM64 does cross compilation on Windows x64 host, and requires native
      # x86 target.
      (is_win && target_cpu == "arm64")) {
    deps += [ ":swiftshader_llvm_x86" ]
  }
}

swiftshader_source_set("swiftshader_llvm_x86") {
  sources = [
    "llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.cpp",
    "llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp",
    "llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp",
    "llvm/lib/Target/X86/InstPrinter/X86InstComments.cpp",
    "llvm/lib/Target/X86/InstPrinter/X86InstPrinterCommon.cpp",
    "llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp",
    "llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp",
    "llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp",
    "llvm/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp",
    "llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp",
    "llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp",
    "llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp",
    "llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp",
    "llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp",
    "llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp",
    "llvm/lib/Target/X86/ShadowCallStack.cpp",
    "llvm/lib/Target/X86/TargetInfo/X86TargetInfo.cpp",
    "llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp",
    "llvm/lib/Target/X86/X86AsmPrinter.cpp",
    "llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp",
    "llvm/lib/Target/X86/X86CallFrameOptimization.cpp",
    "llvm/lib/Target/X86/X86CallLowering.cpp",
    "llvm/lib/Target/X86/X86CallingConv.cpp",
    "llvm/lib/Target/X86/X86CmovConversion.cpp",
    "llvm/lib/Target/X86/X86DomainReassignment.cpp",
    "llvm/lib/Target/X86/X86EvexToVex.cpp",
    "llvm/lib/Target/X86/X86ExpandPseudo.cpp",
    "llvm/lib/Target/X86/X86FastISel.cpp",
    "llvm/lib/Target/X86/X86FixupBWInsts.cpp",
    "llvm/lib/Target/X86/X86FixupLEAs.cpp",
    "llvm/lib/Target/X86/X86FixupSetCC.cpp",
    "llvm/lib/Target/X86/X86FlagsCopyLowering.cpp",
    "llvm/lib/Target/X86/X86FloatingPoint.cpp",
    "llvm/lib/Target/X86/X86FrameLowering.cpp",
    "llvm/lib/Target/X86/X86ISelDAGToDAG.cpp",
    "llvm/lib/Target/X86/X86ISelLowering.cpp",
    "llvm/lib/Target/X86/X86IndirectBranchTracking.cpp",
    "llvm/lib/Target/X86/X86InstrFMA3Info.cpp",
    "llvm/lib/Target/X86/X86InstrFoldTables.cpp",
    "llvm/lib/Target/X86/X86InstrInfo.cpp",
    "llvm/lib/Target/X86/X86InstructionSelector.cpp",
    "llvm/lib/Target/X86/X86InterleavedAccess.cpp",
    "llvm/lib/Target/X86/X86LegalizerInfo.cpp",
    "llvm/lib/Target/X86/X86MCInstLower.cpp",
    "llvm/lib/Target/X86/X86MachineFunctionInfo.cpp",
    "llvm/lib/Target/X86/X86MacroFusion.cpp",
    "llvm/lib/Target/X86/X86OptimizeLEAs.cpp",
    "llvm/lib/Target/X86/X86PadShortFunction.cpp",
    "llvm/lib/Target/X86/X86RegisterBankInfo.cpp",
    "llvm/lib/Target/X86/X86RegisterInfo.cpp",
    "llvm/lib/Target/X86/X86RetpolineThunks.cpp",
    "llvm/lib/Target/X86/X86SelectionDAGInfo.cpp",
    "llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.cpp",
    "llvm/lib/Target/X86/X86SpeculativeLoadHardening.cpp",
    "llvm/lib/Target/X86/X86Subtarget.cpp",
    "llvm/lib/Target/X86/X86TargetMachine.cpp",
    "llvm/lib/Target/X86/X86TargetObjectFile.cpp",
    "llvm/lib/Target/X86/X86TargetTransformInfo.cpp",
    "llvm/lib/Target/X86/X86VZeroUpper.cpp",
    "llvm/lib/Target/X86/X86WinAllocaExpander.cpp",
    "llvm/lib/Target/X86/X86WinEHState.cpp",
  ]

  configs = [ ":swiftshader_llvm_private_config" ]

  include_dirs = llvm_include_dirs
}

swiftshader_source_set("swiftshader_llvm_arm") {
  sources = [
    "llvm/lib/Target/ARM/ARMConstantIslandPass.cpp",
    "llvm/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp",
    "llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFObjectWriter.cpp",
    "llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp",
    "llvm/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp",
    "llvm/lib/Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp",
    "llvm/lib/Target/ARM/MCTargetDesc/ARMMachORelocationInfo.cpp",
    "llvm/lib/Target/ARM/MCTargetDesc/ARMMCExpr.cpp",
    "llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp",
    "llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp",
    "llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFStreamer.cpp",
    "llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp",
    "llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp",
    "llvm/lib/Target/ARM/MCTargetDesc/ARMUnwindOpAsm.cpp",
    "llvm/lib/Target/ARM/ThumbRegisterInfo.cpp",
    "llvm/lib/Target/ARM/ARMMachineFunctionInfo.cpp",
    "llvm/lib/Target/ARM/ARMFrameLowering.cpp",
    "llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp",
    "llvm/lib/Target/ARM/ARMCallLowering.cpp",
    "llvm/lib/Target/ARM/ARMTargetMachine.cpp",
    "llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp",
    "llvm/lib/Target/ARM/Thumb1FrameLowering.cpp",
    "llvm/lib/Target/ARM/ARMRegisterBankInfo.cpp",
    "llvm/lib/Target/ARM/Utils/ARMBaseInfo.cpp",
    "llvm/lib/Target/ARM/ARMComputeBlockSize.cpp",
    "llvm/lib/Target/ARM/ARMSelectionDAGInfo.cpp",
    "llvm/lib/Target/ARM/ARMInstructionSelector.cpp",
    "llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp",
    "llvm/lib/Target/ARM/ARMTargetObjectFile.cpp",
    "llvm/lib/Target/ARM/ARMISelLowering.cpp",
    "llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp",
    "llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp",
    "llvm/lib/Target/ARM/TargetInfo/ARMTargetInfo.cpp",
    "llvm/lib/Target/ARM/ARMInstrInfo.cpp",
    "llvm/lib/Target/ARM/MLxExpansionPass.cpp",
    "llvm/lib/Target/ARM/Thumb2SizeReduction.cpp",
    "llvm/lib/Target/ARM/ARMConstantPoolValue.cpp",
    "llvm/lib/Target/ARM/Thumb2InstrInfo.cpp",
    "llvm/lib/Target/ARM/ARMRegisterInfo.cpp",
    "llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp",
    "llvm/lib/Target/ARM/ARMSubtarget.cpp",
    "llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp",
    "llvm/lib/Target/ARM/ARMParallelDSP.cpp",
    "llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp",
    "llvm/lib/Target/ARM/A15SDOptimizer.cpp",
    "llvm/lib/Target/ARM/Thumb2ITBlockPass.cpp",
    "llvm/lib/Target/ARM/ARMFastISel.cpp",
    "llvm/lib/Target/ARM/ARMMacroFusion.cpp",
    "llvm/lib/Target/ARM/ARMAsmPrinter.cpp",
    "llvm/lib/Target/ARM/ARMMCInstLower.cpp",
    "llvm/lib/Target/ARM/ARMHazardRecognizer.cpp",
    "llvm/lib/Target/ARM/ARMCodeGenPrepare.cpp",
    "llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp",
    "llvm/lib/Target/ARM/Thumb1InstrInfo.cpp",
    "llvm/lib/Target/ARM/ARMLegalizerInfo.cpp",
    "llvm/lib/Target/ARM/ARMOptimizeBarriersPass.cpp",
  ]

  configs = [ ":swiftshader_llvm_private_config" ]

  include_dirs = llvm_include_dirs
}

swiftshader_source_set("swiftshader_llvm_aarch64") {
  sources = [
    "llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp",
    "llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp",
    "llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.cpp",
    "llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp",
    "llvm/lib/Target/AArch64/MCTargetDesc/AArch64TargetStreamer.cpp",
    "llvm/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp",
    "llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCCodeEmitter.cpp",
    "llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp",
    "llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp",
    "llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp",
    "llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp",
    "llvm/lib/Target/AArch64/AArch64ISelLowering.cpp",
    "llvm/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp",
    "llvm/lib/Target/AArch64/AArch64FastISel.cpp",
    "llvm/lib/Target/AArch64/AArch64InstrInfo.cpp",
    "llvm/lib/Target/AArch64/AArch64PromoteConstant.cpp",
    "llvm/lib/Target/AArch64/AArch64FalkorHWPFFix.cpp",
    "llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.cpp",
    "llvm/lib/Target/AArch64/AArch64InstructionSelector.cpp",
    "llvm/lib/Target/AArch64/AArch64SelectionDAGInfo.cpp",
    "llvm/lib/Target/AArch64/AArch64A53Fix835769.cpp",
    "llvm/lib/Target/AArch64/AArch64TargetMachine.cpp",
    "llvm/lib/Target/AArch64/AArch64CallLowering.cpp",
    "llvm/lib/Target/AArch64/AArch64SIMDInstrOpt.cpp",
    "llvm/lib/Target/AArch64/AArch64Subtarget.cpp",
    "llvm/lib/Target/AArch64/AArch64TargetObjectFile.cpp",
    "llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp",
    "llvm/lib/Target/AArch64/AArch64ConditionOptimizer.cpp",
    "llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp",
    "llvm/lib/Target/AArch64/Disassembler/AArch64ExternalSymbolizer.cpp",
    "llvm/lib/Target/AArch64/TargetInfo/AArch64TargetInfo.cpp",
    "llvm/lib/Target/AArch64/AArch64AdvSIMDScalarPass.cpp",
    "llvm/lib/Target/AArch64/AArch64ConditionalCompares.cpp",
    "llvm/lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp",
    "llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp",
    "llvm/lib/Target/AArch64/AArch64StorePairSuppress.cpp",
    "llvm/lib/Target/AArch64/AArch64PBQPRegAlloc.cpp",
    "llvm/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.cpp",
    "llvm/lib/Target/AArch64/AArch64CleanupLocalDynamicTLSPass.cpp",
    "llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp",
    "llvm/lib/Target/AArch64/AArch64MCInstLower.cpp",
    "llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp",
    "llvm/lib/Target/AArch64/AArch64RedundantCopyElimination.cpp",
    "llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp",
    "llvm/lib/Target/AArch64/AArch64CollectLOH.cpp",
    "llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp",
    "llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp",
    "llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp",
    "llvm/lib/Target/AArch64/AArch64CondBrTuning.cpp",
    "llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp",
    "llvm/lib/Target/AArch64/AArch64FrameLowering.cpp",
    "llvm/lib/Target/AArch64/AArch64MacroFusion.cpp",
  ]

  configs = [ ":swiftshader_llvm_private_config" ]

  include_dirs = llvm_include_dirs
}

swiftshader_source_set("swiftshader_llvm_mips") {
  sources = [
    "llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp",
    "llvm/lib/Target/Mips/InstPrinter/MipsInstPrinter.cpp",
    "llvm/lib/Target/Mips/MCTargetDesc/MipsABIFlagsSection.cpp",
    "llvm/lib/Target/Mips/MCTargetDesc/MipsABIInfo.cpp",
    "llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp",
    "llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.cpp",
    "llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp",
    "llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp",
    "llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp",
    "llvm/lib/Target/Mips/MCTargetDesc/MipsOptionRecord.cpp",
    "llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp",
    "llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp",
    "llvm/lib/Target/Mips/MCTargetDesc/MipsMCExpr.cpp",
    "llvm/lib/Target/Mips/MCTargetDesc/MipsNaClELFStreamer.cpp",
    "llvm/lib/Target/Mips/Mips16FrameLowering.cpp",
    "llvm/lib/Target/Mips/Mips16HardFloat.cpp",
    "llvm/lib/Target/Mips/Mips16HardFloatInfo.cpp",
    "llvm/lib/Target/Mips/Mips16InstrInfo.cpp",
    "llvm/lib/Target/Mips/Mips16ISelDAGToDAG.cpp",
    "llvm/lib/Target/Mips/Mips16ISelLowering.cpp",
    "llvm/lib/Target/Mips/Mips16RegisterInfo.cpp",
    "llvm/lib/Target/Mips/MipsAnalyzeImmediate.cpp",
    "llvm/lib/Target/Mips/MipsAsmPrinter.cpp",
    "llvm/lib/Target/Mips/MipsCallLowering.cpp",
    "llvm/lib/Target/Mips/MipsCCState.cpp",
    "llvm/lib/Target/Mips/MipsConstantIslandPass.cpp",
    "llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp",
    "llvm/lib/Target/Mips/MipsExpandPseudo.cpp",
    "llvm/lib/Target/Mips/MipsFastISel.cpp",
    "llvm/lib/Target/Mips/MipsInstrInfo.cpp",
    "llvm/lib/Target/Mips/MipsInstructionSelector.cpp",
    "llvm/lib/Target/Mips/MipsISelDAGToDAG.cpp",
    "llvm/lib/Target/Mips/MipsISelLowering.cpp",
    "llvm/lib/Target/Mips/MipsFrameLowering.cpp",
    "llvm/lib/Target/Mips/MipsLegalizerInfo.cpp",
    "llvm/lib/Target/Mips/MipsBranchExpansion.cpp",
    "llvm/lib/Target/Mips/MipsMCInstLower.cpp",
    "llvm/lib/Target/Mips/MipsMachineFunction.cpp",
    "llvm/lib/Target/Mips/MipsModuleISelDAGToDAG.cpp",
    "llvm/lib/Target/Mips/MipsOptimizePICCall.cpp",
    "llvm/lib/Target/Mips/MipsOs16.cpp",
    "llvm/lib/Target/Mips/MipsRegisterBankInfo.cpp",
    "llvm/lib/Target/Mips/MipsRegisterInfo.cpp",
    "llvm/lib/Target/Mips/MipsSEFrameLowering.cpp",
    "llvm/lib/Target/Mips/MipsSEInstrInfo.cpp",
    "llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp",
    "llvm/lib/Target/Mips/MipsSEISelLowering.cpp",
    "llvm/lib/Target/Mips/MipsSERegisterInfo.cpp",
    "llvm/lib/Target/Mips/MipsSubtarget.cpp",
    "llvm/lib/Target/Mips/MipsTargetMachine.cpp",
    "llvm/lib/Target/Mips/MipsTargetObjectFile.cpp",
    "llvm/lib/Target/Mips/MicroMipsSizeReduction.cpp",
    "llvm/lib/Target/Mips/TargetInfo/MipsTargetInfo.cpp",
  ]

  configs = [ ":swiftshader_llvm_private_config" ]

  include_dirs = llvm_include_dirs
}

swiftshader_source_set("swiftshader_llvm_codegen") {
  sources = [
    "llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp",
    "llvm/lib/CodeGen/AllocationOrder.cpp",
    "llvm/lib/CodeGen/Analysis.cpp",
    "llvm/lib/CodeGen/AsmPrinter/ARMException.cpp",
    "llvm/lib/CodeGen/AsmPrinter/AccelTable.cpp",
    "llvm/lib/CodeGen/AsmPrinter/AddressPool.cpp",
    "llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp",
    "llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp",
    "llvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp",
    "llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp",
    "llvm/lib/CodeGen/AsmPrinter/DIE.cpp",
    "llvm/lib/CodeGen/AsmPrinter/DIEHash.cpp",
    "llvm/lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.cpp",
    "llvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp",
    "llvm/lib/CodeGen/AsmPrinter/DebugLocStream.cpp",
    "llvm/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp",
    "llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp",
    "llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp",
    "llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp",
    "llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp",
    "llvm/lib/CodeGen/AsmPrinter/DwarfStringPool.cpp",
    "llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp",
    "llvm/lib/CodeGen/AsmPrinter/EHStreamer.cpp",
    "llvm/lib/CodeGen/AsmPrinter/ErlangGCPrinter.cpp",
    "llvm/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp",
    "llvm/lib/CodeGen/AsmPrinter/WinCFGuard.cpp",
    "llvm/lib/CodeGen/AsmPrinter/WinException.cpp",
    "llvm/lib/CodeGen/AtomicExpandPass.cpp",
    "llvm/lib/CodeGen/BasicTargetTransformInfo.cpp",
    "llvm/lib/CodeGen/BranchFolding.cpp",
    "llvm/lib/CodeGen/BranchRelaxation.cpp",
    "llvm/lib/CodeGen/BreakFalseDeps.cpp",
    "llvm/lib/CodeGen/BuiltinGCs.cpp",
    "llvm/lib/CodeGen/CFIInstrInserter.cpp",
    "llvm/lib/CodeGen/CalcSpillWeights.cpp",
    "llvm/lib/CodeGen/CallingConvLower.cpp",
    "llvm/lib/CodeGen/CodeGen.cpp",
    "llvm/lib/CodeGen/CodeGenPrepare.cpp",
    "llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp",
    "llvm/lib/CodeGen/DFAPacketizer.cpp",
    "llvm/lib/CodeGen/DeadMachineInstructionElim.cpp",
    "llvm/lib/CodeGen/DetectDeadLanes.cpp",
    "llvm/lib/CodeGen/DwarfEHPrepare.cpp",
    "llvm/lib/CodeGen/EarlyIfConversion.cpp",
    "llvm/lib/CodeGen/EdgeBundles.cpp",
    "llvm/lib/CodeGen/ExecutionDomainFix.cpp",
    "llvm/lib/CodeGen/ExpandISelPseudos.cpp",
    "llvm/lib/CodeGen/ExpandMemCmp.cpp",
    "llvm/lib/CodeGen/ExpandPostRAPseudos.cpp",
    "llvm/lib/CodeGen/ExpandReductions.cpp",
    "llvm/lib/CodeGen/FEntryInserter.cpp",
    "llvm/lib/CodeGen/FaultMaps.cpp",
    "llvm/lib/CodeGen/FuncletLayout.cpp",
    "llvm/lib/CodeGen/GCMetadata.cpp",
    "llvm/lib/CodeGen/GCMetadataPrinter.cpp",
    "llvm/lib/CodeGen/GCRootLowering.cpp",
    "llvm/lib/CodeGen/GCStrategy.cpp",
    "llvm/lib/CodeGen/GlobalISel/CallLowering.cpp",
    "llvm/lib/CodeGen/GlobalISel/Combiner.cpp",
    "llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp",
    "llvm/lib/CodeGen/GlobalISel/GlobalISel.cpp",
    "llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp",
    "llvm/lib/CodeGen/GlobalISel/InstructionSelect.cpp",
    "llvm/lib/CodeGen/GlobalISel/InstructionSelector.cpp",
    "llvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp",
    "llvm/lib/CodeGen/GlobalISel/LegalizeMutations.cpp",
    "llvm/lib/CodeGen/GlobalISel/Legalizer.cpp",
    "llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp",
    "llvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp",
    "llvm/lib/CodeGen/GlobalISel/Localizer.cpp",
    "llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp",
    "llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp",
    "llvm/lib/CodeGen/GlobalISel/RegisterBank.cpp",
    "llvm/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp",
    "llvm/lib/CodeGen/GlobalISel/Utils.cpp",
    "llvm/lib/CodeGen/GlobalMerge.cpp",
    "llvm/lib/CodeGen/IfConversion.cpp",
    "llvm/lib/CodeGen/ImplicitNullChecks.cpp",
    "llvm/lib/CodeGen/IndirectBrExpandPass.cpp",
    "llvm/lib/CodeGen/InlineSpiller.cpp",
    "llvm/lib/CodeGen/InterferenceCache.cpp",
    "llvm/lib/CodeGen/InterleavedAccessPass.cpp",
    "llvm/lib/CodeGen/IntrinsicLowering.cpp",
    "llvm/lib/CodeGen/LLVMTargetMachine.cpp",
    "llvm/lib/CodeGen/LatencyPriorityQueue.cpp",
    "llvm/lib/CodeGen/LazyMachineBlockFrequencyInfo.cpp",
    "llvm/lib/CodeGen/LexicalScopes.cpp",
    "llvm/lib/CodeGen/LiveDebugValues.cpp",
    "llvm/lib/CodeGen/LiveDebugVariables.cpp",
    "llvm/lib/CodeGen/LiveInterval.cpp",
    "llvm/lib/CodeGen/LiveIntervalUnion.cpp",
    "llvm/lib/CodeGen/LiveIntervals.cpp",
    "llvm/lib/CodeGen/LivePhysRegs.cpp",
    "llvm/lib/CodeGen/LiveRangeCalc.cpp",
    "llvm/lib/CodeGen/LiveRangeEdit.cpp",
    "llvm/lib/CodeGen/LiveRangeShrink.cpp",
    "llvm/lib/CodeGen/LiveRegMatrix.cpp",
    "llvm/lib/CodeGen/LiveRegUnits.cpp",
    "llvm/lib/CodeGen/LiveStacks.cpp",
    "llvm/lib/CodeGen/LiveVariables.cpp",
    "llvm/lib/CodeGen/LocalStackSlotAllocation.cpp",
    "llvm/lib/CodeGen/LoopTraversal.cpp",
    "llvm/lib/CodeGen/LowLevelType.cpp",
    "llvm/lib/CodeGen/LowerEmuTLS.cpp",
    "llvm/lib/CodeGen/MIRCanonicalizerPass.cpp",
    "llvm/lib/CodeGen/MIRPrinter.cpp",
    "llvm/lib/CodeGen/MIRPrintingPass.cpp",
    "llvm/lib/CodeGen/MachineBasicBlock.cpp",
    "llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp",
    "llvm/lib/CodeGen/MachineBlockPlacement.cpp",
    "llvm/lib/CodeGen/MachineBranchProbabilityInfo.cpp",
    "llvm/lib/CodeGen/MachineCSE.cpp",
    "llvm/lib/CodeGen/MachineCombiner.cpp",
    "llvm/lib/CodeGen/MachineCopyPropagation.cpp",
    "llvm/lib/CodeGen/MachineDominanceFrontier.cpp",
    "llvm/lib/CodeGen/MachineDominators.cpp",
    "llvm/lib/CodeGen/MachineFrameInfo.cpp",
    "llvm/lib/CodeGen/MachineFunction.cpp",
    "llvm/lib/CodeGen/MachineFunctionPass.cpp",
    "llvm/lib/CodeGen/MachineFunctionPrinterPass.cpp",
    "llvm/lib/CodeGen/MachineInstr.cpp",
    "llvm/lib/CodeGen/MachineInstrBundle.cpp",
    "llvm/lib/CodeGen/MachineLICM.cpp",
    "llvm/lib/CodeGen/MachineLoopInfo.cpp",
    "llvm/lib/CodeGen/MachineModuleInfo.cpp",
    "llvm/lib/CodeGen/MachineModuleInfoImpls.cpp",
    "llvm/lib/CodeGen/MachineOperand.cpp",
    "llvm/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp",
    "llvm/lib/CodeGen/MachineOutliner.cpp",
    "llvm/lib/CodeGen/MachinePassRegistry.cpp",
    "llvm/lib/CodeGen/MachinePipeliner.cpp",
    "llvm/lib/CodeGen/MachinePostDominators.cpp",
    "llvm/lib/CodeGen/MachineRegionInfo.cpp",
    "llvm/lib/CodeGen/MachineRegisterInfo.cpp",
    "llvm/lib/CodeGen/MachineSSAUpdater.cpp",
    "llvm/lib/CodeGen/MachineScheduler.cpp",
    "llvm/lib/CodeGen/MachineSink.cpp",
    "llvm/lib/CodeGen/MachineTraceMetrics.cpp",
    "llvm/lib/CodeGen/MachineVerifier.cpp",
    "llvm/lib/CodeGen/MacroFusion.cpp",
    "llvm/lib/CodeGen/OptimizePHIs.cpp",
    "llvm/lib/CodeGen/PHIElimination.cpp",
    "llvm/lib/CodeGen/PHIEliminationUtils.cpp",
    "llvm/lib/CodeGen/ParallelCG.cpp",
    "llvm/lib/CodeGen/PatchableFunction.cpp",
    "llvm/lib/CodeGen/PeepholeOptimizer.cpp",
    "llvm/lib/CodeGen/PostRAHazardRecognizer.cpp",
    "llvm/lib/CodeGen/PostRASchedulerList.cpp",
    "llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp",
    "llvm/lib/CodeGen/ProcessImplicitDefs.cpp",
    "llvm/lib/CodeGen/PrologEpilogInserter.cpp",
    "llvm/lib/CodeGen/PseudoSourceValue.cpp",
    "llvm/lib/CodeGen/ReachingDefAnalysis.cpp",
    "llvm/lib/CodeGen/RegAllocBase.cpp",
    "llvm/lib/CodeGen/RegAllocBasic.cpp",
    "llvm/lib/CodeGen/RegAllocFast.cpp",
    "llvm/lib/CodeGen/RegAllocGreedy.cpp",
    "llvm/lib/CodeGen/RegAllocPBQP.cpp",
    "llvm/lib/CodeGen/RegUsageInfoCollector.cpp",
    "llvm/lib/CodeGen/RegUsageInfoPropagate.cpp",
    "llvm/lib/CodeGen/RegisterClassInfo.cpp",
    "llvm/lib/CodeGen/RegisterCoalescer.cpp",
    "llvm/lib/CodeGen/RegisterPressure.cpp",
    "llvm/lib/CodeGen/RegisterScavenging.cpp",
    "llvm/lib/CodeGen/RegisterUsageInfo.cpp",
    "llvm/lib/CodeGen/RenameIndependentSubregs.cpp",
    "llvm/lib/CodeGen/ResetMachineFunctionPass.cpp",
    "llvm/lib/CodeGen/SafeStack.cpp",
    "llvm/lib/CodeGen/SafeStackColoring.cpp",
    "llvm/lib/CodeGen/SafeStackLayout.cpp",
    "llvm/lib/CodeGen/ScalarizeMaskedMemIntrin.cpp",
    "llvm/lib/CodeGen/ScheduleDAG.cpp",
    "llvm/lib/CodeGen/ScheduleDAGInstrs.cpp",
    "llvm/lib/CodeGen/ScheduleDAGPrinter.cpp",
    "llvm/lib/CodeGen/ScoreboardHazardRecognizer.cpp",
    "llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp",
    "llvm/lib/CodeGen/SelectionDAG/FastISel.cpp",
    "llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp",
    "llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp",
    "llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp",
    "llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp",
    "llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp",
    "llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp",
    "llvm/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp",
    "llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp",
    "llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp",
    "llvm/lib/CodeGen/SelectionDAG/ResourcePriorityQueue.cpp",
    "llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp",
    "llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp",
    "llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp",
    "llvm/lib/CodeGen/SelectionDAG/ScheduleDAGVLIW.cpp",
    "llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp",
    "llvm/lib/CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.cpp",
    "llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp",
    "llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp",
    "llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp",
    "llvm/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp",
    "llvm/lib/CodeGen/SelectionDAG/SelectionDAGTargetInfo.cpp",
    "llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp",
    "llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp",
    "llvm/lib/CodeGen/ShadowStackGCLowering.cpp",
    "llvm/lib/CodeGen/ShrinkWrap.cpp",
    "llvm/lib/CodeGen/SjLjEHPrepare.cpp",
    "llvm/lib/CodeGen/SlotIndexes.cpp",
    "llvm/lib/CodeGen/SpillPlacement.cpp",
    "llvm/lib/CodeGen/SplitKit.cpp",
    "llvm/lib/CodeGen/StackColoring.cpp",
    "llvm/lib/CodeGen/StackMapLivenessAnalysis.cpp",
    "llvm/lib/CodeGen/StackMaps.cpp",
    "llvm/lib/CodeGen/StackProtector.cpp",
    "llvm/lib/CodeGen/StackSlotColoring.cpp",
    "llvm/lib/CodeGen/TailDuplication.cpp",
    "llvm/lib/CodeGen/TailDuplicator.cpp",
    "llvm/lib/CodeGen/TargetFrameLoweringImpl.cpp",
    "llvm/lib/CodeGen/TargetInstrInfo.cpp",
    "llvm/lib/CodeGen/TargetLoweringBase.cpp",
    "llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp",
    "llvm/lib/CodeGen/TargetOptionsImpl.cpp",
    "llvm/lib/CodeGen/TargetPassConfig.cpp",
    "llvm/lib/CodeGen/TargetRegisterInfo.cpp",
    "llvm/lib/CodeGen/TargetSchedule.cpp",
    "llvm/lib/CodeGen/TargetSubtargetInfo.cpp",
    "llvm/lib/CodeGen/TwoAddressInstructionPass.cpp",
    "llvm/lib/CodeGen/UnreachableBlockElim.cpp",
    "llvm/lib/CodeGen/ValueTypes.cpp",
    "llvm/lib/CodeGen/VirtRegMap.cpp",
    "llvm/lib/CodeGen/WasmEHPrepare.cpp",
    "llvm/lib/CodeGen/WinEHPrepare.cpp",
    "llvm/lib/CodeGen/XRayInstrumentation.cpp",
  ]

  configs = [ ":swiftshader_llvm_private_config" ]

  include_dirs = llvm_include_dirs
}

swiftshader_source_set("swiftshader_llvm_ir") {
  sources = [
    "llvm/lib/IR/AsmWriter.cpp",
    "llvm/lib/IR/Attributes.cpp",
    "llvm/lib/IR/AutoUpgrade.cpp",
    "llvm/lib/IR/BasicBlock.cpp",
    "llvm/lib/IR/Comdat.cpp",
    "llvm/lib/IR/ConstantFold.cpp",
    "llvm/lib/IR/ConstantRange.cpp",
    "llvm/lib/IR/Constants.cpp",
    "llvm/lib/IR/Core.cpp",
    "llvm/lib/IR/DIBuilder.cpp",
    "llvm/lib/IR/DataLayout.cpp",
    "llvm/lib/IR/DebugInfo.cpp",
    "llvm/lib/IR/DebugInfoMetadata.cpp",
    "llvm/lib/IR/DebugLoc.cpp",
    "llvm/lib/IR/DiagnosticHandler.cpp",
    "llvm/lib/IR/DiagnosticInfo.cpp",
    "llvm/lib/IR/DiagnosticPrinter.cpp",
    "llvm/lib/IR/DomTreeUpdater.cpp",
    "llvm/lib/IR/Dominators.cpp",
    "llvm/lib/IR/Function.cpp",
    "llvm/lib/IR/GVMaterializer.cpp",
    "llvm/lib/IR/Globals.cpp",
    "llvm/lib/IR/IRBuilder.cpp",
    "llvm/lib/IR/IRPrintingPasses.cpp",
    "llvm/lib/IR/InlineAsm.cpp",
    "llvm/lib/IR/Instruction.cpp",
    "llvm/lib/IR/Instructions.cpp",
    "llvm/lib/IR/IntrinsicInst.cpp",
    "llvm/lib/IR/LLVMContext.cpp",
    "llvm/lib/IR/LLVMContextImpl.cpp",
    "llvm/lib/IR/LegacyPassManager.cpp",
    "llvm/lib/IR/MDBuilder.cpp",
    "llvm/lib/IR/Mangler.cpp",
    "llvm/lib/IR/Metadata.cpp",
    "llvm/lib/IR/Module.cpp",
    "llvm/lib/IR/ModuleSummaryIndex.cpp",
    "llvm/lib/IR/Operator.cpp",
    "llvm/lib/IR/OptBisect.cpp",
    "llvm/lib/IR/Pass.cpp",
    "llvm/lib/IR/PassManager.cpp",
    "llvm/lib/IR/PassRegistry.cpp",
    "llvm/lib/IR/ProfileSummary.cpp",
    "llvm/lib/IR/SafepointIRVerifier.cpp",
    "llvm/lib/IR/Statepoint.cpp",
    "llvm/lib/IR/Type.cpp",
    "llvm/lib/IR/TypeFinder.cpp",
    "llvm/lib/IR/Use.cpp",
    "llvm/lib/IR/User.cpp",
    "llvm/lib/IR/Value.cpp",
    "llvm/lib/IR/ValueSymbolTable.cpp",
    "llvm/lib/IR/Verifier.cpp",
  ]

  configs = [ ":swiftshader_llvm_private_config" ]

  include_dirs = llvm_include_dirs
}

swiftshader_source_set("swiftshader_llvm_support") {
  sources = [
    "llvm/lib/Support/AMDGPUMetadata.cpp",
    "llvm/lib/Support/APFloat.cpp",
    "llvm/lib/Support/APInt.cpp",
    "llvm/lib/Support/APSInt.cpp",
    "llvm/lib/Support/ARMAttributeParser.cpp",
    "llvm/lib/Support/ARMBuildAttrs.cpp",
    "llvm/lib/Support/ARMWinEH.cpp",
    "llvm/lib/Support/Allocator.cpp",
    "llvm/lib/Support/Atomic.cpp",
    "llvm/lib/Support/BinaryStreamError.cpp",
    "llvm/lib/Support/BinaryStreamReader.cpp",
    "llvm/lib/Support/BinaryStreamRef.cpp",
    "llvm/lib/Support/BinaryStreamWriter.cpp",
    "llvm/lib/Support/BlockFrequency.cpp",
    "llvm/lib/Support/BranchProbability.cpp",
    "llvm/lib/Support/COM.cpp",
    "llvm/lib/Support/CachePruning.cpp",
    "llvm/lib/Support/Chrono.cpp",
    "llvm/lib/Support/CodeGenCoverage.cpp",
    "llvm/lib/Support/CommandLine.cpp",
    "llvm/lib/Support/Compression.cpp",
    "llvm/lib/Support/ConvertUTF.cpp",
    "llvm/lib/Support/ConvertUTFWrapper.cpp",
    "llvm/lib/Support/CrashRecoveryContext.cpp",
    "llvm/lib/Support/DAGDeltaAlgorithm.cpp",
    "llvm/lib/Support/DJB.cpp",
    "llvm/lib/Support/DataExtractor.cpp",
    "llvm/lib/Support/Debug.cpp",
    "llvm/lib/Support/DebugCounter.cpp",
    "llvm/lib/Support/DeltaAlgorithm.cpp",
    "llvm/lib/Support/DynamicLibrary.cpp",
    "llvm/lib/Support/Errno.cpp",
    "llvm/lib/Support/Error.cpp",
    "llvm/lib/Support/ErrorHandling.cpp",
    "llvm/lib/Support/FileOutputBuffer.cpp",
    "llvm/lib/Support/FileUtilities.cpp",
    "llvm/lib/Support/FoldingSet.cpp",
    "llvm/lib/Support/FormatVariadic.cpp",
    "llvm/lib/Support/FormattedStream.cpp",
    "llvm/lib/Support/GlobPattern.cpp",
    "llvm/lib/Support/GraphWriter.cpp",
    "llvm/lib/Support/Hashing.cpp",
    "llvm/lib/Support/Host.cpp",
    "llvm/lib/Support/InitLLVM.cpp",
    "llvm/lib/Support/IntEqClasses.cpp",
    "llvm/lib/Support/IntervalMap.cpp",
    "llvm/lib/Support/JSON.cpp",
    "llvm/lib/Support/JamCRC.cpp",
    "llvm/lib/Support/KnownBits.cpp",
    "llvm/lib/Support/LEB128.cpp",
    "llvm/lib/Support/LineIterator.cpp",
    "llvm/lib/Support/Locale.cpp",
    "llvm/lib/Support/LockFileManager.cpp",
    "llvm/lib/Support/LowLevelType.cpp",
    "llvm/lib/Support/MD5.cpp",
    "llvm/lib/Support/ManagedStatic.cpp",
    "llvm/lib/Support/MathExtras.cpp",
    "llvm/lib/Support/Memory.cpp",
    "llvm/lib/Support/MemoryBuffer.cpp",
    "llvm/lib/Support/Mutex.cpp",
    "llvm/lib/Support/NativeFormatting.cpp",
    "llvm/lib/Support/Options.cpp",
    "llvm/lib/Support/Parallel.cpp",
    "llvm/lib/Support/Path.cpp",
    "llvm/lib/Support/PluginLoader.cpp",
    "llvm/lib/Support/PrettyStackTrace.cpp",
    "llvm/lib/Support/Process.cpp",
    "llvm/lib/Support/Program.cpp",
    "llvm/lib/Support/RWMutex.cpp",
    "llvm/lib/Support/RandomNumberGenerator.cpp",
    "llvm/lib/Support/Regex.cpp",
    "llvm/lib/Support/SHA1.cpp",
    "llvm/lib/Support/ScaledNumber.cpp",
    "llvm/lib/Support/ScopedPrinter.cpp",
    "llvm/lib/Support/Signals.cpp",
    "llvm/lib/Support/SmallPtrSet.cpp",
    "llvm/lib/Support/SmallVector.cpp",
    "llvm/lib/Support/SourceMgr.cpp",
    "llvm/lib/Support/SpecialCaseList.cpp",
    "llvm/lib/Support/Statistic.cpp",
    "llvm/lib/Support/StringExtras.cpp",
    "llvm/lib/Support/StringMap.cpp",
    "llvm/lib/Support/StringPool.cpp",
    "llvm/lib/Support/StringRef.cpp",
    "llvm/lib/Support/StringSaver.cpp",
    "llvm/lib/Support/SystemUtils.cpp",
    "llvm/lib/Support/TarWriter.cpp",
    "llvm/lib/Support/TargetParser.cpp",
    "llvm/lib/Support/TargetRegistry.cpp",
    "llvm/lib/Support/ThreadLocal.cpp",
    "llvm/lib/Support/ThreadPool.cpp",
    "llvm/lib/Support/Threading.cpp",
    "llvm/lib/Support/Timer.cpp",
    "llvm/lib/Support/ToolOutputFile.cpp",
    "llvm/lib/Support/TrigramIndex.cpp",
    "llvm/lib/Support/Triple.cpp",
    "llvm/lib/Support/Twine.cpp",
    "llvm/lib/Support/Unicode.cpp",
    "llvm/lib/Support/UnicodeCaseFold.cpp",
    "llvm/lib/Support/Valgrind.cpp",
    "llvm/lib/Support/VersionTuple.cpp",
    "llvm/lib/Support/Watchdog.cpp",
    "llvm/lib/Support/WithColor.cpp",
    "llvm/lib/Support/YAMLParser.cpp",
    "llvm/lib/Support/YAMLTraits.cpp",
    "llvm/lib/Support/circular_raw_ostream.cpp",
    "llvm/lib/Support/raw_os_ostream.cpp",
    "llvm/lib/Support/raw_ostream.cpp",
    "llvm/lib/Support/regcomp.c",
    "llvm/lib/Support/regerror.c",
    "llvm/lib/Support/regexec.c",
    "llvm/lib/Support/regfree.c",
    "llvm/lib/Support/regstrlcpy.c",
    "llvm/lib/Support/xxhash.cpp",
  ]

  configs = [ ":swiftshader_llvm_private_config" ]

  include_dirs = llvm_include_dirs
}

swiftshader_source_set("swiftshader_llvm_transforms") {
  sources = [
    "llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp",
    "llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp",
    "llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp",
    "llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp",
    "llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp",
    "llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp",
    "llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp",
    "llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp",
    "llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp",
    "llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp",
    "llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp",
    "llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp",
    "llvm/lib/Transforms/InstCombine/InstructionCombining.cpp",
    "llvm/lib/Transforms/Scalar/ADCE.cpp",
    "llvm/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp",
    "llvm/lib/Transforms/Scalar/BDCE.cpp",
    "llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp",
    "llvm/lib/Transforms/Scalar/ConstantHoisting.cpp",
    "llvm/lib/Transforms/Scalar/ConstantProp.cpp",
    "llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp",
    "llvm/lib/Transforms/Scalar/DCE.cpp",
    "llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp",
    "llvm/lib/Transforms/Scalar/DivRemPairs.cpp",
    "llvm/lib/Transforms/Scalar/EarlyCSE.cpp",
    "llvm/lib/Transforms/Scalar/FlattenCFGPass.cpp",
    "llvm/lib/Transforms/Scalar/Float2Int.cpp",
    "llvm/lib/Transforms/Scalar/GVN.cpp",
    "llvm/lib/Transforms/Scalar/GVNHoist.cpp",
    "llvm/lib/Transforms/Scalar/GVNSink.cpp",
    "llvm/lib/Transforms/Scalar/GuardWidening.cpp",
    "llvm/lib/Transforms/Scalar/IVUsersPrinter.cpp",
    "llvm/lib/Transforms/Scalar/IndVarSimplify.cpp",
    "llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp",
    "llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp",
    "llvm/lib/Transforms/Scalar/InstSimplifyPass.cpp",
    "llvm/lib/Transforms/Scalar/JumpThreading.cpp",
    "llvm/lib/Transforms/Scalar/LICM.cpp",
    "llvm/lib/Transforms/Scalar/LoopAccessAnalysisPrinter.cpp",
    "llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp",
    "llvm/lib/Transforms/Scalar/LoopDeletion.cpp",
    "llvm/lib/Transforms/Scalar/LoopDistribute.cpp",
    "llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp",
    "llvm/lib/Transforms/Scalar/LoopInstSimplify.cpp",
    "llvm/lib/Transforms/Scalar/LoopInterchange.cpp",
    "llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp",
    "llvm/lib/Transforms/Scalar/LoopPassManager.cpp",
    "llvm/lib/Transforms/Scalar/LoopPredication.cpp",
    "llvm/lib/Transforms/Scalar/LoopRerollPass.cpp",
    "llvm/lib/Transforms/Scalar/LoopRotation.cpp",
    "llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp",
    "llvm/lib/Transforms/Scalar/LoopSink.cpp",
    "llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp",
    "llvm/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp",
    "llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp",
    "llvm/lib/Transforms/Scalar/LoopUnswitch.cpp",
    "llvm/lib/Transforms/Scalar/LoopVersioningLICM.cpp",
    "llvm/lib/Transforms/Scalar/LowerAtomic.cpp",
    "llvm/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp",
    "llvm/lib/Transforms/Scalar/LowerGuardIntrinsic.cpp",
    "llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp",
    "llvm/lib/Transforms/Scalar/MergeICmps.cpp",
    "llvm/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp",
    "llvm/lib/Transforms/Scalar/NaryReassociate.cpp",
    "llvm/lib/Transforms/Scalar/NewGVN.cpp",
    "llvm/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp",
    "llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp",
    "llvm/lib/Transforms/Scalar/Reassociate.cpp",
    "llvm/lib/Transforms/Scalar/Reg2Mem.cpp",
    "llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp",
    "llvm/lib/Transforms/Scalar/SCCP.cpp",
    "llvm/lib/Transforms/Scalar/SROA.cpp",
    "llvm/lib/Transforms/Scalar/Scalar.cpp",
    "llvm/lib/Transforms/Scalar/Scalarizer.cpp",
    "llvm/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp",
    "llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp",
    "llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp",
    "llvm/lib/Transforms/Scalar/Sink.cpp",
    "llvm/lib/Transforms/Scalar/SpeculateAroundPHIs.cpp",
    "llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp",
    "llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp",
    "llvm/lib/Transforms/Scalar/StructurizeCFG.cpp",
    "llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp",
    "llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp",
    "llvm/lib/Transforms/Utils/AddDiscriminators.cpp",
    "llvm/lib/Transforms/Utils/BasicBlockUtils.cpp",
    "llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp",
    "llvm/lib/Transforms/Utils/BuildLibCalls.cpp",
    "llvm/lib/Transforms/Utils/BypassSlowDivision.cpp",
    "llvm/lib/Transforms/Utils/CallPromotionUtils.cpp",
    "llvm/lib/Transforms/Utils/CloneFunction.cpp",
    "llvm/lib/Transforms/Utils/CloneModule.cpp",
    "llvm/lib/Transforms/Utils/CodeExtractor.cpp",
    "llvm/lib/Transforms/Utils/CtorUtils.cpp",
    "llvm/lib/Transforms/Utils/DemoteRegToStack.cpp",
    "llvm/lib/Transforms/Utils/EntryExitInstrumenter.cpp",
    "llvm/lib/Transforms/Utils/EscapeEnumerator.cpp",
    "llvm/lib/Transforms/Utils/Evaluator.cpp",
    "llvm/lib/Transforms/Utils/FlattenCFG.cpp",
    "llvm/lib/Transforms/Utils/FunctionComparator.cpp",
    "llvm/lib/Transforms/Utils/FunctionImportUtils.cpp",
    "llvm/lib/Transforms/Utils/GlobalStatus.cpp",
    "llvm/lib/Transforms/Utils/ImportedFunctionsInliningStatistics.cpp",
    "llvm/lib/Transforms/Utils/InlineFunction.cpp",
    "llvm/lib/Transforms/Utils/InstructionNamer.cpp",
    "llvm/lib/Transforms/Utils/IntegerDivision.cpp",
    "llvm/lib/Transforms/Utils/LCSSA.cpp",
    "llvm/lib/Transforms/Utils/LibCallsShrinkWrap.cpp",
    "llvm/lib/Transforms/Utils/Local.cpp",
    "llvm/lib/Transforms/Utils/LoopRotationUtils.cpp",
    "llvm/lib/Transforms/Utils/LoopSimplify.cpp",
    "llvm/lib/Transforms/Utils/LoopUnroll.cpp",
    "llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp",
    "llvm/lib/Transforms/Utils/LoopUnrollPeel.cpp",
    "llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp",
    "llvm/lib/Transforms/Utils/LoopUtils.cpp",
    "llvm/lib/Transforms/Utils/LoopVersioning.cpp",
    "llvm/lib/Transforms/Utils/LowerInvoke.cpp",
    "llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp",
    "llvm/lib/Transforms/Utils/LowerSwitch.cpp",
    "llvm/lib/Transforms/Utils/Mem2Reg.cpp",
    "llvm/lib/Transforms/Utils/MetaRenamer.cpp",
    "llvm/lib/Transforms/Utils/ModuleUtils.cpp",
    "llvm/lib/Transforms/Utils/NameAnonGlobals.cpp",
    "llvm/lib/Transforms/Utils/OrderedInstructions.cpp",
    "llvm/lib/Transforms/Utils/PredicateInfo.cpp",
    "llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp",
    "llvm/lib/Transforms/Utils/SSAUpdater.cpp",
    "llvm/lib/Transforms/Utils/SSAUpdaterBulk.cpp",
    "llvm/lib/Transforms/Utils/SanitizerStats.cpp",
    "llvm/lib/Transforms/Utils/SimplifyCFG.cpp",
    "llvm/lib/Transforms/Utils/SimplifyIndVar.cpp",
    "llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp",
    "llvm/lib/Transforms/Utils/SplitModule.cpp",
    "llvm/lib/Transforms/Utils/StripGCRelocates.cpp",
    "llvm/lib/Transforms/Utils/StripNonLineTableDebugInfo.cpp",
    "llvm/lib/Transforms/Utils/SymbolRewriter.cpp",
    "llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp",
    "llvm/lib/Transforms/Utils/Utils.cpp",
    "llvm/lib/Transforms/Utils/VNCoercion.cpp",
    "llvm/lib/Transforms/Utils/ValueMapper.cpp",
  ]

  configs = [ ":swiftshader_llvm_private_config" ]

  include_dirs = llvm_include_dirs
}