1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-26 22:42:46 +02:00
llvm-mirror/lib/Transforms
Sanjoy Das ead6e3fe61 Re-apply r245635, "[InstCombine] Transform A & (L - 1) u< L --> L != 0"
The original checkin was buggy, this change has a fix.

Original commit message:

[InstCombine] Transform A & (L - 1) u< L --> L != 0

Summary:

This transform is never a pessimization at the IR level (since it
replaces an `icmp` with another), and has potentiall payoffs:

 1. It may make the `icmp` fold away or become loop invariant.
 2. It may make the `A & (L - 1)` computation dead.

This shows up in Java, in range checks generated by array accesses of
the form `a[i & (a.length - 1)]`.

Reviewers: reames, majnemer

Subscribers: llvm-commits

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

llvm-svn: 245753
2015-08-21 22:22:37 +00:00
..
Hello Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
InstCombine Re-apply r245635, "[InstCombine] Transform A & (L - 1) u< L --> L != 0" 2015-08-21 22:22:37 +00:00
Instrumentation [asan] Add ASAN support for AArch64 42-bit VMA 2015-08-20 18:30:40 +00:00
IPO [PM/AA] Remove the last relics of the separate IPA library from LLVM, 2015-08-18 17:51:53 +00:00
ObjCARC [ARC] Pull the ObjC ARC components that really serve the role of 2015-08-20 08:06:03 +00:00
Scalar Rename Instruction::dropUnknownMetadata() to dropUnknownNonDebugMetadata() 2015-08-20 22:00:30 +00:00
Utils [opaque pointer type]: Pass explicit pointee type when building a constant GEP. 2015-08-21 20:16:51 +00:00
Vectorize [SLP] Propagate 'nontemporal' attribute into vectorized instructions. 2015-08-20 22:28:15 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile