1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 19:12:56 +02:00
llvm-mirror/lib
Xun Li ab9fd44679 [CHR] Don't run ControlHeightReduction if any BB has address taken
This patch is to address https://bugs.llvm.org/show_bug.cgi?id=50610.
In computed goto pattern, there are usually a list of basic blocks that are all targets of indirectbr instruction, and each basic block also has address taken and stored in a variable.
CHR pass could potentially clone these basic blocks, which would generate a cloned version of the indirectbr and clonved version of all basic blocks in the list.
However these basic blocks will not have their addresses taken and stored anywhere. So latter SimplifyCFG pass will simply remove all tehse cloned basic blocks, resulting in incorrect code.
To fix this, when searching for scopes, we skip scopes that contains BBs with addresses taken.
Added a few test cases.

Reviewed By: aeubanks, wenlei, hoy

Differential Revision: https://reviews.llvm.org/D103867
2021-06-12 10:29:53 -07:00
..
Analysis A post-processing for BFI inference 2021-06-11 21:46:04 -07:00
AsmParser Fix some -Wunused-but-set-variable in -DLLVM_ENABLE_ASSERTIONS=off build 2021-06-04 23:34:43 -07:00
BinaryFormat MsgPackReader.cpp - add missing implicit MathExtras.h header dependency. NFCI. 2021-06-05 18:05:40 +01:00
Bitcode [OpaquePtr] Make atomicrmw work with opaque pointers 2021-05-25 20:16:21 -07:00
Bitstream
CodeGen Revert "[X86FixupLEAs] Transform the sequence LEA/SUB to SUB/SUB" 2021-06-12 11:41:38 +01:00
DebugInfo [ELF] getRelocatedSection: remove the check for ET_REL object file 2021-06-07 13:17:00 -07:00
Demangle [Demangle][Rust] Parse const backreferences 2021-06-08 10:01:50 +02:00
DWARFLinker [MC] Refactor MCObjectFileInfo initialization and allow targets to create MCObjectFileInfo 2021-05-23 14:15:23 -07:00
ExecutionEngine [JITLink][MachO] Handle muliple symbols at same offset when splitting C-strings. 2021-06-09 19:16:49 +10:00
Extensions
FileCheck
Frontend [OPENMP]Fix PR50129: omp cancel parallel not working as expected. 2021-06-04 08:24:55 -07:00
Fuzzer
FuzzMutate [FuzzMutate] Fix getWeight of InstDeleterIRStrategy 2021-06-08 11:14:33 -07:00
InterfaceStub
IR [NFC][OpaquePtr] Make getMemoryParamAllocType() compatible with opaque pointers 2021-06-11 16:01:23 -07:00
IRReader
LineEditor
Linker
LTO [LTO] Support new PM in ThinLTOCodeGenerator. 2021-06-09 10:05:14 +01:00
MC [ms] [llvm-ml] Warn on command-line redefinition 2021-06-10 14:20:21 -04:00
MCA [MCA][NFCI] Minor changes to InstrBuilder and Instruction. 2021-05-31 17:05:13 +01:00
Object [XCOFF][llvm-objdump] Dump the debug type in --section-headers option. 2021-06-10 07:08:23 +00:00
ObjectYAML [NFC][XCOFF] Replace structs FileHeader32/SectionHeader32 with constants. 2021-06-10 11:10:45 +00:00
Option
Passes Function Specialization Pass 2021-06-11 09:11:29 +01:00
ProfileData [SampleFDO] New hierarchical discriminator for FS SampleFDO (llvm-profdata part) 2021-06-04 11:22:06 -07:00
Remarks
Support Revert "Allow signposts to take advantage of deferred string substitution" 2021-06-12 12:08:25 +01:00
TableGen [TableGen] Eliminate dead code in ParseForeachDeclaration [NFC] 2021-06-10 10:34:44 -04:00
Target [X86] Add ISD::FREEZE and ISD::AssertAlign to the list of opcodes that don't guarantee upper 32 bits are zero. 2021-06-12 09:52:29 -07:00
Testing Fix for error "'Run' overrides a member function but is not marked 2021-06-11 06:56:00 -07:00
TextAPI Reland "[llvm] llvm-tapi-diff" 2021-06-09 21:17:34 -07:00
ToolDrivers
Transforms [CHR] Don't run ControlHeightReduction if any BB has address taken 2021-06-12 10:29:53 -07:00
WindowsManifest
XRay
CMakeLists.txt