add_llvm_component_library(LLVMScalarOpts ADCE.cpp AlignmentFromAssumptions.cpp AnnotationRemarks.cpp BDCE.cpp CallSiteSplitting.cpp ConstantHoisting.cpp ConstraintElimination.cpp CorrelatedValuePropagation.cpp DCE.cpp DeadStoreElimination.cpp DFAJumpThreading.cpp DivRemPairs.cpp EarlyCSE.cpp FlattenCFGPass.cpp Float2Int.cpp GuardWidening.cpp GVN.cpp GVNHoist.cpp GVNSink.cpp IVUsersPrinter.cpp InductiveRangeCheckElimination.cpp IndVarSimplify.cpp InferAddressSpaces.cpp InstSimplifyPass.cpp JumpThreading.cpp LICM.cpp LoopAccessAnalysisPrinter.cpp LoopBoundSplit.cpp LoopSink.cpp LoopDeletion.cpp LoopDataPrefetch.cpp LoopDistribute.cpp LoopFuse.cpp LoopIdiomRecognize.cpp LoopInstSimplify.cpp LoopInterchange.cpp LoopFlatten.cpp LoopLoadElimination.cpp LoopPassManager.cpp LoopPredication.cpp LoopRerollPass.cpp LoopRotation.cpp LoopSimplifyCFG.cpp LoopStrengthReduce.cpp LoopUnrollPass.cpp LoopUnrollAndJamPass.cpp LoopVersioningLICM.cpp LowerAtomicPass.cpp LowerConstantIntrinsics.cpp LowerExpectIntrinsic.cpp LowerGuardIntrinsic.cpp LowerMatrixIntrinsics.cpp LowerWidenableCondition.cpp MakeGuardsExplicit.cpp MemCpyOptimizer.cpp MergeICmps.cpp MergedLoadStoreMotion.cpp NaryReassociate.cpp NewGVN.cpp PartiallyInlineLibCalls.cpp PlaceSafepoints.cpp Reassociate.cpp Reg2Mem.cpp RewriteStatepointsForGC.cpp SCCP.cpp SROA.cpp Scalar.cpp Scalarizer.cpp ScalarizeMaskedMemIntrin.cpp SeparateConstOffsetFromGEP.cpp SimpleLoopUnswitch.cpp SimplifyCFGPass.cpp Sink.cpp SpeculativeExecution.cpp StraightLineStrengthReduce.cpp StructurizeCFG.cpp TailRecursionElimination.cpp TLSVariableHoist.cpp WarnMissedTransforms.cpp ADDITIONAL_HEADER_DIRS ${LLVM_MAIN_INCLUDE_DIR}/llvm/Transforms ${LLVM_MAIN_INCLUDE_DIR}/llvm/Transforms/Scalar DEPENDS intrinsics_gen COMPONENT_NAME Scalar LINK_COMPONENTS AggressiveInstCombine Analysis Core InstCombine Support TransformUtils )