llvm-mirror/lib
alex-t c025a25bff [AMDGPU] SILowerControlFlow::optimizeEndCF should remove empty basic block
optimizeEndCF removes EXEC restoring instruction case this instruction is the only one except the branch to the single successor and that successor contains EXEC mask restoring instruction that was lowered from END_CF belonging to IF_ELSE.
As a result of such optimization we get the basic block with the only one instruction that is a branch to the single successor.
In case the control flow can reach such an empty block from S_CBRANCH_EXEZ/EXECNZ it might happen that spill/reload instructions that were inserted later by register allocator are placed under exec == 0 condition and never execute.
Removing empty block solves the problem.

This change require further work to re-implement LIS updates. Recently, LIS is always nullptr in this pass. To enable it we need another patch to fix many places across the codegen.

Reviewed By: rampitec

Differential Revision: https://reviews.llvm.org/D86634
2020-09-07 19:37:27 +03:00
..
Analysis [KnownBits] Implement accurate unsigned and signed max and min 2020-09-07 09:09:01 +01:00
AsmParser [DebugInfo][flang]Added support for representing Fortran assumed length strings 2020-08-22 10:13:40 +05:30
BinaryFormat [DebugInfo] Allow GNU macro extension to be read 2020-08-11 13:30:52 +02:00
Bitcode Set alignment of .llvmbc and .llvmcmd to 1 2020-08-29 18:27:34 -07:00
Bitstream [Bitstream] Use alignTo to make code more readable. NFC 2020-09-01 11:06:45 -07:00
CodeGen Reduce the number of memory allocations when displaying 2020-09-07 17:04:00 +01:00
DebugInfo [llvm-dwarfdump] Warn user when it encounters no null terminated strings. 2020-09-03 08:49:57 +08:00
Demangle [NFC] Use std::free instead of ::free 2020-07-20 16:19:08 -04:00
DWARFLinker [Clang] Restore replace_path_prefix instead of startswith 2020-05-13 13:49:14 -04:00
ExecutionEngine [ORC] Fix some bugs in TPCDynamicLibrarySearchGenerator, use in llvm-jitlink. 2020-09-04 13:23:52 -07:00
Extensions Update compiler extension integration into the build system 2020-04-24 09:40:14 +02:00
FileCheck Reland [FileCheck] Move FileCheck implementation out of LLVMSupport into its own library 2020-09-01 14:59:28 +02:00
Frontend [OpenMP][OMPBuilder] Adding support for omp single 2020-08-16 01:15:16 -04:00
Fuzzer
FuzzMutate [NewPM][LSR] Rename strength-reduce -> loop-reduce 2020-07-02 11:15:29 -07:00
InterfaceStub Remove unnecessary HEADER_DIRS in lib/InterfaceStub/CMakeLists.txt 2020-08-14 11:22:50 -07:00
IR [X86] Replace UpgradeX86AddSubSatIntrinsics with UpgradeX86BinaryIntrinsics generic helper. NFCI. 2020-09-07 15:57:18 +01:00
IRReader Infer alignment of unmarked loads in IR/bitcode parsing. 2020-05-14 13:03:50 -07:00
LineEditor
Linker [ThinLTO] Fix a metadata lost issue with DICompileUnit import. 2020-09-02 14:40:41 -07:00
LTO [ThinLTO][Legacy] Fix StringRef assertion from ThinLTO bots 2020-09-04 12:30:09 -07:00
MC [PowerPC] Fix missing TLS symbol type. 2020-09-03 05:57:04 -05:00
MCA [APInt] New member function setBitVal 2020-09-02 21:40:31 +01:00
Object [ELF] Add a new e_machine value EM_CSKY and add some CSKY relocation types 2020-09-07 10:42:28 +08:00
ObjectYAML [DWARFYAML] Make the debug_addr section optional. 2020-09-07 16:17:18 +08:00
Option [Clang options] Optimize optionMatches() runtime by removing mallocs 2020-08-12 23:07:07 -07:00
Passes [NewPM][Lint] Port -lint to NewPM 2020-09-03 13:03:44 -07:00
ProfileData [SampleFDO] Enhance profile remapping support for searching inline instance 2020-08-26 11:07:35 -07:00
Remarks BitstreamRemarkParser.h - remove unnecessary includes. NFCI. 2020-08-06 13:17:53 +01:00
Support [KnownBits] Implement accurate unsigned and signed max and min 2020-09-07 09:09:01 +01:00
TableGen Replace TableGen range piece punctuator with '...' 2020-08-21 23:33:57 +02:00
Target [AMDGPU] SILowerControlFlow::optimizeEndCF should remove empty basic block 2020-09-07 19:37:27 +03:00
Testing [cmake] Make gtest include directories a part of the library interface 2020-08-27 15:35:57 +02:00
TextAPI [TextAPI] update DriverKit string value 2020-08-15 06:44:30 -07:00
ToolDrivers [llvm-lib] Support adding short import library objects with llvm-lib 2020-07-24 22:15:08 +03:00
Transforms [InstCombine] erase instructions leading up to unreachable 2020-09-07 10:44:08 -04:00
WindowsManifest
XRay [xray] Add llvm-xray extract support for 32 bit ARM 2020-05-28 18:41:11 -04:00
CMakeLists.txt Reland [FileCheck] Move FileCheck implementation out of LLVMSupport into its own library 2020-09-01 14:59:28 +02:00
LLVMBuild.txt [elfabi] Move llvm-elfabi related code to InterfaceStub library 2020-08-13 11:51:44 -07:00