llvm/lib/IR
Chandler Carruth a1a0cf0a7b [IR] Add an iterator and range accessor for the PHI nodes of a basic
block.

This allows writing much more natural and readable range based for loops
directly over the PHI nodes. It also takes advantage of the same tricks
for terminating the sequence as the hand coded versions.

I've replaced one example of this mostly to showcase the difference and
I've added a unit test to make sure the facilities really work the way
they're intended. I want to use this inside of SimpleLoopUnswitch but it
seems generally nice.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303964 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-26 03:10:00 +00:00
..
AsmWriter.cpp [IR] Allow attributes with global variables 2017-05-11 12:28:08 +00:00
AttributeImpl.h [IR] Switch AttributeList to use an array for O(1) access 2017-05-23 17:01:48 +00:00
Attributes.cpp Silence MSVC warning about unsigned integer overflow, which has defined behavior 2017-05-23 21:35:32 +00:00
AttributesCompatFunc.td
AutoUpgrade.cpp Added missing break. 2017-05-19 20:31:51 +00:00
BasicBlock.cpp [IR] Add an iterator and range accessor for the PHI nodes of a basic 2017-05-26 03:10:00 +00:00
CMakeLists.txt
Comdat.cpp
ConstantFold.cpp ConstantFold: Handle gep nonnull, undef as well 2017-05-08 17:37:33 +00:00
ConstantFold.h
ConstantRange.cpp [ConstantRange] Fix the early out in ConstantRange::multiply for positive numbers to really do what the comment says 2017-05-10 20:01:48 +00:00
Constants.cpp SimplifyLibCalls: Optimize wcslen 2017-05-19 22:37:09 +00:00
ConstantsContext.h [IR] De-virtualize ~Value to save a vptr 2017-05-18 17:24:10 +00:00
Core.cpp Prefer addAttr(Attribute::AttrKind) over the AttributeList overload 2017-04-19 17:28:52 +00:00
DataLayout.cpp [DataLayout] Add llvm_unreachable to the default of a nested switch statement that covers all values given to it by the outer switch. NFC 2017-05-22 19:28:36 +00:00
DebugInfo.cpp [IR] Fix some Clang-tidy modernize-use-using warnings; other minor fixes (NFC). 2017-05-05 22:30:37 +00:00
DebugInfoMetadata.cpp [codeview] Check for a DIExpression offset for local variables 2017-05-09 19:59:29 +00:00
DebugLoc.cpp Make it illegal for two Functions to point to the same DISubprogram 2017-05-09 19:47:37 +00:00
DiagnosticInfo.cpp IR: Give function GlobalValue::getRealLinkageName() a less misleading name: dropLLVMManglingEscape(). 2017-05-16 00:39:01 +00:00
DiagnosticPrinter.cpp
DIBuilder.cpp Remove line and file from DINamespace. 2017-04-28 22:25:46 +00:00
Dominators.cpp
Function.cpp [IR] De-virtualize ~Value to save a vptr 2017-05-18 17:24:10 +00:00
GCOV.cpp [gcov] Sort file info before printing it 2017-04-26 00:16:10 +00:00
Globals.cpp Add support for handling ifuncs to GlobalValue::getBaseObject 2017-05-15 18:28:29 +00:00
GVMaterializer.cpp
InlineAsm.cpp [IR] De-virtualize ~Value to save a vptr 2017-05-18 17:24:10 +00:00
Instruction.cpp [IR] De-virtualize ~Value to save a vptr 2017-05-18 17:24:10 +00:00
Instructions.cpp Commit AttributeList change that was supposed to be part of r303654 2017-05-23 17:03:28 +00:00
IntrinsicInst.cpp Add constrained intrinsics for some libm-equivalent operations 2017-05-25 21:31:00 +00:00
IRBuilder.cpp Fix vector pass-through value being unused in IRBuilder::CreateMaskedGather 2017-05-19 10:40:18 +00:00
IRPrintingPasses.cpp
LegacyPassManager.cpp [LTO] Print time-passes information at conclusion of LTO codegen 2017-05-16 09:43:21 +00:00
LLVMBuild.txt
LLVMContext.cpp
LLVMContextImpl.cpp [IR] De-virtualize ~Value to save a vptr 2017-05-18 17:24:10 +00:00
LLVMContextImpl.h [APInt] Give the value union a name so we can remove assumptions on VAL being the larger member 2017-05-03 15:46:24 +00:00
Mangler.cpp Move llvm::emitLinkerFlagsForGlobalCOFF() to Mangler. 2017-03-31 04:46:50 +00:00
MDBuilder.cpp
Metadata.cpp [Metadata] Fix typos in comments. NFC 2017-04-27 05:48:29 +00:00
MetadataImpl.h
Module.cpp Support for taking the max of module flags when linking, use for PIE/PIC 2017-05-23 00:08:00 +00:00
ModuleSummaryIndex.cpp Re-apply r302108, "IR: Use pointers instead of GUIDs to represent edges in the module summary. NFCI." 2017-05-04 18:03:25 +00:00
Operator.cpp
OptBisect.cpp
Pass.cpp
PassManager.cpp
PassRegistry.cpp [LegacyPassManager] Remove TargetMachine constructors 2017-05-18 17:21:13 +00:00
ProfileSummary.cpp
Statepoint.cpp
SymbolTableListTraitsImpl.h
Type.cpp [IR] Fix some Clang-tidy modernize-use-using warnings; other minor fixes (NFC). 2017-05-12 22:25:07 +00:00
TypeFinder.cpp
Use.cpp
User.cpp [IR] De-virtualize ~Value to save a vptr 2017-05-18 17:24:10 +00:00
Value.cpp [IR] De-virtualize ~Value to save a vptr 2017-05-18 17:24:10 +00:00
ValueSymbolTable.cpp
ValueTypes.cpp [MVT] add v1i1 MVT 2017-05-18 11:29:41 +00:00
Verifier.cpp Add constrained intrinsics for some libm-equivalent operations 2017-05-25 21:31:00 +00:00