[llvm] r332742 - Revert changes from D46265.
Than McIntosh via llvm-commits
llvm-commits at lists.llvm.org
Fri May 18 10:47:10 PDT 2018
Author: thanm
Date: Fri May 18 10:47:10 2018
New Revision: 332742
URL: http://llvm.org/viewvc/llvm-project?rev=332742&view=rev
Log:
Revert changes from D46265.
This is a revert of the changes from https://reviews.llvm.org/D46265;
the new test introduced (test/CodeGen/X86/PR37310.mir) causes buildbot
failures.
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D47061
Removed:
llvm/trunk/test/CodeGen/X86/PR37310.mir
Modified:
llvm/trunk/lib/CodeGen/StackColoring.cpp
Modified: llvm/trunk/lib/CodeGen/StackColoring.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/StackColoring.cpp?rev=332742&r1=332741&r2=332742&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/StackColoring.cpp (original)
+++ llvm/trunk/lib/CodeGen/StackColoring.cpp Fri May 18 10:47:10 2018
@@ -782,11 +782,8 @@ void StackColoring::calculateLocalLivene
for (MachineBasicBlock::const_pred_iterator PI = BB->pred_begin(),
PE = BB->pred_end(); PI != PE; ++PI) {
LivenessMap::const_iterator I = BlockLiveness.find(*PI);
- // PR37130: transformations prior to stack coloring can
- // sometimes leave behind statically unreachable blocks; these
- // can be safely skipped here.
- if (I != BlockLiveness.end())
- LocalLiveIn |= I->second.LiveOut;
+ assert(I != BlockLiveness.end() && "Predecessor not found");
+ LocalLiveIn |= I->second.LiveOut;
}
// Compute LiveOut by subtracting out lifetimes that end in this
Removed: llvm/trunk/test/CodeGen/X86/PR37310.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/PR37310.mir?rev=332741&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/X86/PR37310.mir (original)
+++ llvm/trunk/test/CodeGen/X86/PR37310.mir (removed)
@@ -1,159 +0,0 @@
-# RUN: llc -mtriple=x86_64-unknown-linux-gnu -mcpu=corei7 -start-before isel -no-stack-coloring=false -stop-after stack-coloring -o - %s
-
-# Test to insure that the liveness analysis in the StackColoring
-# pass gracefully handles statically unreachable blocks. See PR 37310.
-
-# This MIR testcase was created by compiling the following test, first
-# with "clang -emit-llvm -S" and then "llc -stop-before stack-coloring",
-# and finally editing the resulting MIR by hand to introduce a statically
-# unreachable BB (to wit: rename all bb.3 to bb.4, rename bb.2 to bb.3,
-# then add bb.2 with unconditional jump to bb.4).
-
-# Original C code:
-# extern int inita(int *);
-# void foo(int x) {
-# if (x != 3) {
-# int q[128];
-# inita(&q[0]);
-# return;
-# }
-# int r[128];
-# inita(&r[x]);
-# }
-
---- |
-
- define void @foo(i32 %x) {
- entry:
- %q = alloca [128 x i32], align 16
- %r = alloca [128 x i32], align 16
- %cmp = icmp eq i32 %x, 3
- br i1 %cmp, label %if.end, label %if.then
-
- if.then: ; preds = %entry
- %0 = bitcast [128 x i32]* %q to i8*
- call void @llvm.lifetime.start.p0i8(i64 512, i8* nonnull %0)
- %arrayidx2 = bitcast [128 x i32]* %q to i32*
- %call = call i32 @inita(i32* nonnull %arrayidx2)
- call void @llvm.lifetime.end.p0i8(i64 512, i8* nonnull %0)
- br label %return
-
- unreachable:
- br label %return
-
- if.end: ; preds = %entry
- %1 = bitcast [128 x i32]* %r to i8*
- call void @llvm.lifetime.start.p0i8(i64 512, i8* nonnull %1)
- %arrayidx1 = getelementptr inbounds [128 x i32], [128 x i32]* %r, i64 0, i64 3
- %call2 = call i32 @inita(i32* nonnull %arrayidx1)
- call void @llvm.lifetime.end.p0i8(i64 512, i8* nonnull %1)
- br label %return
-
- return: ; preds = %if.end, %if.then
- ret void
- }
-
- declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture)
-
- declare i32 @inita(i32*)
-
- declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture)
-
- declare void @llvm.stackprotector(i8*, i8**)
-
- !llvm.module.flags = !{!0}
- !llvm.ident = !{!1}
-
- !0 = !{i32 1, !"wchar_size", i32 4}
- !1 = !{!"clang version 7.0.0 (trunk 331069) (llvm/trunk 331070)"}
-
-...
----
-name: foo
-alignment: 4
-exposesReturnsTwice: false
-legalized: false
-regBankSelected: false
-selected: false
-failedISel: false
-tracksRegLiveness: true
-registers:
- - { id: 0, class: gr32, preferred-register: '' }
- - { id: 1, class: gr32, preferred-register: '' }
- - { id: 2, class: gr64, preferred-register: '' }
- - { id: 3, class: gr32, preferred-register: '' }
- - { id: 4, class: gr64, preferred-register: '' }
- - { id: 5, class: gr32, preferred-register: '' }
-liveins:
- - { reg: '$edi', virtual-reg: '%0' }
-frameInfo:
- isFrameAddressTaken: false
- isReturnAddressTaken: false
- hasStackMap: false
- hasPatchPoint: false
- stackSize: 0
- offsetAdjustment: 0
- maxAlignment: 16
- adjustsStack: false
- hasCalls: true
- stackProtector: ''
- maxCallFrameSize: 4294967295
- hasOpaqueSPAdjustment: false
- hasVAStart: false
- hasMustTailInVarArgFunc: false
- localFrameSize: 0
- savePoint: ''
- restorePoint: ''
-fixedStack:
-stack:
- - { id: 0, name: q, type: default, offset: 0, size: 512, alignment: 16,
- stack-id: 0, callee-saved-register: '', callee-saved-restored: true,
- debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
- - { id: 1, name: r, type: default, offset: 0, size: 512, alignment: 16,
- stack-id: 0, callee-saved-register: '', callee-saved-restored: true,
- debug-info-variable: '', debug-info-expression: '', debug-info-location: '' }
-constants:
-body: |
- bb.0.entry:
- successors: %bb.3(0x40000000), %bb.1(0x40000000)
- liveins: $edi
-
- %0:gr32 = COPY $edi
- %1:gr32 = SUB32ri8 %0, 3, implicit-def $eflags
- JE_1 %bb.3, implicit $eflags
- JMP_1 %bb.1
-
- bb.1.if.then:
- successors: %bb.4(0x80000000)
-
- LIFETIME_START %stack.0.q
- ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
- %2:gr64 = LEA64r %stack.0.q, 1, $noreg, 0, $noreg
- $rdi = COPY %2
- CALL64pcrel32 @inita, csr_64, implicit $rsp, implicit $ssp, implicit $rdi, implicit-def $rsp, implicit-def $ssp, implicit-def $eax
- ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
- %3:gr32 = COPY $eax
- LIFETIME_END %stack.0.q
- JMP_1 %bb.4
-
- bb.2.unreachable:
- successors: %bb.4(0x80000000)
-
- JMP_1 %bb.4
-
- bb.3.if.end:
- successors: %bb.4(0x80000000)
-
- LIFETIME_START %stack.1.r
- %4:gr64 = LEA64r %stack.1.r, 1, $noreg, 12, $noreg
- ADJCALLSTACKDOWN64 0, 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
- $rdi = COPY %4
- CALL64pcrel32 @inita, csr_64, implicit $rsp, implicit $ssp, implicit $rdi, implicit-def $rsp, implicit-def $ssp, implicit-def $eax
- ADJCALLSTACKUP64 0, 0, implicit-def dead $rsp, implicit-def dead $eflags, implicit-def dead $ssp, implicit $rsp, implicit $ssp
- %5:gr32 = COPY $eax
- LIFETIME_END %stack.1.r
-
- bb.4.return:
- RET 0
-
-...
More information about the llvm-commits
mailing list