forked from OSchip/llvm-project
1929b5539a
objc_storeStrong can be formed from a sequence such as %0 = tail call i8* @objc_retain(i8* %p) nounwind %tmp = load i8*, i8** @x, align 8 store i8* %0, i8** @x, align 8 tail call void @objc_release(i8* %tmp) nounwind The code was already looking through bitcasts for most of the values involved, but had missed one case where the pointer operand for the store was a bitcast. Ultimately the pointer for the load and store have to be the same value, after stripping casts. llvm-svn: 270955 |
||
---|---|---|
.. | ||
ARCRuntimeEntryPoints.h | ||
BlotMapVector.h | ||
CMakeLists.txt | ||
DependencyAnalysis.cpp | ||
DependencyAnalysis.h | ||
LLVMBuild.txt | ||
ObjCARC.cpp | ||
ObjCARC.h | ||
ObjCARCAPElim.cpp | ||
ObjCARCContract.cpp | ||
ObjCARCExpand.cpp | ||
ObjCARCOpts.cpp | ||
ProvenanceAnalysis.cpp | ||
ProvenanceAnalysis.h | ||
ProvenanceAnalysisEvaluator.cpp | ||
PtrState.cpp | ||
PtrState.h |