diff options
author | Tim Northover <tnorthover@apple.com> | 2019-09-12 10:21:00 +0000 |
---|---|---|
committer | Tim Northover <tnorthover@apple.com> | 2019-09-12 10:21:00 +0000 |
commit | 98534843fb4c14ebe8022143cdcfc2a4ea8d2d02 (patch) | |
tree | 4455ba6bca082b7a5ff0301b8adb389683202bf1 /llvm/lib/CodeGen/CodeGenPrepare.cpp | |
parent | 719087bbb775d49f6f4c3f923bb3282b66e588ce (diff) | |
download | bcm5719-llvm-98534843fb4c14ebe8022143cdcfc2a4ea8d2d02.tar.gz bcm5719-llvm-98534843fb4c14ebe8022143cdcfc2a4ea8d2d02.zip |
CodeGenPrep: add separate hook say when GEPs should be used for sinking. NFCI.
Up to now, we've decided whether to sink address calculations using GEPs or
normal arithmetic based on the useAA hook, but there are other reasons GEPs
might be preferred. So this patch splits the two questions, with a default
implementation falling back to useAA.
llvm-svn: 371721
Diffstat (limited to 'llvm/lib/CodeGen/CodeGenPrepare.cpp')
-rw-r--r-- | llvm/lib/CodeGen/CodeGenPrepare.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/CodeGenPrepare.cpp b/llvm/lib/CodeGen/CodeGenPrepare.cpp index 9a31c082987..aebfa2e1c11 100644 --- a/llvm/lib/CodeGen/CodeGenPrepare.cpp +++ b/llvm/lib/CodeGen/CodeGenPrepare.cpp @@ -4791,8 +4791,8 @@ bool CodeGenPrepare::optimizeMemoryInst(Instruction *MemoryInst, Value *Addr, << " for " << *MemoryInst << "\n"); if (SunkAddr->getType() != Addr->getType()) SunkAddr = Builder.CreatePointerCast(SunkAddr, Addr->getType()); - } else if (AddrSinkUsingGEPs || - (!AddrSinkUsingGEPs.getNumOccurrences() && TM && TTI->useAA())) { + } else if (AddrSinkUsingGEPs || (!AddrSinkUsingGEPs.getNumOccurrences() && + TM && SubtargetInfo->addrSinkUsingGEPs())) { // By default, we use the GEP-based method when AA is used later. This // prevents new inttoptr/ptrtoint pairs from degrading AA capabilities. LLVM_DEBUG(dbgs() << "CGP: SINKING nonlocal addrmode: " << AddrMode |