Author: hans Date: Thu Aug 18 13:14:41 2016 New Revision: 279107 URL: http://llvm.org/viewvc/llvm-project?rev=279107&view=rev Log: Merging r278562: ------------------------------------------------------------------------ r278562 | efriedma | 2016-08-12 13:39:51 -0700 (Fri, 12 Aug 2016) | 7 lines
[AArch64LoadStoreOptimizer] Check aliasing correctly when creating paired loads/stores. The existing code accidentally skipped the aliasing check in edge cases. Differential revision: https://reviews.llvm.org/D23372 ------------------------------------------------------------------------ Added: llvm/branches/release_39/test/CodeGen/AArch64/ldst-paired-aliasing.ll - copied unchanged from r278562, llvm/trunk/test/CodeGen/AArch64/ldst-paired-aliasing.ll Modified: llvm/branches/release_39/ (props changed) llvm/branches/release_39/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp Propchange: llvm/branches/release_39/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Aug 18 13:14:41 2016 @@ -1,3 +1,3 @@ /llvm/branches/Apple/Pertwee:110850,110961 /llvm/branches/type-system-rewrite:133420-134817 -/llvm/trunk:155241,275868-275870,275879,275898,275928,275935,275946,275978,275981,276015,276051,276077,276109,276119,276181,276209,276236-276237,276358,276364,276368,276389,276435,276438,276479,276510,276648,276676,276712,276740,276823,276956,276980,277093,277114,277135,277371,277399,277500,277504,277625,277691,277693,277773,278002,278086,278133,278157,278370,278413,278558,278569,278571,278573,278575,278584,278841,278900,278938,278999 +/llvm/trunk:155241,275868-275870,275879,275898,275928,275935,275946,275978,275981,276015,276051,276077,276109,276119,276181,276209,276236-276237,276358,276364,276368,276389,276435,276438,276479,276510,276648,276676,276712,276740,276823,276956,276980,277093,277114,277135,277371,277399,277500,277504,277625,277691,277693,277773,278002,278086,278133,278157,278370,278413,278558,278562,278569,278571,278573,278575,278584,278841,278900,278938,278999 Modified: llvm/branches/release_39/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_39/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp?rev=279107&r1=279106&r2=279107&view=diff ============================================================================== --- llvm/branches/release_39/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp (original) +++ llvm/branches/release_39/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp Thu Aug 18 13:14:41 2016 @@ -1258,8 +1258,11 @@ AArch64LoadStoreOpt::findMatchingInsn(Ma if (MIIsUnscaled) { // If the unscaled offset isn't a multiple of the MemSize, we can't // pair the operations together: bail and keep looking. - if (MIOffset % MemSize) + if (MIOffset % MemSize) { + trackRegDefsUses(MI, ModifiedRegs, UsedRegs, TRI); + MemInsns.push_back(&MI); continue; + } MIOffset /= MemSize; } else { MIOffset *= MemSize; _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits