1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 12:12:47 +01:00
llvm-mirror/lib
Dylan McKay 3d00c7399b [AVR] Insert unconditional branch when inserting MBBs between blocks with fallthrough
This updates the AVR Select8/Select16 expansion code so that, when
inserting the two basic blocks for true and false conditions, any
existing fallthrough on the previous block is preserved.

Prior to this patch, if the block before the Select pseudo fell through
to the subsequent block, two new basic blocks would be inserted at the
prior fallthrough point, changing the fallthrough destination.

The predecessor or successor lists were not updated, causing the
BranchFolding pass at -O1 and above the rearrange basic blocks, causing
an infinite loop. Not to mention the unconditional fallthrough to the
true block is incorrect in of itself.

This patch modifies the Select8/16 expansion so that, if inserting true
and false basic blocks at a fallthrough point, the implicit branch is
preserved by means of an explicit, unconditional branch to the previous
fallthrough destination.

Thanks to Carl Peto for reporting this bug.

This fixes avr-rust bug https://github.com/avr-rust/rust/issues/123.

llvm-svn: 351718
2019-01-21 02:44:09 +00:00
..
Analysis Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AsmParser Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
BinaryFormat Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Bitcode Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
CodeGen GlobalISel: Add isPointer legality predicates 2019-01-20 19:45:14 +00:00
DebugInfo Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Demangle Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
ExecutionEngine Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Fuzzer
FuzzMutate Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
IR [X86] Auto upgrade VPCOM/VPCOMU intrinsics to generic integer comparisons 2019-01-20 19:27:40 +00:00
IRReader Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
LineEditor Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Linker Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
LTO Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
MC Tentative fix for r351701 and gcc 6.2 build on ubuntu 2019-01-20 23:06:45 +00:00
MCA Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Object Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
ObjectYAML Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Option Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
OptRemarks Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
Passes Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
ProfileData Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Support Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
TableGen Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Target [AVR] Insert unconditional branch when inserting MBBs between blocks with fallthrough 2019-01-21 02:44:09 +00:00
Testing Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
TextAPI Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
ToolDrivers Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Transforms Replace llvm::isPodLike<...> by llvm::is_trivially_copyable<...> 2019-01-20 21:19:56 +00:00
WindowsManifest Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
XRay Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
CMakeLists.txt [llvm-mca] Move llvm-mca library to llvm/lib/MCA. 2018-12-17 08:08:31 +00:00
LLVMBuild.txt Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00