1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 19:42:54 +02:00
llvm-mirror/lib/CodeGen/SelectionDAG
Matt Arsenault 407c9d3378 Make MergeConsecutiveStores look at other stores on same chain
When combiner AA is enabled, look at stores on the same chain.
Non-aliasing stores are moved to the same chain so the existing
code fails because it expects to find an adajcent store on a consecutive
chain.

Because of how DAGCombiner tries these store combines,
MergeConsecutiveStores doesn't see the correct set of stores on the chain
when it visits the other stores. Each store individually has its chain
fixed before trying to merge consecutive stores, and then tries to merge
stores from that point before the other stores have been processed to
have their chains fixed. To fix this, attempt to use FindBetterChain
on any possibly neighboring stores in visitSTORE.

Suppose you have 4 32-bit stores that should be merged into 1 vector
store. One store would be visited first, fixing the chain. What happens is
because not all of the store chains have yet been fixed, 2 of the stores
are merged. The other 2 stores later have their chains fixed,
but because the other stores were already merged, they have different
memory types and merging the two different sized stores is not
supported and would be more difficult to handle.

llvm-svn: 246307
2015-08-28 17:31:28 +00:00
..
CMakeLists.txt
DAGCombiner.cpp Make MergeConsecutiveStores look at other stores on same chain 2015-08-28 17:31:28 +00:00
FastISel.cpp FastISel: Avoid adding a successor block twice for degenerate IR. 2015-08-26 20:46:49 +00:00
FunctionLoweringInfo.cpp [WinEH] Add some support for code generating catchpad 2015-08-27 23:27:47 +00:00
InstrEmitter.cpp Redirect DataLayout from TargetMachine to Module in SelectionDAG 2015-07-07 19:07:19 +00:00
InstrEmitter.h [SDAG] Give InstrEmitter hidden visibility 2015-07-01 14:55:10 +00:00
LegalizeDAG.cpp [CodeGen] Support (and default to) expanding READCYCLECOUNTER to 0. 2015-08-28 01:49:59 +00:00
LegalizeFloatTypes.cpp Make TargetLowering::getShiftAmountTy() taking DataLayout as an argument 2015-07-09 02:09:20 +00:00
LegalizeIntegerTypes.cpp [CodeGen] Support (and default to) expanding READCYCLECOUNTER to 0. 2015-08-28 01:49:59 +00:00
LegalizeTypes.cpp Use more foreach loops in SelectionDAG. NFC 2015-07-14 23:43:29 +00:00
LegalizeTypes.h [CodeGen] Support (and default to) expanding READCYCLECOUNTER to 0. 2015-08-28 01:49:59 +00:00
LegalizeTypesGeneric.cpp PseudoSourceValue: Replace global manager with a manager in a machine function. 2015-08-11 23:09:45 +00:00
LegalizeVectorOps.cpp Add new ISD nodes: ISD::FMINNAN and ISD::FMAXNAN 2015-08-11 09:13:05 +00:00
LegalizeVectorTypes.cpp Add new ISD nodes: ISD::FMINNAN and ISD::FMAXNAN 2015-08-11 09:13:05 +00:00
LLVMBuild.txt
Makefile
ResourcePriorityQueue.cpp Fix some comment typos. 2015-08-08 18:27:36 +00:00
ScheduleDAGFast.cpp Add allnodes() iterator range to SelectionDAG. NFC. 2015-07-14 22:10:54 +00:00
ScheduleDAGRRList.cpp Convert a bunch of loops to foreach. NFC. 2015-06-26 19:18:49 +00:00
ScheduleDAGSDNodes.cpp Add allnodes() iterator range to SelectionDAG. NFC. 2015-07-14 22:10:54 +00:00
ScheduleDAGSDNodes.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
ScheduleDAGVLIW.cpp
SDNodeDbgValue.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
SelectionDAG.cpp Make variable argument intrinsics behave correctly in a Win64 CC function. 2015-08-25 23:27:41 +00:00
SelectionDAGBuilder.cpp [WinEH] Add some support for code generating catchpad 2015-08-27 23:27:47 +00:00
SelectionDAGBuilder.h Assign weights to edges to jump table / bit test header when lowering switch statement. 2015-08-26 23:15:32 +00:00
SelectionDAGDumper.cpp [WinEH] Add some support for code generating catchpad 2015-08-27 23:27:47 +00:00
SelectionDAGISel.cpp [WinEH] Add some support for code generating catchpad 2015-08-27 23:27:47 +00:00
SelectionDAGPrinter.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
StatepointLowering.cpp PseudoSourceValue: Replace global manager with a manager in a machine function. 2015-08-11 23:09:45 +00:00
StatepointLowering.h
TargetLowering.cpp Pass function attributes instead of boolean in isIntDivCheap(). 2015-08-25 02:31:21 +00:00
TargetSelectionDAGInfo.cpp Remove getDataLayout() from TargetSelectionDAGInfo (had no users) 2015-07-09 02:10:08 +00:00