[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