llvm-project/llvm/lib/CodeGen/SelectionDAG
Craig Topper 1bf4bbc492 [LegalizeTypes][RISCV][WebAssembly] Expand ABS in PromoteIntRes_ABS if it will expand to sra+xor+sub later.
If we promote the ABS and then Expand in LegalizeDAG, then both the
sra and the xor will have their inputs sign extended. This generates
extra code on RISCV which lacks an i8 or i16 sign extend instructon.
If we expand during type legalization, then only the sra will get its
input sign extended. RISCV is able to combine this with the sra by
doing a shift left followed by an sra.

Reviewed By: RKSimon

Differential Revision: https://reviews.llvm.org/D121664
2022-03-15 08:27:39 -07:00
..
CMakeLists.txt
DAGCombiner.cpp [DAGCombiner][RISCV] Adjust (aext (and (trunc x), cst)) -> (and x, cst) to sext cst based on target preference 2022-03-15 08:26:47 -07:00
FastISel.cpp Cleanup includes: DebugInfo & CodeGen 2022-03-12 17:26:40 +01:00
FunctionLoweringInfo.cpp Cleanup includes: DebugInfo & CodeGen 2022-03-12 17:26:40 +01:00
InstrEmitter.cpp Cleanup includes: DebugInfo & CodeGen 2022-03-12 17:26:40 +01:00
InstrEmitter.h [DebugInfo][InstrRef][3/4] Produce DBG_INSTR_REFs for all variable locations 2021-07-06 18:31:38 +01:00
LegalizeDAG.cpp Cleanup includes: DebugInfo & CodeGen 2022-03-12 17:26:40 +01:00
LegalizeFloatTypes.cpp [LegalizeTypes][VP] Add splitting support for vp.select 2022-01-07 08:46:01 +00:00
LegalizeIntegerTypes.cpp [LegalizeTypes][RISCV][WebAssembly] Expand ABS in PromoteIntRes_ABS if it will expand to sra+xor+sub later. 2022-03-15 08:27:39 -07:00
LegalizeTypes.cpp Cleanup includes: DebugInfo & CodeGen 2022-03-12 17:26:40 +01:00
LegalizeTypes.h Cleanup includes: DebugInfo & CodeGen 2022-03-12 17:26:40 +01:00
LegalizeTypesGeneric.cpp [SelectionDAG][VP] Add splitting support for VP_MERGE 2022-01-25 10:33:23 +00:00
LegalizeVectorOps.cpp Cleanup includes: DebugInfo & CodeGen 2022-03-12 17:26:40 +01:00
LegalizeVectorTypes.cpp [LegalizeTypes][VP] Add widening and splitting support for VP_FMA. 2022-03-08 09:59:59 -08:00
ResourcePriorityQueue.cpp Cleanup includes: DebugInfo & CodeGen 2022-03-12 17:26:40 +01:00
SDNodeDbgValue.h Cleanup includes: DebugInfo & CodeGen 2022-03-12 17:26:40 +01:00
ScheduleDAGFast.cpp Cleanup includes: DebugInfo & CodeGen 2022-03-12 17:26:40 +01:00
ScheduleDAGRRList.cpp
ScheduleDAGSDNodes.cpp [CodeGen] Use default member initialization (NFC) 2022-01-30 12:32:51 -08:00
ScheduleDAGSDNodes.h [CodeGen] Use default member initialization (NFC) 2022-01-30 12:32:51 -08:00
ScheduleDAGVLIW.cpp Cleanup includes: DebugInfo & CodeGen 2022-03-12 17:26:40 +01:00
SelectionDAG.cpp Cleanup includes: DebugInfo & CodeGen 2022-03-12 17:26:40 +01:00
SelectionDAGAddressAnalysis.cpp [SelectionDAG] Replace error prone index check in BaseIndexOffset::computeAliasing 2021-10-05 12:15:55 +02:00
SelectionDAGBuilder.cpp Cleanup includes: DebugInfo & CodeGen 2022-03-12 17:26:40 +01:00
SelectionDAGBuilder.h [VP] Strided loads/stores 2022-03-10 18:46:54 +01:00
SelectionDAGDumper.cpp Cleanup includes: DebugInfo & CodeGen 2022-03-12 17:26:40 +01:00
SelectionDAGISel.cpp Cleanup includes: DebugInfo & CodeGen 2022-03-12 17:26:40 +01:00
SelectionDAGPrinter.cpp Cleanup includes: DebugInfo & CodeGen 2022-03-12 17:26:40 +01:00
SelectionDAGTargetInfo.cpp
StatepointLowering.cpp Cleanup includes: DebugInfo & CodeGen 2022-03-12 17:26:40 +01:00
StatepointLowering.h More precisely type code used for gc.relocate assertions [nfc] 2021-04-06 11:27:36 -07:00
TargetLowering.cpp Cleanup includes: DebugInfo & CodeGen 2022-03-12 17:26:40 +01:00