1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
llvm-mirror/lib/CodeGen/SelectionDAG
Simon Pilgrim 91218fd943 [DAGCombine] Allow vector constant folding of any value type before type legalization
The patch comes in 2 parts:

1 - it makes use of the SelectionDAG::NewNodesMustHaveLegalTypes flag to tell when it can safely constant fold illegal types.

2 - it correctly resets SelectionDAG::NewNodesMustHaveLegalTypes at the start of each call to SelectionDAGISel::CodeGenAndEmitDAG so all the pre-legalization stages can make use of it - not just the first basic block that gets handled.

Fix for PR30760

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

llvm-svn: 294749
2017-02-10 14:37:25 +00:00
..
CMakeLists.txt
DAGCombiner.cpp [DAGCombiner] Support non-zero offset in load combine 2017-02-09 12:06:01 +00:00
FastISel.cpp [Analysis] Add LibFunc_ prefix to enums in TargetLibraryInfo. (NFC) 2017-01-23 23:16:46 +00:00
FunctionLoweringInfo.cpp Simplify FunctionLoweringInfo.cpp with range for loops 2016-12-30 00:21:38 +00:00
InstrEmitter.cpp [SelectionDAG] In InstrEmitter, handle EXTRACT_SUBREG of a physical register. 2017-02-05 18:28:14 +00:00
InstrEmitter.h
LegalizeDAG.cpp Use SelectionDAG::getBuildVector helper function where possible. NFCI. 2017-01-30 18:53:45 +00:00
LegalizeFloatTypes.cpp [legalizetypes] Push fp16 -> fp32 extension node to worklist. 2017-02-01 13:01:33 +00:00
LegalizeIntegerTypes.cpp Remove unused CONVERT_RNDSAT intrinsics 2017-01-10 22:38:02 +00:00
LegalizeTypes.cpp [legalizetypes] Push fp16 -> fp32 extension node to worklist. 2017-02-01 13:01:33 +00:00
LegalizeTypes.h [legalizetypes] Push fp16 -> fp32 extension node to worklist. 2017-02-01 13:01:33 +00:00
LegalizeTypesGeneric.cpp
LegalizeVectorOps.cpp Use SelectionDAG::getBuildVector/getSplatBuildVector helper functions where possible. NFCI. 2017-01-30 18:20:42 +00:00
LegalizeVectorTypes.cpp Use SelectionDAG::getBuildVector helper function where possible. NFCI. 2017-01-30 18:53:45 +00:00
LLVMBuild.txt
ResourcePriorityQueue.cpp Add iterator_range<regclass_iterator> to {Target,MC}RegisterInfo, NFC 2017-01-25 19:29:04 +00:00
ScheduleDAGFast.cpp
ScheduleDAGRRList.cpp Cleanup dump() functions. 2017-01-28 02:02:38 +00:00
ScheduleDAGSDNodes.cpp Cleanup dump() functions. 2017-01-28 02:02:38 +00:00
ScheduleDAGSDNodes.h [Target] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-01-11 01:45:03 +00:00
ScheduleDAGVLIW.cpp
SDNodeDbgValue.h
SelectionDAG.cpp [DAGCombine] Allow vector constant folding of any value type before type legalization 2017-02-10 14:37:25 +00:00
SelectionDAGBuilder.cpp [SelectionDAG] Fix bugs in inverted condition splitting code. 2017-02-09 18:28:17 +00:00
SelectionDAGBuilder.h Add intrinsics for constrained floating point operations 2017-01-26 23:27:59 +00:00
SelectionDAGDumper.cpp Cleanup dump() functions. 2017-01-28 02:02:38 +00:00
SelectionDAGISel.cpp [DAGCombine] Allow vector constant folding of any value type before type legalization 2017-02-10 14:37:25 +00:00
SelectionDAGPrinter.cpp
SelectionDAGTargetInfo.cpp
StatepointLowering.cpp
StatepointLowering.h
TargetLowering.cpp [TargetLowering] fix formatting and comments for ShrinkDemandedConstant; NFC 2017-02-07 18:04:26 +00:00