llvm-project/llvm/lib/CodeGen/SelectionDAG
LemonBoy 6d103ca855 [SelectionDAG] Unify scalarizeVectorLoad and VectorLegalizer::ExpandLoad
The two code paths have the same goal, legalizing a load of a non-byte-sized vector by loading the "flattened" representation in memory, slicing off each single element and then building a vector out of those pieces.

The technique employed by `ExpandLoad`  is slightly more convoluted and produces slightly better codegen on ARM, AMDGPU and x86 but suffers from some bugs (D78480) and is wrong for BE machines.

Differential Revision: https://reviews.llvm.org/D79096
2020-05-02 15:18:10 -07:00
..
CMakeLists.txt [cmake] Explicitly mark libraries defined in lib/ as "Component Libraries" 2019-11-21 10:48:08 -08:00
DAGCombiner.cpp Revert rG8e05ac0a510c - "[DAGCombine] visitTRUNCATE - remove GetDemandedBits call" 2020-05-02 20:08:33 +01:00
FastISel.cpp [IR] Replace all uses of CallBase::getCalledValue() with getCalledOperand(). 2020-04-27 22:17:03 -07:00
FunctionLoweringInfo.cpp [IR] Replace all uses of CallBase::getCalledValue() with getCalledOperand(). 2020-04-27 22:17:03 -07:00
InstrEmitter.cpp InstrEmitter.h - reduce SelectionDAG.h include to SelectionDAGNodes.h include. 2020-04-19 11:52:31 +01:00
InstrEmitter.h InstrEmitter.h - reduce SelectionDAG.h include to SelectionDAGNodes.h include. 2020-04-19 11:52:31 +01:00
LLVMBuild.txt
LegalizeDAG.cpp [SelectionDAG] Fix usage of Align constructing MachineMemOperands. 2020-04-15 13:01:41 -07:00
LegalizeFloatTypes.cpp [CodeGen] Support freeze expand for ppc_fp128 2020-04-20 07:27:41 +00:00
LegalizeIntegerTypes.cpp [SelectionDAG] Fix usage of Align constructing MachineMemOperands. 2020-04-15 13:01:41 -07:00
LegalizeTypes.cpp reland: [DAG] Fix PR45049: LegalizeTypes crash 2020-04-12 09:52:17 -06:00
LegalizeTypes.h [CodeGen] Support freeze expand for ppc_fp128 2020-04-20 07:27:41 +00:00
LegalizeTypesGeneric.cpp [SelectionDAG] Fix usage of Align constructing MachineMemOperands. 2020-04-15 13:01:41 -07:00
LegalizeVectorOps.cpp [SelectionDAG] Unify scalarizeVectorLoad and VectorLegalizer::ExpandLoad 2020-05-02 15:18:10 -07:00
LegalizeVectorTypes.cpp [llvm] [CodeGen] Fixed vector halving bug for masked load 2020-04-23 15:12:44 -07:00
ResourcePriorityQueue.cpp
SDNodeDbgValue.h
ScheduleDAGFast.cpp DAG: Use Register 2020-04-08 13:44:31 -04:00
ScheduleDAGRRList.cpp [ScheduleDAG] When a node is cloned, add an edge between the nodes. 2019-10-04 19:51:40 +00:00
ScheduleDAGSDNodes.cpp Provide operand indices to adjustSchedDependency 2020-04-17 11:08:44 +01:00
ScheduleDAGSDNodes.h DAG: Use Register 2020-04-08 13:44:31 -04:00
ScheduleDAGVLIW.cpp Prune Analysis includes from SelectionDAG.h 2019-10-19 01:07:48 +00:00
SelectionDAG.cpp [CodeGen] Add support for inserting elements into scalable vectors 2020-04-30 11:14:04 +01:00
SelectionDAGAddressAnalysis.cpp Prune a LegacyDivergenceAnalysis and MachineLoopInfo include each 2019-10-19 01:31:09 +00:00
SelectionDAGBuilder.cpp [SelectionDAGBuilder] Use CallBase::isInlineAsm in a couple places. NFC 2020-04-27 23:00:44 -07:00
SelectionDAGBuilder.h SelectionDAGBuilder.h - remove unused includes + forward declarations. NFC. 2020-04-19 12:38:41 +01:00
SelectionDAGDumper.cpp [X86] Move combineLoopMAddPattern and combineLoopSADPattern to an IR pass before SelecitonDAG. 2020-03-26 14:10:20 -07:00
SelectionDAGISel.cpp DAG: Use Register 2020-04-08 13:44:31 -04:00
SelectionDAGPrinter.cpp Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
SelectionDAGTargetInfo.cpp
StatepointLowering.cpp ProfileSummaryInfo.h - remove unnecessary includes. NFC 2020-04-10 16:25:48 +01:00
StatepointLowering.h [FastISel] Fix crash for gc.relocate lowring 2019-04-05 05:41:08 +00:00
TargetLowering.cpp [SelectionDAG] Unify scalarizeVectorLoad and VectorLegalizer::ExpandLoad 2020-05-02 15:18:10 -07:00