1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 19:12:56 +02:00
llvm-mirror/lib/CodeGen/SelectionDAG
Craig Topper fffdb84b35 [SelectionDAG] Teach SelectionDAGBuilder's getUniformBase for gather/scatter handling to accept GEPs with more than 2 operands if the middle operands are all 0s
Currently we can only get a uniform base from a simple GEP with 2 operands. This causes us to miss address folding opportunities for simple global array accesses as the test case shows.

This patch adds support for larger GEPs if the other indices are 0 since those don't require any additional computations to be inserted.

We may also want to handle constant splats of zero here, but I'm leaving that for future work when I have a real world example.

Differential Revision: https://reviews.llvm.org/D39911

llvm-svn: 317947
2017-11-10 22:50:50 +00:00
..
CMakeLists.txt Remove trailing whitespace to trigger re-cmaking 2017-10-02 21:54:38 +00:00
DAGCombiner.cpp [DAGcombine] Do not replace truncate node by itself when doing constant folding, this trigger needless extra rounds of combine for nothing. NFC 2017-11-10 20:59:53 +00:00
FastISel.cpp Add an @llvm.sideeffect intrinsic 2017-11-08 21:59:51 +00:00
FunctionLoweringInfo.cpp Target/TargetInstrInfo.h -> CodeGen/TargetInstrInfo.h to match layering 2017-11-08 01:01:31 +00:00
InstrEmitter.cpp Target/TargetInstrInfo.h -> CodeGen/TargetInstrInfo.h to match layering 2017-11-08 01:01:31 +00:00
InstrEmitter.h
LegalizeDAG.cpp Move TargetFrameLowering.h to CodeGen where it's implemented 2017-11-03 22:32:11 +00:00
LegalizeFloatTypes.cpp [legalize-types] Clean up softening machinery. 2017-07-04 01:08:55 +00:00
LegalizeIntegerTypes.cpp ISel type legalizer: debug messages. NFC. 2017-10-16 14:07:30 +00:00
LegalizeTypes.cpp Preserve debug info when DAG-combinging (zext (truncate x)) -> (and x, mask). 2017-11-09 19:50:20 +00:00
LegalizeTypes.h Don't crash when we see unallocatable registers in clobbers 2017-10-23 20:46:36 +00:00
LegalizeTypesGeneric.cpp [legalize-types] Clean up softening machinery. 2017-07-04 01:08:55 +00:00
LegalizeVectorOps.cpp [CodeGen] Fix some Clang-tidy modernize-use-bool-literals and Include What You Use warnings; other minor fixes (NFC). 2017-09-21 23:20:16 +00:00
LegalizeVectorTypes.cpp [X86] Fix bug in legalize vector types - Split large loads 2017-11-02 13:07:06 +00:00
LLVMBuild.txt
ResourcePriorityQueue.cpp
ScheduleDAGFast.cpp Target/TargetInstrInfo.h -> CodeGen/TargetInstrInfo.h to match layering 2017-11-08 01:01:31 +00:00
ScheduleDAGRRList.cpp Target/TargetInstrInfo.h -> CodeGen/TargetInstrInfo.h to match layering 2017-11-08 01:01:31 +00:00
ScheduleDAGSDNodes.cpp Target/TargetInstrInfo.h -> CodeGen/TargetInstrInfo.h to match layering 2017-11-08 01:01:31 +00:00
ScheduleDAGSDNodes.h
ScheduleDAGVLIW.cpp Target/TargetInstrInfo.h -> CodeGen/TargetInstrInfo.h to match layering 2017-11-08 01:01:31 +00:00
SDNodeDbgValue.h Doxygenify comments. 2017-10-24 17:23:40 +00:00
SelectionDAG.cpp Preserve debug info when DAG-combinging (zext (truncate x)) -> (and x, mask). 2017-11-09 19:50:20 +00:00
SelectionDAGAddressAnalysis.cpp [CodeGen] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-09-13 21:15:20 +00:00
SelectionDAGBuilder.cpp [SelectionDAG] Teach SelectionDAGBuilder's getUniformBase for gather/scatter handling to accept GEPs with more than 2 operands if the middle operands are all 0s 2017-11-10 22:50:50 +00:00
SelectionDAGBuilder.h [CodeGen] Fix some Clang-tidy modernize-use-default-member-init and Include What You Use warnings; other minor fixes (NFC). 2017-09-27 23:26:01 +00:00
SelectionDAGDumper.cpp Target/TargetInstrInfo.h -> CodeGen/TargetInstrInfo.h to match layering 2017-11-08 01:01:31 +00:00
SelectionDAGISel.cpp Target/TargetInstrInfo.h -> CodeGen/TargetInstrInfo.h to match layering 2017-11-08 01:01:31 +00:00
SelectionDAGPrinter.cpp
SelectionDAGTargetInfo.cpp [CodeGen] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-09-13 21:15:20 +00:00
StatepointLowering.cpp [CodeGen] Fix some Clang-tidy modernize-use-default-member-init and Include What You Use warnings; other minor fixes (NFC). 2017-09-27 23:26:01 +00:00
StatepointLowering.h [CodeGen] Fix some Clang-tidy modernize-use-default-member-init and Include What You Use warnings; other minor fixes (NFC). 2017-09-27 23:26:01 +00:00
TargetLowering.cpp DAG: Add computeKnownBitsForFrameIndex 2017-11-08 08:52:31 +00:00