1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-25 22:12:57 +02:00
llvm-mirror/lib/Transforms
Philip Reames 45adc98469 [InstCombine] When canonicalizing gep indices, prefer zext when possible
If we know that the sign bit of a value being sign extended is zero, we can use a zero extension instead.  This is motivated by the fact that zero extensions are generally cheaper on x86 (and most other architectures?).  We already apply a similar transform in DAGCombine, this just extends that to the IR level.

This comes up when we eagerly canonicalize gep indices to the width of a machine register (i64 on x86_64). To do so, we insert sign extensions (sext) to promote smaller types. 

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

llvm-svn: 229189
2015-02-14 00:05:36 +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] When canonicalizing gep indices, prefer zext when possible 2015-02-14 00:05:36 +00:00
Instrumentation tsan: do not instrument not captured values 2015-02-12 09:55:28 +00:00
IPO [PM] Remove the old 'PassManager.h' header file at the top level of 2015-02-13 10:01:29 +00:00
ObjCARC Use ADDITIONAL_HEADER_DIRS in all LLVM CMake projects. 2015-02-11 03:28:02 +00:00
Scalar [PM] Remove the old 'PassManager.h' header file at the top level of 2015-02-13 10:01:29 +00:00
Utils [SimplifyCFG] Be more aggressive 2015-02-13 10:48:30 +00:00
Vectorize [PM] Remove the old 'PassManager.h' header file at the top level of 2015-02-13 10:01:29 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile