Please use GitHub pull requests for new patches. Avoid migrating existing patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
Show First 20 Lines • Show All 575 Lines • ▼ Show 20 Lines | if (TM->getOptLevel() == CodeGenOpt::Aggressive && EnableGEPOpt) { | ||||
addPass(createLICMPass()); | addPass(createLICMPass()); | ||||
} | } | ||||
TargetPassConfig::addIRPasses(); | TargetPassConfig::addIRPasses(); | ||||
addPass(createAArch64StackTaggingPass( | addPass(createAArch64StackTaggingPass( | ||||
/*IsOptNone=*/TM->getOptLevel() == CodeGenOpt::None)); | /*IsOptNone=*/TM->getOptLevel() == CodeGenOpt::None)); | ||||
// Match complex arithmetic patterns | |||||
if (TM->getOptLevel() >= CodeGenOpt::Default) | |||||
addPass(createComplexDeinterleavingPass(TM)); | |||||
// Match interleaved memory accesses to ldN/stN intrinsics. | // Match interleaved memory accesses to ldN/stN intrinsics. | ||||
if (TM->getOptLevel() != CodeGenOpt::None) { | if (TM->getOptLevel() != CodeGenOpt::None) { | ||||
addPass(createInterleavedLoadCombinePass()); | addPass(createInterleavedLoadCombinePass()); | ||||
addPass(createInterleavedAccessPass()); | addPass(createInterleavedAccessPass()); | ||||
} | } | ||||
// Add Control Flow Guard checks. | // Add Control Flow Guard checks. | ||||
if (TM->getTargetTriple().isOSWindows()) | if (TM->getTargetTriple().isOSWindows()) | ||||
▲ Show 20 Lines • Show All 243 Lines • Show Last 20 Lines |