mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 04:30:12 +00:00
b78ea510c1
O2 compiles just before GlobalDCE, unless we are preparing for LTO. This pass eliminates available externally globals (turning them into declarations), regardless of whether they are dead/unreferenced, since we are guaranteed to have a copy available elsewhere at link time. This enables additional opportunities for GlobalDCE. If we are preparing for LTO (e.g. a -flto -c compile), the pass is not included as we want to preserve available externally functions for possible link time inlining. The FE indicates whether we are doing an -flto compile via the new PrepareForLTO flag on the PassManagerBuilder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239480 91177308-0d34-0410-b5e6-96231b3b80d8
32 lines
647 B
CMake
32 lines
647 B
CMake
add_llvm_library(LLVMipo
|
|
ArgumentPromotion.cpp
|
|
BarrierNoopPass.cpp
|
|
ConstantMerge.cpp
|
|
DeadArgumentElimination.cpp
|
|
ElimAvailExtern.cpp
|
|
ExtractGV.cpp
|
|
FunctionAttrs.cpp
|
|
GlobalDCE.cpp
|
|
GlobalOpt.cpp
|
|
IPConstantPropagation.cpp
|
|
IPO.cpp
|
|
InlineAlways.cpp
|
|
InlineSimple.cpp
|
|
Inliner.cpp
|
|
Internalize.cpp
|
|
LoopExtractor.cpp
|
|
LowerBitSets.cpp
|
|
MergeFunctions.cpp
|
|
PartialInlining.cpp
|
|
PassManagerBuilder.cpp
|
|
PruneEH.cpp
|
|
StripDeadPrototypes.cpp
|
|
StripSymbols.cpp
|
|
|
|
ADDITIONAL_HEADER_DIRS
|
|
${LLVM_MAIN_INCLUDE_DIR}/llvm/Transforms
|
|
${LLVM_MAIN_INCLUDE_DIR}/llvm/Transforms/IPO
|
|
)
|
|
|
|
add_dependencies(LLVMipo intrinsics_gen)
|