llvm-6502/lib
Chandler Carruth b778cbc0c8 [canonicalize] Teach InstCombine to canonicalize loads which are only
ever stored to always use a legal integer type if one is available.

Regardless of whether this particular type is good or bad, it ensures we
don't get weird differences in generated code (and resulting
performance) from "equivalent" patterns that happen to end up using
a slightly different type.

After some discussion on llvmdev it seems everyone generally likes this
canonicalization. However, there may be some parts of LLVM that handle
it poorly and need to be fixed. I have at least verified that this
doesn't impede GVN and instcombine's store-to-load forwarding powers in
any obvious cases. Subtle cases are exactly what we need te flush out if
they remain.

Also note that this IR pattern should already be hitting LLVM from Clang
at least because it is exactly the IR which would be produced if you
used memcpy to copy a pointer or floating point between memory instead
of a variable.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@226781 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-22 05:08:12 +00:00
..
Analysis Make ScalarEvolution less aggressive with respect to no-wrap flags. 2015-01-22 00:48:47 +00:00
AsmParser AsmParser: PARSE_MD_FIELD() => ParseMDField(), NFC 2015-01-20 02:42:29 +00:00
Bitcode Bitcode: Don't create comdats when autoupgrading macho bitcode 2015-01-20 05:58:07 +00:00
CodeGen Win64 SEH: Emit the constant 1 for catch-all into xdata 2015-01-22 02:27:44 +00:00
DebugInfo [cleanup] Re-sort all the #include lines in LLVM using 2015-01-14 11:23:27 +00:00
ExecutionEngine [RuntimeDyld] Tidy up emitCommonSymbols a little. NFC. 2015-01-17 00:55:05 +00:00
IR Rewrite DIExpression::Verify() using an iterator. NFC. 2015-01-22 00:00:52 +00:00
IRReader Remove unused variable. NFC. 2014-11-06 23:16:57 +00:00
LineEditor
Linker [llvm link] Destroy ConstantArrays in LLVMContext if they are not used. 2015-01-20 19:24:59 +00:00
LTO [PM] Separate the InstCombiner from its pass. 2015-01-20 22:44:35 +00:00
MC ARM: fail less catastrophically on invalid Windows input 2015-01-22 04:03:32 +00:00
Object Fix the Archive::Child::getRawSize() method used by llvm-objdump’s -archive-headers option 2015-01-16 22:10:36 +00:00
Option [cleanup] Re-sort all the #include lines in LLVM using 2015-01-14 11:23:27 +00:00
ProfileData Replace size method call of containers to empty method where appropriate 2015-01-15 11:41:30 +00:00
Support Adding a new cl::HideUnrelatedOptions API to allow clang to migrate off cl::getRegisteredOptions. 2015-01-21 22:45:52 +00:00
TableGen Replace size method call of containers to empty method where appropriate 2015-01-15 11:41:30 +00:00
Target ARM: fail less catastrophically on invalid Windows input 2015-01-22 04:03:32 +00:00
Transforms [canonicalize] Teach InstCombine to canonicalize loads which are only 2015-01-22 05:08:12 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile