llvm-project/llvm/lib/Transforms
JF Bastien 9dc042a0b6 Comparing operands should not require the same ValueID
Summary: When comparing basic blocks, there is an additional check that two Value*'s should have the same ID, which interferes with merging equivalent constants of different kinds (such as a ConstantInt and a ConstantPointerNull in the included testcase). The cmpValues function already ensures that the two values in each function are the same, so removing this check should not cause incorrect merging.

Also, the type comparison is redundant, based on reviewing the code and testing on the test suite and several large LTO bitcodes.

Author: jrkoenig
Reviewers: nlewycky, jfb, dschuff
Subscribers: llvm-commits
Differential revision: http://reviews.llvm.org/D12302

llvm-svn: 246001
2015-08-26 03:02:58 +00:00
..
Hello Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
IPO Comparing operands should not require the same ValueID 2015-08-26 03:02:58 +00:00
InstCombine Re-apply r245635, "[InstCombine] Transform A & (L - 1) u< L --> L != 0" 2015-08-21 22:22:37 +00:00
Instrumentation Make variable argument intrinsics behave correctly in a Win64 CC function. 2015-08-25 23:27:41 +00:00
ObjCARC [ARC] Pull the ObjC ARC components that really serve the role of 2015-08-20 08:06:03 +00:00
Scalar Update libdeps in LLVMipo and LLVMScalarOpts, corresponding to r245940. 2015-08-25 17:11:17 +00:00
Utils [WinEH] Require token linkage in EH pad/ret signatures 2015-08-23 00:26:33 +00:00
Vectorize The patch replace the overflow check in loop vectorization with the minimum loop iterations check. 2015-08-25 16:43:47 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile