History log of /llvm-project/llvm/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp (Results 26 – 50 of 81)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 5f8f34e4 01-May-2018 Adrian Prantl <aprantl@apple.com>

Remove \brief commands from doxygen comments.

We've been running doxygen with the autobrief option for a couple of
years now. This makes the \brief markers into our comments
redundant. Since they ar

Remove \brief commands from doxygen comments.

We've been running doxygen with the autobrief option for a couple of
years now. This makes the \brief markers into our comments
redundant. Since they are a visual distraction and we don't want to
encourage more \brief markers in new code either, this patch removes
them all.

Patch produced by

for i in $(git grep -l '\\brief'); do perl -pi -e 's/\\brief //g' $i & done

Differential Revision: https://reviews.llvm.org/D46290

llvm-svn: 331272

show more ...


Revision tags: llvmorg-6.0.1-rc1, llvmorg-5.0.2, llvmorg-5.0.2-rc2, llvmorg-5.0.2-rc1, llvmorg-6.0.0, llvmorg-6.0.0-rc3
# 983d6c3f 23-Feb-2018 Bjorn Steinbrink <bsteinbr@gmail.com>

Mark MergedLoadStoreMotion as not preserving MemDep results

Summary:
MemDep caches results that signify that a dependence is non-local, and
there is currently no way to invalidate such cache entries

Mark MergedLoadStoreMotion as not preserving MemDep results

Summary:
MemDep caches results that signify that a dependence is non-local, and
there is currently no way to invalidate such cache entries.
Unfortunately, when MLSM sinks a store that can result in a non-local
dependence becoming a local one, and then MemDep gives wrong answers.
The easiest way out here is to just say that MLSM does indeed not
preserve MemDep results.

Reviewers: davide, Gerolf

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D43177

llvm-svn: 325880

show more ...


Revision tags: llvmorg-6.0.0-rc2, llvmorg-6.0.0-rc1
# 6af4f232 13-Dec-2017 Michael Zolotukhin <mzolotukhin@apple.com>

Remove redundant includes from lib/Transforms.

llvm-svn: 320628


# 193429f0 07-Dec-2017 Alina Sbirlea <asbirlea@google.com>

[ModRefInfo] Make enum ModRefInfo an enum class [NFC].

Summary:
Make enum ModRefInfo an enum class. Changes to ModRefInfo values should
be done using inline wrappers.
This should prevent future bit-

[ModRefInfo] Make enum ModRefInfo an enum class [NFC].

Summary:
Make enum ModRefInfo an enum class. Changes to ModRefInfo values should
be done using inline wrappers.
This should prevent future bit-wise opearations from being added, which can be more error-prone.

Reviewers: sanjoy, dberlin, hfinkel, george.burgess.iv

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D40933

llvm-svn: 320107

show more ...


Revision tags: llvmorg-5.0.1, llvmorg-5.0.1-rc3, llvmorg-5.0.1-rc2, llvmorg-5.0.1-rc1, llvmorg-5.0.0, llvmorg-5.0.0-rc5, llvmorg-5.0.0-rc4, llvmorg-5.0.0-rc3, llvmorg-5.0.0-rc2, llvmorg-5.0.0-rc1
# 95d2347a 09-Jul-2017 Craig Topper <craig.topper@intel.com>

[IR] Make use of Type::isPtrOrPtrVectorTy/isIntOrIntVectorTy/isFPOrFPVectorTy to shorten code. NFC

llvm-svn: 307491


Revision tags: llvmorg-4.0.1, llvmorg-4.0.1-rc3, llvmorg-4.0.1-rc2, llvmorg-4.0.1-rc1, llvmorg-4.0.0, llvmorg-4.0.0-rc4, llvmorg-4.0.0-rc3, llvmorg-4.0.0-rc2
# 9d8f6f8a 29-Jan-2017 Davide Italiano <davide@freebsd.org>

Remove inclusion of SSAUpdater from several passes.

It is, in fact, unused. Found while reviewing Danny's new
SSAUpdater and porting passes to it to see how the new API
looked like.

llvm-svn: 293407


# 390dfde0 24-Jan-2017 Daniel Berlin <dberlin@dberlin.org>

Remove the load hoisting code of MLSM, it is completely subsumed by GVNHoist

Summary:
GVNHoist performs all the optimizations that MLSM does to loads, in a
more general way, and in a faster time bou

Remove the load hoisting code of MLSM, it is completely subsumed by GVNHoist

Summary:
GVNHoist performs all the optimizations that MLSM does to loads, in a
more general way, and in a faster time bound (MLSM is N^3 in most
cases, N^4 in a few edge cases).

This disables the load portion.

Note that the way ld_hoist_st_sink.ll is written makes one think that
the loads should be moved to the while.preheader block, but

1. Neither MLSM nor GVNHoist do it (they both move them to identical places).

2. MLSM couldn't possibly do it anyway, as the while.preheader block
is not the head of the diamond, while.body is. (GVNHoist could do it
if it was legal).

3. At a glance, it's not legal anyway because the in-loop load
conflict with the in-loop store, so the loads must stay in-loop.

I am happy to update the test to use update_test_checks so that
checking is tighter, just was going to do it as a followup.

Note that i can find no particular benefit to the store portion on any
real testcase/benchmark i have (even size-wise). If we really still
want it, i am happy to commit to writing a targeted store sinker, just
taking the code from the MemorySSA port of MergedLoadStoreMotion
(which is N^2 worst case, and N most of the time).

We can do what it does in a much better time bound.

We also should be both hoisting and sinking stores, not just sinking
them, anyway, since whether we should hoist or sink to merge depends
basically on luck of the draw of where the blockers are placed.

Nonetheless, i have left it alone for now.

Reviewers: chandlerc, davide

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D29079

llvm-svn: 292971

show more ...


Revision tags: llvmorg-4.0.0-rc1
# ca68a3ec 15-Jan-2017 Chandler Carruth <chandlerc@gmail.com>

[PM] Introduce an analysis set used to preserve all analyses over
a function's CFG when that CFG is unchanged.

This allows transformation passes to simply claim they preserve the CFG
and analysis pa

[PM] Introduce an analysis set used to preserve all analyses over
a function's CFG when that CFG is unchanged.

This allows transformation passes to simply claim they preserve the CFG
and analysis passes to check for the CFG being preserved to remove the
fanout of all analyses being listed in all passes.

I've gone through and removed or cleaned up as many of the comments
reminding us to do this as I could.

Differential Revision: https://reviews.llvm.org/D28627

llvm-svn: 292054

show more ...


Revision tags: llvmorg-3.9.1, llvmorg-3.9.1-rc3, llvmorg-3.9.1-rc2, llvmorg-3.9.1-rc1
# 8f1dd5c4 07-Sep-2016 Peter Collingbourne <peter@pcc.me.uk>

IR: Remove Value::intersectOptionalDataWith, replace all calls with calls to Instruction::andIRFlags.

The two functions are functionally equivalent.

Differential Revision: https://reviews.llvm.org/

IR: Remove Value::intersectOptionalDataWith, replace all calls with calls to Instruction::andIRFlags.

The two functions are functionally equivalent.

Differential Revision: https://reviews.llvm.org/D22830

llvm-svn: 280884

show more ...


Revision tags: llvmorg-3.9.0, llvmorg-3.9.0-rc3, llvmorg-3.9.0-rc2
# 36e0d01e 09-Aug-2016 Sean Silva <chisophugis@gmail.com>

Consistently use FunctionAnalysisManager

Besides a general consistently benefit, the extra layer of indirection
allows the mechanical part of https://reviews.llvm.org/D23256 that
requires touching e

Consistently use FunctionAnalysisManager

Besides a general consistently benefit, the extra layer of indirection
allows the mechanical part of https://reviews.llvm.org/D23256 that
requires touching every transformation and analysis to be factored out
cleanly.

Thanks to David for the suggestion.

llvm-svn: 278077

show more ...


Revision tags: llvmorg-3.9.0-rc1
# 15cf7b83 21-Jul-2016 David Majnemer <david.majnemer@gmail.com>

[MergedLoadStoreMotion] Remove out of date comment

llvm-svn: 276239


# 4d09892e 10-Jul-2016 Benjamin Kramer <benny.kra@googlemail.com>

Give helper classes/functions internal linkage. NFC.

llvm-svn: 275014


# 835facd8 28-Jun-2016 Michael Kuperstein <mkuper@google.com>

[PM] Normalize FIXMEs for missing PreserveCFG to have the same wording.

llvm-svn: 273974


# d7708773 24-Jun-2016 David Majnemer <david.majnemer@gmail.com>

Switch more loops to be range-based

This makes the code a little more concise, no functional change is
intended.

llvm-svn: 273644


# b49aa5c0 17-Jun-2016 Davide Italiano <davide@freebsd.org>

[PM] Port MergedLoadStoreMotion to the new pass manager, take two.

This is indeed a much cleaner approach (thanks to Daniel Berlin
for pointing out), and also David/Sean for review.

Differential Re

[PM] Port MergedLoadStoreMotion to the new pass manager, take two.

This is indeed a much cleaner approach (thanks to Daniel Berlin
for pointing out), and also David/Sean for review.

Differential Revision: http://reviews.llvm.org/D21454

llvm-svn: 273032

show more ...


# 41315f78 16-Jun-2016 Davide Italiano <davide@freebsd.org>

[PM] Revert the port of MergeLoadStoreMotion to the new pass manager.

Daniel Berlin expressed some real concerns about the port and proposed
and alternative approach. I'll revert this for now while

[PM] Revert the port of MergeLoadStoreMotion to the new pass manager.

Daniel Berlin expressed some real concerns about the port and proposed
and alternative approach. I'll revert this for now while working on a
new patch, which I hope to put up for review shortly. Sorry for the churn.

llvm-svn: 272925

show more ...


# 66a9d07a 14-Jun-2016 Chad Rosier <mcrosier@codeaurora.org>

[MergedLoadStoreMotion] Before quering AA verify the loads are the same.

Basicaa stats show the number of queries in Spec2k6 are reduced by 4540
or ~.67% overall.

llvm-svn: 272661


# 3ab1b588 14-Jun-2016 Davide Italiano <davide@freebsd.org>

[PM/MergedLoadStoreMotion] Preserve analyses more aggressively.

llvm-svn: 272611


# 89ab89d6 14-Jun-2016 Davide Italiano <davide@freebsd.org>

[PM] Port MergedLoadStoreMotion to the new pass manager.

llvm-svn: 272606


# 86c1f953 13-Jun-2016 Davide Italiano <davide@freebsd.org>

[PM/MergedLoadStoreMotion] Remove unneeded pass dependency.

llvm-svn: 272598


# 44faf7f4 13-Jun-2016 Davide Italiano <davide@freebsd.org>

[PM/MergeLoadStoreMotion] Convert the logic to static functions.

Pass AliasAnalyis and MemoryDepResult around. This is in preparation
for porting this pass to the new PM.

llvm-svn: 272595


# 9f8031c2 12-Jun-2016 Eli Friedman <eli.friedman@gmail.com>

[MergedLoadStoreMotion] Use correct helper for load hoist safety.

It isn't legal to hoist a load past a call which might not return;
even if it doesn't throw, it could, for example, call exit().

Fi

[MergedLoadStoreMotion] Use correct helper for load hoist safety.

It isn't legal to hoist a load past a call which might not return;
even if it doesn't throw, it could, for example, call exit().

Fixes http://llvm.org/PR27953.

llvm-svn: 272495

show more ...


Revision tags: llvmorg-3.8.1, llvmorg-3.8.1-rc1
# 47451257 26-May-2016 David Majnemer <david.majnemer@gmail.com>

[MergedLoadStoreMotion] Don't transform across may-throw calls

It is unsafe to hoist a load before a function call which may throw, the
throw might prevent a pointer dereference.

Likewise, it is un

[MergedLoadStoreMotion] Don't transform across may-throw calls

It is unsafe to hoist a load before a function call which may throw, the
throw might prevent a pointer dereference.

Likewise, it is unsafe to sink a store after a call which may throw.
The caller might be able to observe the difference.

This fixes PR27858.

llvm-svn: 270828

show more ...


# 8cce333a 26-May-2016 David Majnemer <david.majnemer@gmail.com>

[MergedLoadStoreMotion] Small cleanup

No functional change is intended.

llvm-svn: 270824


# aa641a51 22-Apr-2016 Andrew Kaylor <andrew.kaylor@intel.com>

Re-commit optimization bisect support (r267022) without new pass manager support.

The original commit was reverted because of a buildbot problem with LazyCallGraph::SCC handling (not related to the

Re-commit optimization bisect support (r267022) without new pass manager support.

The original commit was reverted because of a buildbot problem with LazyCallGraph::SCC handling (not related to the OptBisect handling).

Differential Revision: http://reviews.llvm.org/D19172

llvm-svn: 267231

show more ...


1234