llvm-project/llvm/lib
Christudasan Devadasan d7a05698ef [AMDGPU] Move LowerSwitch pass to CodeGenPrepare.
It is possible that LowerSwitch pass leaves certain blocks
unreachable from the entry. If not removed, these dead blocks
can cause undefined behavior in the subsequent passes.
It caused a crash in the AMDGPU backend after the instruction
selection when a PHI node has its incoming values coming from
these unreachable blocks.

In the AMDGPU pass flow, the last invocation of UnreachableBlockElim
precedes where LowerSwitch is currently placed and eventually
missed out on the opportunity to get these blocks eliminated.
This patch ensures that LowerSwitch pass get inserted earlier
to make use of the existing unreachable block elimination pass.

Reviewed By: sameerds, arsenm

Differential Revision: https://reviews.llvm.org/D83584
2020-07-11 16:33:38 +05:30
..
Analysis [BPI] Compile time improvement when erasing blocks (NFC) 2020-07-10 16:55:54 -07:00
AsmParser [LLVM] Accept `noundef` attribute in function definitions/calls 2020-07-08 19:02:04 +00:00
BinaryFormat AMDGPU: Remove .value_type from kernel metadata 2020-07-10 18:16:31 -04:00
Bitcode Temporarily revert "[NFC] Separate bitcode reading for FUNC_CODE_INST_CMPXCHG(_OLD)" 2020-07-10 15:21:00 -07:00
Bitstream [Bitcode] reserve in front of push_back loops. NFCI. 2020-05-01 15:52:53 +02:00
CodeGen Revert "Re-land [CodeView] Add full repro to LF_BUILDINFO record" 2020-07-10 19:46:16 -04:00
DWARFLinker [Clang] Restore replace_path_prefix instead of startswith 2020-05-13 13:49:14 -04:00
DebugInfo [PDB] Fix out-of-bounds acces when sorting GSI buckets 2020-07-10 10:55:27 -04:00
Demangle Give microsoftDemangle() an outparam for how many input bytes were consumed. 2020-05-20 16:17:31 -04:00
ExecutionEngine [ORC] Modify LazyCallThroughManager to support asynchronous resolution. 2020-07-08 21:13:55 -07:00
Extensions Update compiler extension integration into the build system 2020-04-24 09:40:14 +02:00
Frontend [gn build] (manually) merge 943660fd15 2020-07-11 06:44:28 -04:00
FuzzMutate [NewPM][LSR] Rename strength-reduce -> loop-reduce 2020-07-02 11:15:29 -07:00
Fuzzer
IR Reland [NFC] Derive from PassInfoMixin for no-op/printing passes 2020-07-10 12:51:28 -07:00
IRReader Infer alignment of unmarked loads in IR/bitcode parsing. 2020-05-14 13:03:50 -07:00
LTO Remove GlobalValue::getAlignment(). 2020-06-23 19:13:42 -07:00
LineEditor
Linker [SVE] Eliminate calls to default-false VectorType::get() from Linker 2020-05-29 17:43:15 -07:00
MC [COFF] Add cg_profile directive and .llvm.call-graph-profile section 2020-07-10 17:07:30 -07:00
MCA [MCA][InstrBuilder] Correctly mark reserved resources in initializeUsedResources. 2020-05-10 19:25:54 +01:00
Object [WebAssembly] 64-bit memory limits 2020-07-06 12:40:45 -07:00
ObjectYAML [DWARFYAML] Use override instead of virtual for better safety. 2020-07-09 18:55:42 +08:00
Option
Passes Reland [NFC] Derive from PassInfoMixin for no-op/printing passes 2020-07-10 12:51:28 -07:00
ProfileData [NFC] Change getEntryForPercentile to be a static function in ProfileSummaryBuilder. 2020-07-09 16:38:19 -07:00
Remarks YAMLRemarkParser.cpp - remove duplicate RemarkParser.h include. NFC. 2020-06-08 13:59:05 +01:00
Support AMDGPU: Remove .value_type from kernel metadata 2020-07-10 18:16:31 -04:00
TableGen Fix ubsan error in tblgen with signed left shift 2020-06-16 11:15:09 -07:00
Target [AMDGPU] Move LowerSwitch pass to CodeGenPrepare. 2020-07-11 16:33:38 +05:30
Testing
TextAPI [TextAPI/MachO] Fix style issues. NFC 2020-06-24 14:43:45 -07:00
ToolDrivers [COFF] Use Expected in COFFObjectFile creation 2020-05-08 14:22:28 -07:00
Transforms [TRE] allow TRE for non-capturing calls. 2020-07-11 14:01:48 +03:00
WindowsManifest
XRay [xray] Add llvm-xray extract support for 32 bit ARM 2020-05-28 18:41:11 -04:00
CMakeLists.txt Update compiler extension integration into the build system 2020-04-24 09:40:14 +02:00
LLVMBuild.txt Update compiler extension integration into the build system 2020-04-24 09:40:14 +02:00