1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 12:02:58 +02:00
llvm-mirror/lib/Transforms/Utils
George Burgess IV 9c2a58d00e [MSSA] Add an overload for getClobberingMemoryAccess.
A seemingly common use for the walker's getClobberingMemoryAccess
function is:

```
MemoryAccess *getClobber(MemorySSAWalker *W, MemoryUseOrDef *MUD) {
  const Instruction *I = MUD->getMemoryInst();
  return W->getClobberingMemoryAccess(I);
}
```

Which is kind of redundant, since walkers will ultimately query MSSA to
find out which MemoryAccess `I` maps to (...which is always `MUD`).

So, this patch adds an overload of getClobberingMemoryAccess that
accepts MemoryAccesses directly. As a result, the Instruction overload
of getClobberingMemoryAccess becomes a lightweight wrapper around our
new overload.

Additionally, this patch un`virtual`izes the Instruction overload of
getClobberingMemoryAccess, since there doesn't seem to be a walker that
benefits from that being virtual, and I can't think of how else one
would implement it. Happy to make it virtual again if we would benefit
from doing so.

llvm-svn: 276169
2016-07-20 19:51:34 +00:00
..
AddDiscriminators.cpp Address review feedbacks of AddDiscriminator change 2016-06-15 22:20:56 +00:00
ASanStackFrameLayout.cpp Update to use new name alignTo(). 2016-01-14 21:06:47 +00:00
BasicBlockUtils.cpp Apply clang-tidy's modernize-loop-convert to most of lib/Transforms. 2016-06-26 12:28:59 +00:00
BreakCriticalEdges.cpp improve documentation comments; NFC 2016-04-23 16:31:48 +00:00
BuildLibCalls.cpp Reverting r275284 due to platform-specific test failures 2016-07-13 19:09:16 +00:00
BypassSlowDivision.cpp Clarify that the bypassSlowDivision optimization operates on a single BB [v2] 2016-01-04 23:18:58 +00:00
CloneFunction.cpp Apply clang-tidy's modernize-loop-convert to most of lib/Transforms. 2016-06-26 12:28:59 +00:00
CloneModule.cpp Apply clang-tidy's modernize-loop-convert to most of lib/Transforms. 2016-06-26 12:28:59 +00:00
CMakeLists.txt Add a pass to name anonymous/nameless function 2016-04-12 21:35:28 +00:00
CmpInstAnalysis.cpp move decomposeBitTestICmp() to Transforms/Utils; NFC 2016-07-20 17:18:45 +00:00
CodeExtractor.cpp [CodeExtractor] Merge DEBUG statements in an attempt to fix the msvc 2016-06-26 13:39:33 +00:00
CtorUtils.cpp TransformUtils: Remove implicit ilist iterator conversions, NFC 2015-10-13 02:39:05 +00:00
DemoteRegToStack.cpp TransformUtils: Remove implicit ilist iterator conversions, NFC 2015-10-13 02:39:05 +00:00
Evaluator.cpp Don't IPO over functions that can be de-refined 2016-04-08 00:48:30 +00:00
FlattenCFG.cpp LPM: Stop threading Pass * through all of the loop utility APIs. NFC 2015-12-15 19:40:57 +00:00
FunctionImportUtils.cpp IR: Introduce local_unnamed_addr attribute. 2016-06-14 21:01:22 +00:00
GlobalStatus.cpp IR: Introduce local_unnamed_addr attribute. 2016-06-14 21:01:22 +00:00
InlineFunction.cpp Apply clang-tidy's modernize-loop-convert to most of lib/Transforms. 2016-06-26 12:28:59 +00:00
InstructionNamer.cpp Apply clang-tidy's modernize-loop-convert to most of lib/Transforms. 2016-06-26 12:28:59 +00:00
IntegerDivision.cpp TransformUtils: Avoid getNodePtrUnchecked() in integer division, NFC 2016-02-21 20:14:29 +00:00
LCSSA.cpp Revert "Revert r275883 and r275891. They seem to cause PR28608." 2016-07-20 01:55:27 +00:00
LLVMBuild.txt [PM/AA] Remove the last relics of the separate IPA library from LLVM, 2015-08-18 17:51:53 +00:00
Local.cpp Just a small cleanup 2016-06-25 08:34:38 +00:00
LoopSimplify.cpp Revert "Revert r275883 and r275891. They seem to cause PR28608." 2016-07-20 01:55:27 +00:00
LoopUnroll.cpp [PM] Port LoopSimplify to the new pass manager. 2016-07-09 03:03:01 +00:00
LoopUnrollRuntime.cpp The patch fixes PR27392. 2016-04-27 03:04:54 +00:00
LoopUtils.cpp [LICM] Make isGuaranteedToExecute more accurate. 2016-06-11 21:48:25 +00:00
LoopVersioning.cpp Rename LoopAccessAnalysis to LoopAccessLegacyAnalysis /NFC 2016-07-08 20:55:26 +00:00
LowerInvoke.cpp Apply clang-tidy's modernize-loop-convert to most of lib/Transforms. 2016-06-26 12:28:59 +00:00
LowerSwitch.cpp It isn't meaningful for a transform to preserve another transform. NFC. 2016-06-25 00:47:21 +00:00
Mem2Reg.cpp [PM] Normalize FIXMEs for missing PreserveCFG to have the same wording. 2016-06-28 00:54:12 +00:00
MemorySSA.cpp [MSSA] Add an overload for getClobberingMemoryAccess. 2016-07-20 19:51:34 +00:00
MetaRenamer.cpp Whoops, remove trailing whitespace. 2015-08-27 05:37:12 +00:00
ModuleUtils.cpp [ThinLTO] Prevent importing of "llvm.used" values 2016-04-20 14:39:45 +00:00
NameAnonFunctions.cpp Fix mismatch on returned type between header and implementation for createNameAnonFunctionPass() 2016-04-12 23:25:11 +00:00
PromoteMemoryToRegister.cpp Correct IDF calculator for ReverseIDF 2016-04-19 06:13:28 +00:00
SanitizerStats.cpp Fix Clang-tidy modernize-use-nullptr and modernize-use-override warnings; other minor fixes. 2016-01-26 18:48:36 +00:00
SimplifyCFG.cpp Apply clang-tidy's modernize-loop-convert to most of lib/Transforms. 2016-06-26 12:28:59 +00:00
SimplifyIndVar.cpp [IndVars] Remove -liv-reduce 2016-06-05 18:01:12 +00:00
SimplifyInstructions.cpp [PM] Port InstSimplify to the new pass manager. 2016-07-07 21:14:36 +00:00
SimplifyLibCalls.cpp Addressing post-commit comments for not rewriting fputs: 2016-07-07 14:31:19 +00:00
SplitModule.cpp Move instances of std::function. 2016-06-12 16:13:55 +00:00
SSAUpdater.cpp
SymbolRewriter.cpp Make some headers self-contained, remove unused includes that violate layering. 2016-01-27 16:05:37 +00:00
UnifyFunctionExitNodes.cpp Apply clang-tidy's modernize-loop-convert to most of lib/Transforms. 2016-06-26 12:28:59 +00:00
Utils.cpp [MemorySSA] Reinstate the legacy printer and verifier. 2016-07-06 21:20:47 +00:00
ValueMapper.cpp Delete more dead code. 2016-06-22 12:44:16 +00:00