llvm/lib
Chandler Carruth 35c4e071be Teach the load analysis driving core instcombine logic and other bits of
logic to look through pointer casts, making them trivially stronger in
the face of loads and stores with intervening pointer casts.

I've included a few test cases that demonstrate the kind of folding
instcombine can do without pointer casts and then variations which
obfuscate the logic through bitcasts. Without this patch, the variations
all fail to optimize fully.

This is more important now than it has been in the past as I've started
moving the load canonicialization to more closely follow the value type
requirements rather than the pointer type requirements and thus this
needs to be prepared for more pointer casts. When I made the same change
to stores several test cases regressed without logic along these lines
so I wanted to systematically improve matters first.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@220178 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-20 00:24:14 +00:00
..
Analysis Teach the load analysis driving core instcombine logic and other bits of 2014-10-20 00:24:14 +00:00
AsmParser
Bitcode correct const-ness with auto and dyn_cast 2014-10-15 17:45:13 +00:00
CodeGen [PBQP] Replace the interference-constraints algorithm with a faster version 2014-10-18 17:26:07 +00:00
DebugInfo Add couple of missing 'override' keyword. NFC. 2014-10-10 17:34:30 +00:00
ExecutionEngine [MCJIT] Replace memcpy with readBytesUnaligned in RuntimeDyldMachOI386. 2014-10-10 23:07:09 +00:00
IR [Stackmaps] Enable invoking the patchpoint intrinsic. 2014-10-17 17:39:00 +00:00
IRReader
LineEditor
Linker
LTO
MC Add back commits r219835 and a fixed version of r219829. 2014-10-17 01:48:58 +00:00
Object [llvm-objdump] Fix mach-o binding decompression error 2014-10-18 01:21:02 +00:00
Option
ProfileData Reduce double set lookups. NFC. 2014-10-10 15:32:50 +00:00
Support Introduce LLVMParseCommandLineOptions C API function. 2014-10-16 22:47:52 +00:00
TableGen
Target Use triple predicate functions instead of checking values directly. NFC. 2014-10-19 00:39:30 +00:00
Transforms Teach the load analysis driving core instcombine logic and other bits of 2014-10-20 00:24:14 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile