summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/ARM/2010-08-04-StackVariable.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/CodeGen/ARM/2010-08-04-StackVariable.ll')
-rw-r--r--llvm/test/CodeGen/ARM/2010-08-04-StackVariable.ll63
1 files changed, 33 insertions, 30 deletions
diff --git a/llvm/test/CodeGen/ARM/2010-08-04-StackVariable.ll b/llvm/test/CodeGen/ARM/2010-08-04-StackVariable.ll
index a90ea137cb7..1bfb892d52f 100644
--- a/llvm/test/CodeGen/ARM/2010-08-04-StackVariable.ll
+++ b/llvm/test/CodeGen/ARM/2010-08-04-StackVariable.ll
@@ -1,4 +1,4 @@
-; RUN: llc -O0 -mtriple=arm-apple-darwin < %s | grep DW_OP_breg
+; RUN: llc -mtriple arm-apple-darwin -O0 -filetype asm -o - %s | FileCheck %s
; Use DW_OP_breg in variable's location expression if the variable is in a stack slot.
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:32-f32:32:32-f64:32:32-v64:64:64-v128:128:128-a0:0:64"
@@ -8,43 +8,43 @@ target triple = "arm-apple-darwin"
define i32 @_Z3fooi4SVal(i32 %i, %struct.SVal* noalias %location) nounwind ssp !dbg !17 {
entry:
- %"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0]
+ %"alloca point" = bitcast i32 0 to i32
call void @llvm.dbg.value(metadata i32 %i, i64 0, metadata !23, metadata !DIExpression()), !dbg !24
call void @llvm.dbg.value(metadata %struct.SVal* %location, i64 0, metadata !25, metadata !DIExpression()), !dbg !24
- %0 = icmp ne i32 %i, 0, !dbg !27 ; <i1> [#uses=1]
+ %0 = icmp ne i32 %i, 0, !dbg !27
br i1 %0, label %bb, label %bb1, !dbg !27
-bb: ; preds = %entry
- %1 = getelementptr inbounds %struct.SVal, %struct.SVal* %location, i32 0, i32 1, !dbg !29 ; <i32*> [#uses=1]
- %2 = load i32, i32* %1, align 8, !dbg !29 ; <i32> [#uses=1]
- %3 = add i32 %2, %i, !dbg !29 ; <i32> [#uses=1]
+bb:
+ %1 = getelementptr inbounds %struct.SVal, %struct.SVal* %location, i32 0, i32 1, !dbg !29
+ %2 = load i32, i32* %1, align 8, !dbg !29
+ %3 = add i32 %2, %i, !dbg !29
br label %bb2, !dbg !29
-bb1: ; preds = %entry
- %4 = getelementptr inbounds %struct.SVal, %struct.SVal* %location, i32 0, i32 1, !dbg !30 ; <i32*> [#uses=1]
- %5 = load i32, i32* %4, align 8, !dbg !30 ; <i32> [#uses=1]
- %6 = sub i32 %5, 1, !dbg !30 ; <i32> [#uses=1]
+bb1:
+ %4 = getelementptr inbounds %struct.SVal, %struct.SVal* %location, i32 0, i32 1, !dbg !30
+ %5 = load i32, i32* %4, align 8, !dbg !30
+ %6 = sub i32 %5, 1, !dbg !30
br label %bb2, !dbg !30
-bb2: ; preds = %bb1, %bb
- %.0 = phi i32 [ %3, %bb ], [ %6, %bb1 ] ; <i32> [#uses=1]
+bb2:
+ %.0 = phi i32 [ %3, %bb ], [ %6, %bb1 ]
br label %return, !dbg !29
-return: ; preds = %bb2
+return:
ret i32 %.0, !dbg !29
}
define linkonce_odr void @_ZN4SValC1Ev(%struct.SVal* %this) nounwind ssp align 2 !dbg !16 {
entry:
- %"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0]
+ %"alloca point" = bitcast i32 0 to i32
call void @llvm.dbg.value(metadata %struct.SVal* %this, i64 0, metadata !31, metadata !DIExpression()), !dbg !34
- %0 = getelementptr inbounds %struct.SVal, %struct.SVal* %this, i32 0, i32 0, !dbg !34 ; <i8**> [#uses=1]
+ %0 = getelementptr inbounds %struct.SVal, %struct.SVal* %this, i32 0, i32 0, !dbg !34
store i8* null, i8** %0, align 8, !dbg !34
- %1 = getelementptr inbounds %struct.SVal, %struct.SVal* %this, i32 0, i32 1, !dbg !34 ; <i32*> [#uses=1]
+ %1 = getelementptr inbounds %struct.SVal, %struct.SVal* %this, i32 0, i32 1, !dbg !34
store i32 0, i32* %1, align 8, !dbg !34
br label %return, !dbg !34
-return: ; preds = %entry
+return:
ret void, !dbg !35
}
@@ -52,26 +52,26 @@ declare void @llvm.dbg.declare(metadata, metadata, metadata) nounwind readnone
define i32 @main() nounwind ssp !dbg !20 {
entry:
- %0 = alloca %struct.SVal ; <%struct.SVal*> [#uses=3]
- %v = alloca %struct.SVal ; <%struct.SVal*> [#uses=4]
- %"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0]
+ %0 = alloca %struct.SVal
+ %v = alloca %struct.SVal
+ %"alloca point" = bitcast i32 0 to i32
call void @llvm.dbg.declare(metadata %struct.SVal* %v, metadata !38, metadata !DIExpression()), !dbg !41
call void @_ZN4SValC1Ev(%struct.SVal* %v) nounwind, !dbg !41
- %1 = getelementptr inbounds %struct.SVal, %struct.SVal* %v, i32 0, i32 1, !dbg !42 ; <i32*> [#uses=1]
+ %1 = getelementptr inbounds %struct.SVal, %struct.SVal* %v, i32 0, i32 1, !dbg !42
store i32 1, i32* %1, align 8, !dbg !42
- %2 = getelementptr inbounds %struct.SVal, %struct.SVal* %0, i32 0, i32 0, !dbg !43 ; <i8**> [#uses=1]
- %3 = getelementptr inbounds %struct.SVal, %struct.SVal* %v, i32 0, i32 0, !dbg !43 ; <i8**> [#uses=1]
- %4 = load i8*, i8** %3, align 8, !dbg !43 ; <i8*> [#uses=1]
+ %2 = getelementptr inbounds %struct.SVal, %struct.SVal* %0, i32 0, i32 0, !dbg !43
+ %3 = getelementptr inbounds %struct.SVal, %struct.SVal* %v, i32 0, i32 0, !dbg !43
+ %4 = load i8*, i8** %3, align 8, !dbg !43
store i8* %4, i8** %2, align 8, !dbg !43
- %5 = getelementptr inbounds %struct.SVal, %struct.SVal* %0, i32 0, i32 1, !dbg !43 ; <i32*> [#uses=1]
- %6 = getelementptr inbounds %struct.SVal, %struct.SVal* %v, i32 0, i32 1, !dbg !43 ; <i32*> [#uses=1]
- %7 = load i32, i32* %6, align 8, !dbg !43 ; <i32> [#uses=1]
+ %5 = getelementptr inbounds %struct.SVal, %struct.SVal* %0, i32 0, i32 1, !dbg !43
+ %6 = getelementptr inbounds %struct.SVal, %struct.SVal* %v, i32 0, i32 1, !dbg !43
+ %7 = load i32, i32* %6, align 8, !dbg !43
store i32 %7, i32* %5, align 8, !dbg !43
- %8 = call i32 @_Z3fooi4SVal(i32 2, %struct.SVal* noalias %0) nounwind, !dbg !43 ; <i32> [#uses=0]
+ %8 = call i32 @_Z3fooi4SVal(i32 2, %struct.SVal* noalias %0) nounwind, !dbg !43
call void @llvm.dbg.value(metadata i32 %8, i64 0, metadata !44, metadata !DIExpression()), !dbg !43
br label %return, !dbg !45
-return: ; preds = %entry
+return:
ret i32 0, !dbg !45
}
@@ -129,3 +129,6 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon
!47 = !{}
!48 = !DIFile(filename: "small.cc", directory: "/Users/manav/R8248330")
!49 = !{i32 1, !"Debug Info Version", i32 3}
+
+; CHECK: @ DW_OP_breg
+
OpenPOWER on IntegriCloud