1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-18 18:42:46 +02:00
llvm-mirror/lib/IR
Guozhi Wei 65f91cd8ed [DAE] Adjust param/arg attributes when changing parameter to undef
In DeadArgumentElimination pass, if a function's argument is never used, corresponding caller's parameter can be changed to undef. If the param/arg has attribute noundef or other related attributes, LLVM LangRef(https://llvm.org/docs/LangRef.html#parameter-attributes) says its behavior is undefined. SimplifyCFG(D97244) takes advantage of this behavior and does bad transformation on valid code.

To avoid this undefined behavior when change caller's parameter to undef, this patch removes noundef attribute and other attributes imply noundef on param/arg.

Differential Revision: https://reviews.llvm.org/D98899
2021-03-25 14:53:22 -07:00
..
AbstractCallSite.cpp
AsmWriter.cpp [DebugInfo] Add DIArgList MD to store multple values in DbgVariableIntrinsics 2021-03-05 17:02:24 +00:00
Assumptions.cpp
AttributeImpl.h [IR] Add vscale_range IR function attribute 2021-03-22 12:05:06 +00:00
Attributes.cpp [DAE] Adjust param/arg attributes when changing parameter to undef 2021-03-25 14:53:22 -07:00
AutoUpgrade.cpp [AArch64][SVE/NEON] Add support for FROUNDEVEN for both NEON and fixed length SVE 2021-03-17 11:41:22 +00:00
BasicBlock.cpp [IR] Use range-based for loops (NFC) 2021-02-27 10:09:25 -08:00
CMakeLists.txt [HIP] Support __managed__ attribute 2021-01-22 11:43:58 -05:00
Comdat.cpp
ConstantFold.cpp [ConstantFold] Handle icmp of global and null consistently 2021-03-08 17:18:01 +01:00
ConstantFold.h
ConstantRange.cpp [ConstantRange] Handle wrapping ranges in min/max (PR48643) 2021-02-20 22:52:09 +01:00
Constants.cpp Reapply [ConstantFold] Handle vectors in ConstantFoldLoadThroughBitcast() 2021-03-21 17:48:21 +01:00
ConstantsContext.h
Core.cpp Add type attributes to LLVM C API 2021-03-19 19:07:04 -04:00
DataLayout.cpp [IR] Allow scalable vectors in structs to support intrinsics returning multiple values. 2021-01-17 23:29:51 -08:00
DebugInfo.cpp Support !heapallocsite attachments in StripDebugInfo(). 2021-03-16 10:05:13 -07:00
DebugInfoMetadata.cpp Revert "[DebugInfo] Use variadic debug values to salvage BinOps and GEP instrs with non-const operands" 2021-03-11 14:48:01 +00:00
DebugLoc.cpp [IR] Delete unused ReplaceLast in DebugLoc::appendInlineAt 2021-01-08 23:28:22 -08:00
DiagnosticHandler.cpp
DiagnosticInfo.cpp [Diagnose] Unify MCContext and LLVMContext diagnosing 2021-03-01 15:58:37 -08:00
DiagnosticPrinter.cpp
DIBuilder.cpp
Dominators.cpp [gvn] Precisely propagate equalities to phi operands 2021-03-08 08:59:00 -08:00
FPEnv.cpp
Function.cpp [DAE] Adjust param/arg attributes when changing parameter to undef 2021-03-25 14:53:22 -07:00
Globals.cpp
GVMaterializer.cpp
InlineAsm.cpp
Instruction.cpp [IR] Move willReturn() to Instruction 2021-02-19 11:56:01 +01:00
Instructions.cpp [IR] Lift attribute handling for assume bundles into CallBase 2021-03-25 21:15:39 +01:00
IntrinsicInst.cpp Reapply "[DebugInfo] Handle multiple variable location operands in IR" 2021-03-17 16:45:25 +00:00
IRBuilder.cpp [IR][SVE] Add new llvm.experimental.stepvector intrinsic 2021-03-23 10:43:35 +00:00
IRPrintingPasses.cpp
LegacyPassManager.cpp [opt] Error if -debug-pass is specified alongside the new PM 2021-03-02 15:59:28 -08:00
LLVMContext.cpp [ObjC][ARC] Use operand bundle 'clang.arc.attachedcall' instead of 2021-03-04 11:22:30 -08:00
LLVMContextImpl.cpp [llvm] Construct SmallVector with iterator ranges (NFC) 2021-01-16 09:40:53 -08:00
LLVMContextImpl.h [DebugInfo] Add DIArgList MD to store multple values in DbgVariableIntrinsics 2021-03-05 17:02:24 +00:00
LLVMRemarkStreamer.cpp
Mangler.cpp [IR] Use range-based for loops (NFC) 2021-02-27 10:09:25 -08:00
MDBuilder.cpp
Metadata.cpp [DebugInfo] Add DIArgList MD to store multple values in DbgVariableIntrinsics 2021-03-05 17:02:24 +00:00
MetadataImpl.h
Module.cpp [NFC] Module::getInstructionCount() is const 2021-03-25 12:29:19 -07:00
ModuleSummaryIndex.cpp [IR] Use range-based for loops (NFC) 2021-03-01 23:40:33 -08:00
Operator.cpp Revert "[DebugInfo] Use variadic debug values to salvage BinOps and GEP instrs with non-const operands" 2021-03-11 14:48:01 +00:00
OptBisect.cpp
Pass.cpp [PM] Avoid duplicates in the Used/Preserved/Required sets 2021-01-20 13:55:18 +01:00
PassInstrumentation.cpp [NewPM] Don't error when there's an unrecognized pass name 2021-01-07 22:33:32 -08:00
PassManager.cpp
PassRegistry.cpp
PassTimingInfo.cpp
PrintPasses.cpp
ProfileSummary.cpp
PseudoProbe.cpp [CSSPGO] Deduplicating dangling pseudo probes. 2021-03-03 22:44:42 -08:00
ReplaceConstant.cpp [HIP] Fix managed variable linkage 2021-02-23 22:34:45 -05:00
SafepointIRVerifier.cpp [llvm] Use append_range (NFC) 2021-01-27 23:25:41 -08:00
Statepoint.cpp
StructuralHash.cpp
SymbolTableListTraitsImpl.h
Type.cpp [X86][AMX] Prevent transforming load pointer from <256 x i32>* to x86_amx*. 2021-03-14 09:24:56 +08:00
TypeFinder.cpp
Use.cpp
User.cpp Reapply "[DebugInfo] Handle multiple variable location operands in IR" 2021-03-17 16:45:25 +00:00
Value.cpp [deref] Handle byval/byref/sret/inalloc/preallocated arguments for deref-at-point semantics 2021-03-25 14:47:31 -07:00
ValueSymbolTable.cpp
Verifier.cpp Verify that MDNodes belong to the same context as the Module. 2021-03-24 12:38:05 -07:00