Add LLVM 7.0 Android.mk Change-Id: Ic1ae2c2872cc9f270557a6d4b701f870f82bd3cf Reviewed-on: https://swiftshader-review.googlesource.com/20479 Reviewed-by: Nicolas Capens <nicolascapens@google.com> Tested-by: Logan Chien <loganchien@google.com>
diff --git a/Android.mk b/Android.mk index a89cdf0..893ca07 100644 --- a/Android.mk +++ b/Android.mk
@@ -16,20 +16,50 @@ LOCAL_PATH := $(call my-dir) -# Use Subzero as the Reactor JIT back-end on ARM, else LLVM. +# LLVM version for SwiftShader +SWIFTSHADER_LLVM_VERSION ?= 3 + + +ifeq ($(SWIFTSHADER_LLVM_VERSION),3) +# Reactor with LLVM 3.0 doesn't support ARM. Use Subzero as the Reactor JIT +# back-end on ARM. ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),arm)) use_subzero := true endif +endif -# Subzero requires full C++11 support, which is available from Marshmallow and up. + +# Check whether SwiftShader requires full C++ 11 support. ifdef use_subzero +SWIFTSHADER_REQUIRES_CXX11 := true +endif + +ifeq ($(SWIFTSHADER_LLVM_VERSION),7) +SWIFTSHADER_REQUIRES_CXX11 := true +endif + +ifeq ($(SWIFTSHADER_REQUIRES_CXX11),true) +# Full C++ 11 support is only available from Marshmallow and up. ifeq ($(shell test $(PLATFORM_SDK_VERSION) -lt 23 && echo PreMarshmallow),PreMarshmallow) unsupported_build := true endif endif + +# Check whether $(TARGET_ARCH) is supported. +ifeq ($(SWIFTSHADER_LLVM_VERSION),3) +ifneq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),x86 x86_64 arm)) +unsupported_build := true +endif +endif + +ifeq ($(SWIFTSHADER_LLVM_VERSION),7) +ifneq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),x86 x86_64 arm arm64)) +unsupported_build := true +endif +endif + + ifndef unsupported_build -ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),x86 x86_64 arm)) include $(call all-makefiles-under,$(LOCAL_PATH)) endif -endif \ No newline at end of file
diff --git a/src/Android.mk b/src/Android.mk index 9c6513a..8559689 100644 --- a/src/Android.mk +++ b/src/Android.mk
@@ -7,14 +7,25 @@ $(LOCAL_PATH) ifdef use_subzero + COMMON_C_INCLUDES += \ $(LOCAL_PATH)/../third_party/subzero/ \ $(LOCAL_PATH)/../third_party/llvm-subzero/include/ \ $(LOCAL_PATH)/../third_party/llvm-subzero/build/Android/include/ \ $(LOCAL_PATH)/../third_party/subzero/pnacl-llvm/include/ + else + +ifeq ($(SWIFTSHADER_LLVM_VERSION),3) COMMON_C_INCLUDES += \ $(LOCAL_PATH)/../third_party/LLVM/include +else +COMMON_C_INCLUDES += \ + $(LOCAL_PATH)/../third_party/llvm-7.0/llvm/include \ + $(LOCAL_PATH)/../third_party/llvm-7.0/configs/android/include \ + $(LOCAL_PATH)/../third_party/llvm-7.0/configs/common/include +endif + endif # Project Treble is introduced from Oreo MR1 @@ -138,6 +149,9 @@ system/core/libsync endif +# Common LLVM defines +COMMON_CFLAGS += -DSWIFTSHADER_LLVM_VERSION=$(SWIFTSHADER_LLVM_VERSION) + # Common Subzero defines COMMON_CFLAGS += -DALLOW_DUMP=0 -DALLOW_TIMERS=0 -DALLOW_LLVM_CL=0 -DALLOW_LLVM_IR=0 -DALLOW_LLVM_IR_AS_INPUT=0 -DALLOW_MINIMAL_BUILD=0 -DALLOW_WASM=0 -DICE_THREAD_LOCAL_HACK=1
diff --git a/tests/Android.mk b/tests/Android.mk new file mode 100644 index 0000000..90af88e --- /dev/null +++ b/tests/Android.mk
@@ -0,0 +1,19 @@ +# +# Copyright 2018 The Android Open-Source Project +# +# 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. +# + +LOCAL_PATH:= $(call my-dir) + +include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/tests/unittests/Android.mk b/tests/unittests/Android.mk new file mode 100644 index 0000000..54c4d60 --- /dev/null +++ b/tests/unittests/Android.mk
@@ -0,0 +1,64 @@ +# +# Copyright 2018 The Android Open-Source Project +# +# 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. +# + +LOCAL_PATH := $(call my-dir) + +ifneq ($(wildcard $(LOCAL_PATH)/../../third_party/googletest/googletest/src/gtest-all.cc),) + +include $(CLEAR_VARS) + +LOCAL_MODULE := libgtest_all_swiftshader +LOCAL_MODULE_TAGS := optional +LOCAL_VENDOR_MODULE := true +LOCAL_CPP_EXTENSION := .cc + +LOCAL_SRC_FILES := \ + ../../third_party/googletest/googletest/src/gtest-all.cc + +LOCAL_C_INCLUDES := \ + $(LOCAL_PATH)/../../third_party/googletest/googletest/include/ \ + $(LOCAL_PATH)/../../third_party/googletest/googlemock/include/ \ + $(LOCAL_PATH)/../../third_party/googletest/googletest/ + +include $(BUILD_STATIC_LIBRARY) + + +include $(CLEAR_VARS) + +LOCAL_MODULE := swiftshader-unittests +LOCAL_MODULE_TAGS := optional +LOCAL_VENDOR_MODULE := true + +LOCAL_SRC_FILES := \ + main.cpp \ + unittests.cpp + +LOCAL_C_INCLUDES := \ + $(LOCAL_PATH)/../../third_party/googletest/googletest/include/ \ + $(LOCAL_PATH)/../../third_party/googletest/googlemock/include/ \ + $(LOCAL_PATH)/../../third_party/googletest/googletest/ \ + $(LOCAL_PATH)/../../include/ + +LOCAL_SHARED_LIBRARIES := \ + libEGL_swiftshader \ + libGLESv2_swiftshader + +LOCAL_STATIC_LIBRARIES := \ + libgtest_all_swiftshader + +include $(BUILD_EXECUTABLE) + +endif # gtest-all.cc exists
diff --git a/third_party/Android.mk b/third_party/Android.mk index 3daa3a0..c774af3 100644 --- a/third_party/Android.mk +++ b/third_party/Android.mk
@@ -16,4 +16,8 @@ LOCAL_PATH:= $(call my-dir) -include $(call all-makefiles-under,$(LOCAL_PATH)) +ifeq ($(SWIFTSHADER_LLVM_VERSION),3) +include $(LOCAL_PATH)/LLVM/Android.mk +else +include $(LOCAL_PATH)/llvm-7.0/Android.mk +endif
diff --git a/third_party/llvm-7.0/Android.mk b/third_party/llvm-7.0/Android.mk new file mode 100644 index 0000000..b38298a --- /dev/null +++ b/third_party/llvm-7.0/Android.mk
@@ -0,0 +1,1048 @@ +LOCAL_PATH:= $(call my-dir) +include $(CLEAR_VARS) + +LOCAL_CLANG := true + +LOCAL_MODULE := libLLVM_swiftshader +LOCAL_MODULE_TAGS := optional +LOCAL_VENDOR_MODULE := true + +LOCAL_SRC_FILES := \ + 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/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/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 \ + 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/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 \ + 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/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/regerror.c \ + llvm/lib/Support/regexec.c \ + llvm/lib/Support/regfree.c \ + llvm/lib/Support/regstrlcpy.c \ + llvm/lib/Support/xxhash.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 \ + 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 \ + 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 \ + 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 \ + 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 + +LOCAL_CFLAGS += \ + -DLOG_TAG=\"libLLVM_swiftshader\" \ + -Wall \ + -Werror \ + -Wno-implicit-exception-spec-mismatch \ + -Wno-overloaded-virtual \ + -Wno-undefined-var-template \ + -Wno-unneeded-internal-declaration \ + -Wno-unused-const-variable \ + -Wno-unused-function \ + -Wno-unused-local-typedef \ + -Wno-unused-parameter \ + -Wno-unused-private-field \ + -Wno-unused-variable \ + -Wno-unknown-warning-option + +ifneq (16,${PLATFORM_SDK_VERSION}) +LOCAL_CFLAGS += -Xclang -fuse-init-array +else +LOCAL_CFLAGS += -D__STDC_INT64__ +endif + +ifeq (19,${PLATFORM_SDK_VERSION}) +# The compiler that shipped with K had false positives for missing sentinels +LOCAL_CFLAGS += -Wno-sentinel +endif + +LOCAL_CFLAGS += -Os +LOCAL_CFLAGS += -fomit-frame-pointer -ffunction-sections -fdata-sections +LOCAL_CFLAGS += -fno-operator-names -msse2 -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS +LOCAL_CFLAGS += -DANDROID_PLATFORM_SDK_VERSION=$(PLATFORM_SDK_VERSION) +LOCAL_CFLAGS += -U_FORTIFY_SOURCE + +LOCAL_CPPFLAGS += -std=c++11 + +# Android's make system also uses NDEBUG, so we need to set/unset it forcefully +# Uncomment for debug ON: +#LOCAL_CFLAGS += -UNDEBUG -g -O1 + +LOCAL_C_INCLUDES += \ + bionic \ + $(LOCAL_PATH)/llvm/include \ + $(LOCAL_PATH)/llvm/lib/Target/X86 \ + $(LOCAL_PATH)/llvm/lib/Target/AArch64 \ + $(LOCAL_PATH)/llvm/lib/Target/ARM \ + $(LOCAL_PATH)/llvm/lib/Target/X86 \ + $(LOCAL_PATH)/configs/android/include \ + $(LOCAL_PATH)/configs/common/include \ + $(LOCAL_PATH)/configs/common/lib/IR \ + $(LOCAL_PATH)/configs/common/lib/Target/AArch64 \ + $(LOCAL_PATH)/configs/common/lib/Target/ARM \ + $(LOCAL_PATH)/configs/common/lib/Target/X86 \ + $(LOCAL_PATH)/configs/common/lib/Transforms/InstCombine + +# Marshmallow does not have stlport, but comes with libc++ by default +ifeq ($(shell test $(PLATFORM_SDK_VERSION) -lt 23 && echo PreMarshmallow),PreMarshmallow) +LOCAL_C_INCLUDES += external/stlport/stlport +endif + +include $(BUILD_STATIC_LIBRARY)