[llvm] r269654 - [LAA] Add option to disable conflict detection (NFC)
Matthew Simpson via llvm-commits
llvm-commits at lists.llvm.org
Mon May 16 09:33:48 PDT 2016
Adam,
No problem. I'll rename the flag in a follow-on.
-- Matt
-----Original Message-----
From: anemet at apple.com [mailto:anemet at apple.com]
Sent: Monday, May 16, 2016 12:21 PM
To: Matthew Simpson <mssimpso at codeaurora.org>
Cc: llvm-commits at lists.llvm.org
Subject: Re: [llvm] r269654 - [LAA] Add option to disable conflict detection
(NFC)
> On May 16, 2016, at 7:14 AM, Matthew Simpson via llvm-commits
<llvm-commits at lists.llvm.org> wrote:
>
> Author: mssimpso
> Date: Mon May 16 09:14:49 2016
> New Revision: 269654
>
> URL: http://llvm.org/viewvc/llvm-project?rev=269654&view=rev
> Log:
> [LAA] Add option to disable conflict detection (NFC)
>
> Modified:
> llvm/trunk/lib/Analysis/LoopAccessAnalysis.cpp
>
> Modified: llvm/trunk/lib/Analysis/LoopAccessAnalysis.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/LoopAccess
> Analysis.cpp?rev=269654&r1=269653&r2=269654&view=diff
> ======================================================================
> ========
> --- llvm/trunk/lib/Analysis/LoopAccessAnalysis.cpp (original)
> +++ llvm/trunk/lib/Analysis/LoopAccessAnalysis.cpp Mon May 16 09:14:49
> +++ 2016
> @@ -65,6 +65,13 @@ static cl::opt<unsigned>
> "loop-access analysis (default = 100)"),
> cl::init(100));
>
> +/// \brief Enable the conflict detection optimization. This option
> +can be /// disabled for correctness testing.
> +static cl::opt<bool> EnableConflictDetection(
> + "enable-conflict-detection", cl::Hidden,
> + cl::desc("Enable conflict detection in loop-access analysis"),
> + cl::init(true));
Hi Matt,
Sorry for the confusion, I meant,
-store-to-load-forwarding-conflict-detection (conflict-detection is too
general).
Thanks,
Adam
> +
> bool VectorizerParams::isInterleaveForced() {
> return ::VectorizationInterleave.getNumOccurrences() > 0; } @@
> -1203,7 +1210,7 @@ MemoryDepChecker::isDependent(const MemA
> const APInt &Val = C->getAPInt();
> if (Val.isNegative()) {
> bool IsTrueDataDependence = (AIsWrite && !BIsWrite);
> - if (IsTrueDataDependence &&
> + if (IsTrueDataDependence && EnableConflictDetection &&
> (couldPreventStoreLoadForward(Val.abs().getZExtValue(),
TypeByteSize) ||
> ATy != BTy)) {
> DEBUG(dbgs() << "LAA: Forward but may prevent st->ld
> forwarding\n"); @@ -1309,7 +1316,7 @@ MemoryDepChecker::isDependent(const
MemA
> Distance < MaxSafeDepDistBytes ? Distance : MaxSafeDepDistBytes;
>
> bool IsTrueDataDependence = (!AIsWrite && BIsWrite);
> - if (IsTrueDataDependence &&
> + if (IsTrueDataDependence && EnableConflictDetection &&
> couldPreventStoreLoadForward(Distance, TypeByteSize))
> return Dependence::BackwardVectorizableButPreventsForwarding;
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list