1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 04:02:41 +01:00
llvm-mirror/lib/Transforms
Renato Golin 0b73c2b605 Small refactor on VectorizerHint for deduplication
Previously, the hint mechanism relied on clean up passes to remove redundant
metadata, which still showed up if running opt at low levels of optimization.
That also has shown that multiple nodes of the same type, but with different
values could still coexist, even if temporary, and cause confusion if the
next pass got the wrong value.

This patch makes sure that, if metadata already exists in a loop, the hint
mechanism will never append a new node, but always replace the existing one.
It also enhances the algorithm to cope with more metadata types in the future
by just adding a new type, not a lot of code.

Re-applying again due to MSVC 2013 being minimum requirement, and this patch
having C++11 that MSVC 2012 didn't support.

Fixes PR20655.

llvm-svn: 216870
2014-09-01 10:00:17 +00:00
..
Hello [CMake] Add LLVM_LINK_COMPONENTS to loadable modules, LLVMHello and BugpointPasses, on Win32. 2014-07-13 13:36:48 +00:00
InstCombine InstCombine: Respect recursion depth in visitUDivOperand 2014-08-30 09:19:05 +00:00
Instrumentation Fix some cases where StringRef was being passed by const reference. Remove const from some other StringRefs since its implicitly const already. 2014-08-30 16:48:02 +00:00
IPO Feed AA to the inliner and use AA->getModRefBehavior in AddAliasScopeMetadata 2014-09-01 09:01:39 +00:00
ObjCARC Simplify creation of a bunch of ArrayRefs by using None, makeArrayRef or just letting them be implicitly created. 2014-08-27 05:25:25 +00:00
Scalar Ignore lifetime intrinsics in use list for MemCpyOptimizer. Patch by Luqman Aden, review by Hal Finkel. 2014-09-01 06:03:11 +00:00
Utils Feed AA to the inliner and use AA->getModRefBehavior in AddAliasScopeMetadata 2014-09-01 09:01:39 +00:00
Vectorize Small refactor on VectorizerHint for deduplication 2014-09-01 10:00:17 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile