summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2018-07-12 00:52:50 +0000
committerChandler Carruth <chandlerc@gmail.com>2018-07-12 00:52:50 +0000
commit1c8234f639d8e9c5a80a154e395069c4d6c32704 (patch)
tree818803b6b82bc47d9ee8de05c223d40ca493da8a /llvm/lib
parentbf9abccacd2a37798b2058c9be0924efb75e248d (diff)
downloadbcm5719-llvm-1c8234f639d8e9c5a80a154e395069c4d6c32704.tar.gz
bcm5719-llvm-1c8234f639d8e9c5a80a154e395069c4d6c32704.zip
[x86] Fix EFLAGS copy lowering to correctly handle walking past uses in
multiple successors where some of the uses end up killing the EFLAGS register. There was a bug where rather than skipping to the next basic block queued up with uses once we saw a kill, we stopped processing the blocks entirely. =/ Test case produces completely nonsensical code w/o this tiny fix. This was found testing Speculative Load Hardening and split out of that work. Differential Revision: https://reviews.llvm.org/D49211 llvm-svn: 336874
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/X86/X86FlagsCopyLowering.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Target/X86/X86FlagsCopyLowering.cpp b/llvm/lib/Target/X86/X86FlagsCopyLowering.cpp
index bc504824446..e8a8d88b67d 100644
--- a/llvm/lib/Target/X86/X86FlagsCopyLowering.cpp
+++ b/llvm/lib/Target/X86/X86FlagsCopyLowering.cpp
@@ -555,7 +555,7 @@ bool X86FlagsCopyLoweringPass::runOnMachineFunction(MachineFunction &MF) {
// If the flags were killed, we're done with this block.
if (FlagsKilled)
- break;
+ continue;
// Otherwise we need to scan successors for ones where the flags live-in
// and queue those up for processing.
OpenPOWER on IntegriCloud