1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 03:53:04 +02:00
llvm-mirror/lib/CodeGen/SelectionDAG
Duncan P. N. Exon Smith bdb3b06958 ADT: Remove all ilist_iterator => pointer casts, NFC
Remove all ilist_iterator to pointer casts.  There were two reasons for
casts:

  - Checking for an uninitialized (i.e., null) iterator.  I added
    MachineInstrBundleIterator::isValid() to check for that case.

  - Comparing an iterator against the underlying pointer value while
    avoiding converting the pointer value to an iterator.  This is
    occasionally necessary in MachineInstrBundleIterator, since there is
    an assertion in the constructors that the underlying MachineInstr is
    not bundled (but we don't care about that if we're just checking for
    pointer equality).

To support the latter case, I rewrote the == and != operators for
ilist_iterator and MachineInstrBundleIterator.

  - The implicit constructors now use enable_if to exclude
    const-iterator => non-const-iterator conversions from overload
    resolution (previously it was a compiler error on instantiation, now
    it's SFINAE).

  - The == and != operators are now global (friends), and are not
    templated.

  - MachineInstrBundleIterator has overloads to compare against both
    const_pointer and const_reference.  This avoids the implicit
    conversions to MachineInstrBundleIterator that assert, instead just
    checking the address (and I added unit tests to confirm this).

Notably, the only remaining uses of ilist_iterator::getNodePtrUnchecked
are in ilist.h, and no code outside of ilist*.h directly relies on this
UB end-iterator-to-pointer conversion anymore.  It's still needed for
ilist_*sentinel_traits, but I'll clean that up soon.

llvm-svn: 278478
2016-08-12 05:05:36 +00:00
..
CMakeLists.txt
DAGCombiner.cpp Use the range variant of find instead of unpacking begin/end 2016-08-11 22:21:41 +00:00
FastISel.cpp ADT: Remove all ilist_iterator => pointer casts, NFC 2016-08-12 05:05:36 +00:00
FunctionLoweringInfo.cpp Use the range variant of find instead of unpacking begin/end 2016-08-11 22:21:41 +00:00
InstrEmitter.cpp CodeGen: Use MachineInstr& in TargetLowering, NFC 2016-06-30 22:52:52 +00:00
InstrEmitter.h Pass DebugLoc and SDLoc by const ref. 2016-06-12 15:39:02 +00:00
LegalizeDAG.cpp Disable shrinking of SNaN constants 2016-08-03 15:09:21 +00:00
LegalizeFloatTypes.cpp [X86] Accept SELECT op code for x86-64 fp128 type 2016-07-18 17:20:09 +00:00
LegalizeIntegerTypes.cpp DAG: avoid duplicated truncating for sign extended operand 2016-07-29 23:33:48 +00:00
LegalizeTypes.cpp [SelectionDAG] Get rid of bool parameters in SelectionDAG::getLoad, getStore, and friends. 2016-07-15 18:27:10 +00:00
LegalizeTypes.h fix documentation comments; NFC 2016-07-09 18:52:07 +00:00
LegalizeTypesGeneric.cpp [SelectionDAG] Get rid of bool parameters in SelectionDAG::getLoad, getStore, and friends. 2016-07-15 18:27:10 +00:00
LegalizeVectorOps.cpp [SelectionDAG] Get rid of bool parameters in SelectionDAG::getLoad, getStore, and friends. 2016-07-15 18:27:10 +00:00
LegalizeVectorTypes.cpp [SelectionDAG] Get rid of bool parameters in SelectionDAG::getLoad, getStore, and friends. 2016-07-15 18:27:10 +00:00
LLVMBuild.txt
ResourcePriorityQueue.cpp Use the range variant of find instead of unpacking begin/end 2016-08-11 22:21:41 +00:00
ScheduleDAGFast.cpp
ScheduleDAGRRList.cpp Use the range variant of find instead of unpacking begin/end 2016-08-11 22:21:41 +00:00
ScheduleDAGSDNodes.cpp SelectionDAG: Avoid implicit iterator conversions in ScheduleDAGSDNodes, NFC 2016-07-08 19:07:09 +00:00
ScheduleDAGSDNodes.h
ScheduleDAGVLIW.cpp
SDNodeDbgValue.h Apply clang-tidy's misc-move-constructor-init throughout LLVM. 2016-05-27 14:27:24 +00:00
SelectionDAG.cpp Use range algorithms instead of unpacking begin/end 2016-08-11 21:15:00 +00:00
SelectionDAGBuilder.cpp Use range algorithms instead of unpacking begin/end 2016-08-11 21:15:00 +00:00
SelectionDAGBuilder.h Recommitting r275284: add support to inline __builtin_mempcpy 2016-07-29 18:23:18 +00:00
SelectionDAGDumper.cpp Indent consistently. 2016-06-19 12:37:52 +00:00
SelectionDAGISel.cpp Use the range variant of find instead of unpacking begin/end 2016-08-11 22:21:41 +00:00
SelectionDAGPrinter.cpp
SelectionDAGTargetInfo.cpp
StatepointLowering.cpp MachineFunction: Return reference for getFrameInfo(); NFC 2016-07-28 18:40:00 +00:00
StatepointLowering.h
TargetLowering.cpp [DAGCombine] Make sext(setcc) combine respect getBooleanContents 2016-08-01 19:39:49 +00:00