llvm-6502/lib
Adam Nemet 73282018a1 [DAGCombiner] Split up an indexed load if only the base pointer value is live
Right now the load may not get DCE'd because of the side-effect of updating
the base pointer.

This can happen if we lower a read-modify-write of an illegal larger type
(e.g. i48) such that the modification only affects one of the subparts (the
lower i32 part but not the higher i16 part).  See the testcase.

In order to spot the dead load we need to revisit it when SimplifyDemandedBits
decided that the value of the load is masked off.  This is the
CommitTargetLoweringOpt piece.

I checked compile time with ARM64 by sending SPEC bitcode files through llc.
No measurable change.

Fixes <rdar://problem/16031651>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@208640 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-12 23:00:03 +00:00
..
Analysis use nullptr instead of NULL 2014-05-12 20:11:01 +00:00
AsmParser Revert "[ms-cxxabi] Add a new calling convention that swaps 'this' and 'sret'" 2014-05-09 22:56:42 +00:00
Bitcode IR: Don't allow non-default visibility on local linkage 2014-05-07 22:57:20 +00:00
CodeGen [DAGCombiner] Split up an indexed load if only the base pointer value is live 2014-05-12 23:00:03 +00:00
DebugInfo [DWARF parser] Cleanup code in DWARFDebugLine. 2014-04-30 00:09:19 +00:00
ExecutionEngine [RuntimeDyld] Add support for MachO __jump_table and __pointers sections, and 2014-05-12 21:39:59 +00:00
IR Revert "[ms-cxxabi] Add a new calling convention that swaps 'this' and 'sret'" 2014-05-09 22:56:42 +00:00
IRReader [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-15 06:32:26 +00:00
LineEditor
Linker Delete trailing whitespace. 2014-05-09 14:39:25 +00:00
LTO Move EmitDwarfAdvanceLineAddr and EmitDwarfAdvanceFrameAddr to the obj streamer. 2014-05-12 14:43:25 +00:00
MC Move EmitDwarfAdvanceLineAddr and EmitDwarfAdvanceFrameAddr to the obj streamer. 2014-05-12 14:43:25 +00:00
Object [RuntimeDyld] Add support for MachO __jump_table and __pointers sections, and 2014-05-12 21:39:59 +00:00
Option Protect the ArgList dtor 2014-04-20 23:59:00 +00:00
ProfileData Fixing a cast-qual warning. getBufferStart() and getBufferEnd() both return a const char *, so casting to non-const was triggering a warning (even though the assignment and usage was always const anyway). 2014-05-01 17:16:24 +00:00
Support MemoryBuffer: don't force mmap when stat fails 2014-05-09 08:57:32 +00:00
TableGen Use a vector of unique_ptrs to fix a memory leak introduced in r208179. 2014-05-08 09:29:28 +00:00
Target Try to fix an SDAG dependence issue with sret 2014-05-12 22:01:27 +00:00
Transforms Fix type of shuffle obtained from reordering with binary operation 2014-05-12 10:11:27 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile