1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 11:33:24 +02:00
llvm-mirror/include/llvm/IR
Nicolai Haehnle bbd04b8c49 [DivergenceAnalysis] Treat PHI with incoming undef as constant
Summary:
If a PHI has an incoming undef, we can pretend that it is equal to one
non-undef, non-self incoming value.

This is particularly relevant in combination with the StructurizeCFG
pass, which introduces PHI nodes with undefs. Previously, this lead to
branch conditions that were uniform before StructurizeCFG to become
non-uniform afterwards, which confused the SIAnnotateControlFlow
pass.

This fixes a crash when Mesa radeonsi compiles a shader from
dEQP-GLES3.functional.shaders.switch.switch_in_for_loop_dynamic_vertex

Reviewers: arsenm, tstellarAMD, jingyue

Subscribers: llvm-commits

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

llvm-svn: 266347
2016-04-14 17:42:47 +00:00
..
Argument.h Swift Calling Convention: add swifterror attribute. 2016-04-01 21:41:15 +00:00
AssemblyAnnotationWriter.h Prune trailing whitespaces. 2015-09-22 11:19:03 +00:00
Attributes.h Add the allocsize attribute to LLVM. 2016-04-12 01:05:35 +00:00
Attributes.td Add the allocsize attribute to LLVM. 2016-04-12 01:05:35 +00:00
AutoUpgrade.h IR: Stop upgrading !llvm.loop attachments via MDString 2016-03-25 00:56:13 +00:00
BasicBlock.h Introduce @llvm.experimental.deoptimize 2016-03-11 19:08:34 +00:00
CallingConv.h AMDGPU: Add a shader calling convention 2016-04-06 19:40:20 +00:00
CallSite.h Introduce @llvm.experimental.deoptimize 2016-03-11 19:08:34 +00:00
CFG.h Move BB succ_iterator to be inside TerminatorInst. NFC. 2015-08-05 17:43:01 +00:00
CMakeLists.txt Revert r253810. The builds should be fine now. 2015-11-22 16:13:51 +00:00
Comdat.h AsmWriter: Print the argument names in declarations while debugging 2015-09-27 22:38:50 +00:00
Constant.h Simplify handleOperandChangeImpl() removing last argument (NFC) 2016-02-10 22:47:15 +00:00
ConstantFolder.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
ConstantRange.h [ConstantRange] Generalize makeGuaranteedNoWrapRegion to work on ranges 2016-03-03 18:31:16 +00:00
Constants.h IR: Introduce ConstantAggregate, NFC 2016-04-05 21:10:45 +00:00
DataLayout.h Have DataLayout::isLegalInteger() accept uint64_t 2016-03-18 23:19:29 +00:00
DebugInfo.h Support the Nodebug emission kind for DICompileUnits. 2016-04-08 22:43:03 +00:00
DebugInfoFlags.def Debug Info: Add basic support for external types references. 2015-07-15 17:01:41 +00:00
DebugInfoMetadata.h [DebugInfo] Optimize memory layout of DISubprogram. 2016-04-13 20:17:42 +00:00
DebugLoc.h IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
DerivedTypes.h don't repeat names in documentation comments; NFC 2016-02-25 15:55:28 +00:00
DiagnosticInfo.h [LoopVectorize] Don't unconditionally print vectorization diagnostics 2016-04-01 00:34:39 +00:00
DiagnosticPrinter.h Fix -Wextra-semi warnings. 2015-07-22 20:46:11 +00:00
DIBuilder.h Support the Nodebug emission kind for DICompileUnits. 2016-04-08 22:43:03 +00:00
Dominators.h [PM] Make the AnalysisManager parameter to run methods a reference. 2016-03-11 11:05:24 +00:00
Function.h IRMover: Steal arguments when moving functions, NFC 2016-04-06 06:38:15 +00:00
GetElementPtrTypeIterator.h [opaque pointer types] [NFC] gep_type_{begin,end} now take source element type and address space. 2016-01-22 01:33:43 +00:00
GlobalAlias.h [IFUNC] Introduce GlobalIndirectSymbol as a base class for alias and ifunc 2016-03-31 14:16:21 +00:00
GlobalIFunc.h [GCC] Attribute ifunc support in llvm 2016-04-07 12:32:19 +00:00
GlobalIndirectSymbol.h [GCC] Attribute ifunc support in llvm 2016-04-07 12:32:19 +00:00
GlobalObject.h [opaque pointer types] Add an explicit value type to GlobalObject 2015-09-14 21:47:27 +00:00
GlobalValue.h Don't IPO over functions that can be de-refined 2016-04-08 00:48:30 +00:00
GlobalVariable.h Don't IPO over functions that can be de-refined 2016-04-08 00:48:30 +00:00
GVMaterializer.h [ThinLTO] Remove post-pass metadata linking support 2016-03-29 18:24:19 +00:00
InlineAsm.h Prune trailing whitespaces. 2015-09-22 11:19:03 +00:00
InstIterator.h IR: Create SymbolTableList wrapper around iplist, NFC 2015-10-07 20:05:10 +00:00
InstrTypes.h Add a hasOperandBundlesOtherThan helper, and use it; NFC 2016-03-22 17:51:25 +00:00
Instruction.def [IR] Remove terminatepad 2015-12-14 18:34:23 +00:00
Instruction.h fix documentation comments; NFC 2016-03-12 20:44:30 +00:00
Instructions.h [DivergenceAnalysis] Treat PHI with incoming undef as constant 2016-04-14 17:42:47 +00:00
InstVisitor.h [IR] Remove terminatepad 2015-12-14 18:34:23 +00:00
IntrinsicInst.h IR: Add DbgInfoIntrinsic::getVariableLocation 2016-03-29 18:56:03 +00:00
Intrinsics.h Handle more edge cases in intrinsic name binary search 2016-01-26 22:33:19 +00:00
Intrinsics.td Revert "Support arbitrary addrspace pointers in masked load/store intrinsics" 2016-04-14 08:47:17 +00:00
IntrinsicsAArch64.td SelectionDAG: Make Properties a field of SDPatternOperator 2016-02-10 18:40:04 +00:00
IntrinsicsAMDGPU.td AMDGPU: add llvm.amdgcn.buffer.load/store intrinsics 2016-04-12 21:18:10 +00:00
IntrinsicsARM.td SelectionDAG: Make Properties a field of SDPatternOperator 2016-02-10 18:40:04 +00:00
IntrinsicsBPF.td [bpf] add support for bpf pseudo instruction 2015-03-27 18:51:42 +00:00
IntrinsicsHexagon.td [Hexagon] Hexagon V60 HVX intrinsic defintions 2015-11-26 16:54:33 +00:00
IntrinsicsMips.td
IntrinsicsNVVM.td [NVVM] Remove noduplicate attribute from synchronizing intrinsics. 2016-03-22 22:08:01 +00:00
IntrinsicsPowerPC.td Fix for PR 26193 2016-02-05 14:50:29 +00:00
IntrinsicsSystemZ.td [SystemZ] Add vector intrinsics 2015-05-05 19:31:09 +00:00
IntrinsicsWebAssembly.td [WebAssembly] Change int_wasm_memory_size from IntrNoMem to IntrReadMem. 2015-11-14 23:02:31 +00:00
IntrinsicsX86.td Removed trailing whitespace 2016-03-19 02:05:33 +00:00
IntrinsicsXCore.td
IRBuilder.h Revert "Support arbitrary addrspace pointers in masked load/store intrinsics" 2016-04-14 08:47:17 +00:00
IRPrintingPasses.h IR: Extract a function 'printLLVMNameWithoutPrefix' from 'PrintLLVMName'. NFC. 2015-07-21 16:50:35 +00:00
LegacyPassManager.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
LegacyPassManagers.h [PassManager] Ensure destructors of cached AnalysisUsage objects are run 2015-12-04 23:48:19 +00:00
LegacyPassNameParser.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
LLVMContext.h Rename Context::discardValueNames() to shouldDiscardValueNames() (NFC) 2016-04-02 03:46:17 +00:00
Mangler.h [ptr-traits] Add one more #include necessary to do strict alignment 2015-12-30 03:56:17 +00:00
MDBuilder.h add unpredictable metadata type for control flow 2015-09-02 19:06:43 +00:00
Metadata.def Macro debug info support in LLVM IR 2015-12-10 12:56:35 +00:00
Metadata.h [IR] Optimize memory usage of Metadata on MSVC 2016-04-13 22:46:06 +00:00
Module.h Support the Nodebug emission kind for DICompileUnits. 2016-04-08 22:43:03 +00:00
ModuleSlotTracker.h IR: Expose the method 'getLocalSlot' in the module slot tracker. 2015-07-27 22:31:04 +00:00
ModuleSummaryIndex.h Revert "Make aliases explicit in the summary" 2016-04-13 17:20:07 +00:00
NoFolder.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
OperandTraits.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Operator.h [opaque pointer types] [NFC] GEP: replace get(Pointer)ElementType uses with get{Source,Result}ElementType. 2016-01-19 17:28:00 +00:00
PassManager.h [PM] Make the AnalysisManager parameter to run methods a reference. 2016-03-11 11:05:24 +00:00
PassManagerInternal.h [PM] Make the AnalysisManager parameter to run methods a reference. 2016-03-11 11:05:24 +00:00
PatternMatch.h Revert "[PatternMatch] Switch to use ValueTracking::matchSelectPattern" 2015-11-04 08:36:53 +00:00
PredIteratorCache.h Revamp PredIteratorCache interface to be cleaner. 2015-04-21 21:11:50 +00:00
Statepoint.h Introduce an GCRelocateInst class [NFC] 2016-04-12 18:05:10 +00:00
SymbolTableListTraits.h [GCC] Attribute ifunc support in llvm 2016-04-07 12:32:19 +00:00
TrackingMDRef.h [ptr-traits] Merge the MetadataTracking helpers into the Metadata 2015-12-29 02:14:50 +00:00
Type.h [IR] Provide an API to skip the details of a structured type when printed. 2016-03-07 22:32:42 +00:00
TypeBuilder.h Update comment. NFC. 2015-04-21 21:15:35 +00:00
TypeFinder.h Make more headers self-contained. 2016-01-27 18:03:37 +00:00
Use.h [IR] Move definitions of users of Use::set to Value.h 2016-01-29 12:47:05 +00:00
UseListOrder.h Fix Clang-tidy modernize-use-nullptr warnings in examples and include directories; other minor cleanups. 2015-09-29 18:02:48 +00:00
User.h Re-reapply "[IR] Move optional data in llvm::Function into a hungoff uselist" 2015-12-19 08:52:49 +00:00
Value.def [GCC] Attribute ifunc support in llvm 2016-04-07 12:32:19 +00:00
Value.h [GCC] Attribute ifunc support in llvm 2016-04-07 12:32:19 +00:00
ValueHandle.h Update/correct comment. 2015-08-03 22:33:50 +00:00
ValueMap.h ValueMapper: Don't memoize metadata when RF_NoModuleLevelChanges 2016-04-08 18:49:36 +00:00
ValueSymbolTable.h [GCC] Attribute ifunc support in llvm 2016-04-07 12:32:19 +00:00
Verifier.h [PM] Rename the CRTP mixin base classes for the new pass manager to 2016-03-11 10:33:22 +00:00