1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-25 22:12:57 +02:00
llvm-mirror/lib/CodeGen/SelectionDAG
Sanjay Patel 351e1900a0 [SelectionDAG] change getConstant() to use the input SDLoc when building splat vectors
The code change is simple enough: instead of attaching an anonymous SDLoc to splatted
vector constants, use the scalar constant's existing SDLoc since that is what is passed 
into getConstant() as a param. But this changes instruction scheduling, so I'll explain
why that happens.

The motivation for this patch starts near:
http://reviews.llvm.org/rL258833
...x86's getZeroVector() could be similarly cleaned up and I thought it would be 'NFC'.
But when I made that change locally, several x86 codegen tests wiggled.

It turns out that the lack of SDLoc consistency in getConstant() changes the way 
ScheduleDAGRRList behaves. This is because the SDLoc contains 'IROrder' and some DAG
scheduler algorithms use IROrder for tie-breaking.

Differential Revision: http://reviews.llvm.org/D16972

llvm-svn: 260582
2016-02-11 20:21:24 +00:00
..
CMakeLists.txt Rename TargetSelectionDAGInfo into SelectionDAGTargetInfo and move it to CodeGen/ 2016-01-27 16:32:26 +00:00
DAGCombiner.cpp [CodeGen] Prefer "if (SDValue R = ...)" to "if (R.getNode())". NFCI. 2016-02-09 22:54:12 +00:00
FastISel.cpp [NFC] Replace several manual GEP loops with gep_type_iterator. 2016-01-20 00:26:52 +00:00
FunctionLoweringInfo.cpp Undo spurious change made in r256965 2016-01-07 04:31:35 +00:00
InstrEmitter.cpp [X86] Part 1 to fix x86-64 fp128 calling convention. 2015-12-03 22:02:40 +00:00
InstrEmitter.h
LegalizeDAG.cpp [CodeGen] Prefer "if (SDValue R = ...)" to "if (R.getNode())". NFCI. 2016-02-09 22:54:12 +00:00
LegalizeFloatTypes.cpp Do not try to use i8 and i16 versions of FP_TO_U/SINT soft float library calls 2015-12-15 12:55:50 +00:00
LegalizeIntegerTypes.cpp [X86] Don't transform X << 1 to X + X during type legalization 2016-01-28 18:20:05 +00:00
LegalizeTypes.cpp Type legalizer for masked gather and scatter intrinsics. 2015-12-15 08:40:41 +00:00
LegalizeTypes.h SelectionDAG: Cleanup integer bin op promotion functions. 2015-12-19 17:18:43 +00:00
LegalizeTypesGeneric.cpp [X86] Part 1 to fix x86-64 fp128 calling convention. 2015-12-03 22:02:40 +00:00
LegalizeVectorOps.cpp [CodeGen] Prefer "if (SDValue R = ...)" to "if (R.getNode())". NFCI. 2016-02-09 22:54:12 +00:00
LegalizeVectorTypes.cpp Type legalizer for masked gather and scatter intrinsics. 2015-12-15 08:40:41 +00:00
LLVMBuild.txt
ResourcePriorityQueue.cpp
ScheduleDAGFast.cpp Replace uint16_t with the MCPhysReg typedef in many places. A lot of physical register arrays already use this typedef. 2015-12-05 07:13:35 +00:00
ScheduleDAGRRList.cpp rangify; NFCI 2016-02-03 22:44:14 +00:00
ScheduleDAGSDNodes.cpp Avoid overly large SmallPtrSet/SmallSet 2016-01-30 01:24:31 +00:00
ScheduleDAGSDNodes.h
ScheduleDAGVLIW.cpp
SDNodeDbgValue.h
SelectionDAG.cpp [SelectionDAG] change getConstant() to use the input SDLoc when building splat vectors 2016-02-11 20:21:24 +00:00
SelectionDAGBuilder.cpp [CodeGen] Prefer "if (SDValue R = ...)" to "if (R.getNode())". NFCI. 2016-02-09 22:54:12 +00:00
SelectionDAGBuilder.h SelectionDAG: Lower some range metadata to AssertZext 2016-02-08 16:28:19 +00:00
SelectionDAGDumper.cpp Avoid overly large SmallPtrSet/SmallSet 2016-01-30 01:24:31 +00:00
SelectionDAGISel.cpp Fix Clang-tidy readability-redundant-control-flow warnings; other minor fixes. 2016-02-02 18:20:45 +00:00
SelectionDAGPrinter.cpp
SelectionDAGTargetInfo.cpp Rename TargetSelectionDAGInfo into SelectionDAGTargetInfo and move it to CodeGen/ 2016-01-27 16:32:26 +00:00
StatepointLowering.cpp [StatepointLower] Use None instead of Optional<int>() 2016-02-05 23:40:04 +00:00
StatepointLowering.h
TargetLowering.cpp [Power PC] softening long double type 2016-02-04 14:43:50 +00:00