target triple = "aarch64-apple-ios"
%struct.B = type { %struct.A }
-%struct.A = type { i32 (...)** }
+%struct.A = type { ptr }
-@_ZTV1B = external unnamed_addr constant [4 x i8*]
+@_ZTV1B = external unnamed_addr constant [4 x ptr]
; Function Attrs: nounwind
-define %struct.B* @_ZN1BC2Ev(%struct.B* %this) unnamed_addr #0 align 2 !dbg !28 {
+define ptr @_ZN1BC2Ev(ptr %this) unnamed_addr #0 align 2 !dbg !28 {
entry:
- tail call void @llvm.dbg.value(metadata %struct.B* %this, metadata !30, metadata !38), !dbg !39
- %0 = getelementptr inbounds %struct.B, %struct.B* %this, i64 0, i32 0, !dbg !40
- %call = tail call %struct.A* @_ZN1AC2Ev(%struct.A* %0) #3, !dbg !40
- %1 = getelementptr inbounds %struct.B, %struct.B* %this, i64 0, i32 0, i32 0, !dbg !40
- store i32 (...)** bitcast (i8** getelementptr inbounds ([4 x i8*], [4 x i8*]* @_ZTV1B, i64 0, i64 2) to i32 (...)**), i32 (...)*** %1, align 8, !dbg !40, !tbaa !41
- ret %struct.B* %this, !dbg !40
+ tail call void @llvm.dbg.value(metadata ptr %this, metadata !30, metadata !38), !dbg !39
+ %call = tail call ptr @_ZN1AC2Ev(ptr %this) #3, !dbg !40
+ store ptr getelementptr inbounds ([4 x ptr], ptr @_ZTV1B, i64 0, i64 2), ptr %this, align 8, !dbg !40, !tbaa !41
+ ret ptr %this, !dbg !40
}
-declare %struct.A* @_ZN1AC2Ev(%struct.A*)
+declare ptr @_ZN1AC2Ev(ptr)
; Function Attrs: nounwind
-define %struct.B* @_ZN1BC1Ev(%struct.B* %this) unnamed_addr #0 align 2 !dbg !32 {
+define ptr @_ZN1BC1Ev(ptr %this) unnamed_addr #0 align 2 !dbg !32 {
entry:
- tail call void @llvm.dbg.value(metadata %struct.B* %this, metadata !34, metadata !38), !dbg !44
- tail call void @llvm.dbg.value(metadata %struct.B* %this, metadata !45, metadata !38) #3, !dbg !47
- %0 = getelementptr inbounds %struct.B, %struct.B* %this, i64 0, i32 0, !dbg !48
- %call.i = tail call %struct.A* @_ZN1AC2Ev(%struct.A* %0) #3, !dbg !48
- %1 = getelementptr inbounds %struct.B, %struct.B* %this, i64 0, i32 0, i32 0, !dbg !48
- store i32 (...)** bitcast (i8** getelementptr inbounds ([4 x i8*], [4 x i8*]* @_ZTV1B, i64 0, i64 2) to i32 (...)**), i32 (...)*** %1, align 8, !dbg !48, !tbaa !41
- ret %struct.B* %this, !dbg !46
+ tail call void @llvm.dbg.value(metadata ptr %this, metadata !34, metadata !38), !dbg !44
+ tail call void @llvm.dbg.value(metadata ptr %this, metadata !45, metadata !38) #3, !dbg !47
+ %call.i = tail call ptr @_ZN1AC2Ev(ptr %this) #3, !dbg !48
+ store ptr getelementptr inbounds ([4 x ptr], ptr @_ZTV1B, i64 0, i64 2), ptr %this, align 8, !dbg !48, !tbaa !41
+ ret ptr %this, !dbg !46
}
; Function Attrs: nounwind readnone
; RUN: llc -filetype=obj %s -o - | llvm-dwarfdump - | FileCheck %s
;
; Generated at -Os from:
-; void *foo(void *dst);
+; ptr foo(ptr dst);
; void start() {
; unsigned size;
; foo(&size);
define void @_Z5startv() #0 !dbg !4 {
entry:
%size = alloca i32, align 4
- %0 = bitcast i32* %size to i8*, !dbg !15
- %call = call i8* @_Z3fooPv(i8* %0) #3, !dbg !15
- call void @llvm.dbg.value(metadata i32* %size, metadata !10, metadata !16), !dbg !17
+ %call = call ptr @_Z3fooPv(ptr %size) #3, !dbg !15
+ call void @llvm.dbg.value(metadata ptr %size, metadata !10, metadata !16), !dbg !17
; The *location* of the variable should be $sp+12. This tells the debugger to
; look up its value in [$sp+12].
}
; Function Attrs: optsize
-declare i8* @_Z3fooPv(i8*) #1
+declare ptr @_Z3fooPv(ptr) #1
; Function Attrs: nounwind readnone
declare void @llvm.dbg.value(metadata, metadata, metadata) #2
define i32 @main() !dbg !4 {
entry:
%retval = alloca i32, align 4
- store i32 0, i32* %retval
+ store i32 0, ptr %retval
ret i32 -1, !dbg !11
}
; When ISel promotes the result of i8 add, the attached dbg.value shouldn't be dropped.
; CHECK: DBG_VALUE
; Function Attrs: nounwind
-define dso_local i32 @bar(i32*, i32) local_unnamed_addr #0 !dbg !10 {
+define dso_local i32 @bar(ptr, i32) local_unnamed_addr #0 !dbg !10 {
%3 = trunc i32 %1 to i8, !dbg !20
%4 = add i8 %3, 97, !dbg !20
call void @llvm.dbg.value(metadata i8 %4, metadata !17, metadata !DIExpression()), !dbg !21
%5 = zext i8 %4 to i32, !dbg !22
- tail call void @foo1(i32* %0, i32 %5) #2, !dbg !23
- tail call void @foo2(i32* %0, i8 %4) #2, !dbg !24
+ tail call void @foo1(ptr %0, i32 %5) #2, !dbg !23
+ tail call void @foo2(ptr %0, i8 %4) #2, !dbg !24
ret i32 undef, !dbg !25
}
-declare dso_local void @foo1(i32*, i32) local_unnamed_addr
+declare dso_local void @foo1(ptr, i32) local_unnamed_addr
-declare dso_local void @foo2(i32*, i8) local_unnamed_addr
+declare dso_local void @foo2(ptr, i8) local_unnamed_addr
; Function Attrs: nounwind readnone speculatable
declare void @llvm.dbg.value(metadata, metadata, metadata) #1
declare void @bar()
-define i64 @foo(i64 %lhs, i64 %rhs) personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+define i64 @foo(i64 %lhs, i64 %rhs) personality ptr @__gxx_personality_v0 {
invoke void @bar() to label %end unwind label %clean
end:
ret i64 0
clean:
- %tst = landingpad { i8*, i32 } cleanup
+ %tst = landingpad { ptr, i32 } cleanup
ret i64 42
}
; Generated from:
; typedef struct t *t_t;
; extern unsigned int enable;
-; struct t {
-; struct q {
-; struct q *next;
-; unsigned long long resource;
-; } * s;
-; } * tt;
+; struct t ptr tt;
; static unsigned long find(t_t t, unsigned long long resource) {
; struct q *q;
; q = t->s;
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
target triple = "arm64-apple-ios5.0.0"
-%struct.t = type { %struct.q* }
-%struct.q = type { %struct.q*, i64 }
+%struct.t = type { ptr }
+%struct.q = type { ptr, i64 }
-@tt = common local_unnamed_addr global %struct.t* null, align 8, !dbg !0
+@tt = common local_unnamed_addr global ptr null, align 8, !dbg !0
; Function Attrs: norecurse nounwind readonly ssp uwtable
-define i32 @g(%struct.t* nocapture readonly %t, i64 %r) local_unnamed_addr !dbg !21 {
+define i32 @g(ptr nocapture readonly %t, i64 %r) local_unnamed_addr !dbg !21 {
entry:
- call void @llvm.dbg.value(metadata %struct.t* %t, metadata !27, metadata !DIExpression()), !dbg !30
+ call void @llvm.dbg.value(metadata ptr %t, metadata !27, metadata !DIExpression()), !dbg !30
call void @llvm.dbg.value(metadata i64 %r, metadata !28, metadata !DIExpression()), !dbg !31
- call void @llvm.dbg.value(metadata %struct.t* %t, metadata !32, metadata !DIExpression()), !dbg !39
+ call void @llvm.dbg.value(metadata ptr %t, metadata !32, metadata !DIExpression()), !dbg !39
call void @llvm.dbg.value(metadata i64 %r, metadata !37, metadata !DIExpression()), !dbg !41
- %s.i = getelementptr inbounds %struct.t, %struct.t* %t, i64 0, i32 0, !dbg !42
- %q.05.i = load %struct.q*, %struct.q** %s.i, align 8, !dbg !43, !tbaa !44
- call void @llvm.dbg.value(metadata %struct.q* %q.05.i, metadata !38, metadata !DIExpression()), !dbg !48
- %tobool6.i = icmp eq %struct.q* %q.05.i, null, !dbg !49
+ %q.05.i = load ptr, ptr %t, align 8, !dbg !43, !tbaa !44
+ call void @llvm.dbg.value(metadata ptr %q.05.i, metadata !38, metadata !DIExpression()), !dbg !48
+ %tobool6.i = icmp eq ptr %q.05.i, null, !dbg !49
br i1 %tobool6.i, label %find.exit, label %while.body.i, !dbg !49
while.body.i: ; preds = %entry, %if.end.i
- %q.07.i = phi %struct.q* [ %q.0.i, %if.end.i ], [ %q.05.i, %entry ]
- %resource1.i = getelementptr inbounds %struct.q, %struct.q* %q.07.i, i64 0, i32 1, !dbg !50
- %0 = load i64, i64* %resource1.i, align 8, !dbg !50, !tbaa !53
+ %q.07.i = phi ptr [ %q.0.i, %if.end.i ], [ %q.05.i, %entry ]
+ %resource1.i = getelementptr inbounds %struct.q, ptr %q.07.i, i64 0, i32 1, !dbg !50
+ %0 = load i64, ptr %resource1.i, align 8, !dbg !50, !tbaa !53
%cmp.i = icmp eq i64 %0, %r, !dbg !56
br i1 %cmp.i, label %find.exit, label %if.end.i, !dbg !57
if.end.i: ; preds = %while.body.i
- %next.i = getelementptr inbounds %struct.q, %struct.q* %q.07.i, i64 0, i32 0, !dbg !58
- %q.0.i = load %struct.q*, %struct.q** %next.i, align 8, !dbg !43, !tbaa !44
- call void @llvm.dbg.value(metadata %struct.q* %q.0.i, metadata !38, metadata !DIExpression()), !dbg !48
- %tobool.i = icmp eq %struct.q* %q.0.i, null, !dbg !49
+ %q.0.i = load ptr, ptr %q.07.i, align 8, !dbg !43, !tbaa !44
+ call void @llvm.dbg.value(metadata ptr %q.0.i, metadata !38, metadata !DIExpression()), !dbg !48
+ %tobool.i = icmp eq ptr %q.0.i, null, !dbg !49
br i1 %tobool.i, label %find.exit, label %while.body.i, !dbg !49, !llvm.loop !59
find.exit: ; preds = %while.body.i, %if.end.i, %entry
- call void @llvm.dbg.value(metadata %struct.q* undef, metadata !29, metadata !DIExpression()), !dbg !61
+ call void @llvm.dbg.value(metadata ptr undef, metadata !29, metadata !DIExpression()), !dbg !61
ret i32 undef, !dbg !62
}
define void @outline_debug1() !dbg !6 {
entry:
%a = alloca i32, align 4, !dbg !17
- call void @llvm.dbg.value(metadata i32* %a, metadata !9, metadata !DIExpression()), !dbg !17
+ call void @llvm.dbg.value(metadata ptr %a, metadata !9, metadata !DIExpression()), !dbg !17
%b = alloca i32, align 4, !dbg !18
- call void @llvm.dbg.value(metadata i32* %b, metadata !11, metadata !DIExpression()), !dbg !18
+ call void @llvm.dbg.value(metadata ptr %b, metadata !11, metadata !DIExpression()), !dbg !18
%c = alloca i32, align 4, !dbg !19
- call void @llvm.dbg.value(metadata i32* %c, metadata !12, metadata !DIExpression()), !dbg !19
- store i32 2, i32* %a, align 4, !dbg !20
- store i32 3, i32* %b, align 4, !dbg !21
- store i32 4, i32* %c, align 4, !dbg !22
- %al = load i32, i32* %a, align 4, !dbg !23
+ call void @llvm.dbg.value(metadata ptr %c, metadata !12, metadata !DIExpression()), !dbg !19
+ store i32 2, ptr %a, align 4, !dbg !20
+ store i32 3, ptr %b, align 4, !dbg !21
+ store i32 4, ptr %c, align 4, !dbg !22
+ %al = load i32, ptr %a, align 4, !dbg !23
call void @llvm.dbg.value(metadata i32 %al, metadata !13, metadata !DIExpression()), !dbg !23
- %bl = load i32, i32* %b, align 4, !dbg !24
+ %bl = load i32, ptr %b, align 4, !dbg !24
call void @llvm.dbg.value(metadata i32 %bl, metadata !15, metadata !DIExpression()), !dbg !24
- %cl = load i32, i32* %c, align 4, !dbg !25
+ %cl = load i32, ptr %c, align 4, !dbg !25
call void @llvm.dbg.value(metadata i32 %cl, metadata !16, metadata !DIExpression()), !dbg !25
ret void, !dbg !26
}
define void @outline_debug2() !dbg !27 {
entry:
%a = alloca i32, align 4, !dbg !35
- call void @llvm.dbg.value(metadata i32* %a, metadata !29, metadata !DIExpression()), !dbg !35
+ call void @llvm.dbg.value(metadata ptr %a, metadata !29, metadata !DIExpression()), !dbg !35
%b = alloca i32, align 4, !dbg !36
- call void @llvm.dbg.value(metadata i32* %b, metadata !30, metadata !DIExpression()), !dbg !36
+ call void @llvm.dbg.value(metadata ptr %b, metadata !30, metadata !DIExpression()), !dbg !36
%c = alloca i32, align 4, !dbg !37
- call void @llvm.dbg.value(metadata i32* %c, metadata !31, metadata !DIExpression()), !dbg !37
- store i32 2, i32* %a, align 4, !dbg !38
- store i32 3, i32* %b, align 4, !dbg !39
- store i32 4, i32* %c, align 4, !dbg !40
- %al = load i32, i32* %a, align 4, !dbg !41
+ call void @llvm.dbg.value(metadata ptr %c, metadata !31, metadata !DIExpression()), !dbg !37
+ store i32 2, ptr %a, align 4, !dbg !38
+ store i32 3, ptr %b, align 4, !dbg !39
+ store i32 4, ptr %c, align 4, !dbg !40
+ %al = load i32, ptr %a, align 4, !dbg !41
call void @llvm.dbg.value(metadata i32 %al, metadata !32, metadata !DIExpression()), !dbg !41
- %bl = load i32, i32* %b, align 4, !dbg !42
+ %bl = load i32, ptr %b, align 4, !dbg !42
call void @llvm.dbg.value(metadata i32 %bl, metadata !33, metadata !DIExpression()), !dbg !42
- %cl = load i32, i32* %c, align 4, !dbg !43
+ %cl = load i32, ptr %c, align 4, !dbg !43
call void @llvm.dbg.value(metadata i32 %cl, metadata !34, metadata !DIExpression()), !dbg !43
ret void, !dbg !44
}
; IRDEBUG-LABEL: @outline_debug1(
; IRDEBUG-NEXT: entry:
; IRDEBUG-NEXT: [[A:%.*]] = alloca i32, align 4, !dbg [[DBG17:![0-9]+]]
-; IRDEBUG-NEXT: call void @llvm.dbg.value(metadata i32* [[A]], metadata [[META9:![0-9]+]], metadata !DIExpression()), !dbg [[DBG17]]
+; IRDEBUG-NEXT: call void @llvm.dbg.value(metadata ptr [[A]], metadata [[META9:![0-9]+]], metadata !DIExpression()), !dbg [[DBG17]]
; IRDEBUG-NEXT: [[B:%.*]] = alloca i32, align 4, !dbg [[DBG18:![0-9]+]]
-; IRDEBUG-NEXT: call void @llvm.dbg.value(metadata i32* [[B]], metadata [[META11:![0-9]+]], metadata !DIExpression()), !dbg [[DBG18]]
+; IRDEBUG-NEXT: call void @llvm.dbg.value(metadata ptr [[B]], metadata [[META11:![0-9]+]], metadata !DIExpression()), !dbg [[DBG18]]
; IRDEBUG-NEXT: [[C:%.*]] = alloca i32, align 4, !dbg [[DBG19:![0-9]+]]
-; IRDEBUG-NEXT: call void @llvm.dbg.value(metadata i32* [[C]], metadata [[META12:![0-9]+]], metadata !DIExpression()), !dbg [[DBG19]]
-; IRDEBUG-NEXT: call void @outlined_ir_func_0(i32* [[A]], i32* [[B]], i32* [[C]]), !dbg [[DBG20:![0-9]+]]
+; IRDEBUG-NEXT: call void @llvm.dbg.value(metadata ptr [[C]], metadata [[META12:![0-9]+]], metadata !DIExpression()), !dbg [[DBG19]]
+; IRDEBUG-NEXT: call void @outlined_ir_func_0(ptr [[A]], ptr [[B]], ptr [[C]]), !dbg [[DBG20:![0-9]+]]
; IRDEBUG-NEXT: ret void, !dbg [[DBG21:![0-9]+]]
;
;
; IRDEBUG-LABEL: @outline_debug2(
; IRDEBUG-NEXT: entry:
; IRDEBUG-NEXT: [[A:%.*]] = alloca i32, align 4, !dbg [[DBG30:![0-9]+]]
-; IRDEBUG-NEXT: call void @llvm.dbg.value(metadata i32* [[A]], metadata [[META24:![0-9]+]], metadata !DIExpression()), !dbg [[DBG30]]
+; IRDEBUG-NEXT: call void @llvm.dbg.value(metadata ptr [[A]], metadata [[META24:![0-9]+]], metadata !DIExpression()), !dbg [[DBG30]]
; IRDEBUG-NEXT: [[B:%.*]] = alloca i32, align 4, !dbg [[DBG31:![0-9]+]]
-; IRDEBUG-NEXT: call void @llvm.dbg.value(metadata i32* [[B]], metadata [[META25:![0-9]+]], metadata !DIExpression()), !dbg [[DBG31]]
+; IRDEBUG-NEXT: call void @llvm.dbg.value(metadata ptr [[B]], metadata [[META25:![0-9]+]], metadata !DIExpression()), !dbg [[DBG31]]
; IRDEBUG-NEXT: [[C:%.*]] = alloca i32, align 4, !dbg [[DBG32:![0-9]+]]
-; IRDEBUG-NEXT: call void @llvm.dbg.value(metadata i32* [[C]], metadata [[META26:![0-9]+]], metadata !DIExpression()), !dbg [[DBG32]]
-; IRDEBUG-NEXT: call void @outlined_ir_func_0(i32* [[A]], i32* [[B]], i32* [[C]]), !dbg [[DBG33:![0-9]+]]
+; IRDEBUG-NEXT: call void @llvm.dbg.value(metadata ptr [[C]], metadata [[META26:![0-9]+]], metadata !DIExpression()), !dbg [[DBG32]]
+; IRDEBUG-NEXT: call void @outlined_ir_func_0(ptr [[A]], ptr [[B]], ptr [[C]]), !dbg [[DBG33:![0-9]+]]
; IRDEBUG-NEXT: ret void, !dbg [[DBG34:![0-9]+]]
;
;
-; IRDEBUG: @outlined_ir_func_0(i32* [[TMP0:%.*]], i32* [[TMP1:%.*]], i32* [[TMP2:%.*]])
+; IRDEBUG: @outlined_ir_func_0(ptr [[TMP0:%.*]], ptr [[TMP1:%.*]], ptr [[TMP2:%.*]])
; IRDEBUG: entry_to_outline:
-; IRDEBUG-NEXT: store i32 2, i32* [[TMP0]], align 4
-; IRDEBUG-NEXT: store i32 3, i32* [[TMP1]], align 4
-; IRDEBUG-NEXT: store i32 4, i32* [[TMP2]], align 4
-; IRDEBUG-NEXT: [[AL:%.*]] = load i32, i32* [[TMP0]], align 4
-; IRDEBUG-NEXT: [[BL:%.*]] = load i32, i32* [[TMP1]], align 4
-; IRDEBUG-NEXT: [[CL:%.*]] = load i32, i32* [[TMP2]], align 4
+; IRDEBUG-NEXT: store i32 2, ptr [[TMP0]], align 4
+; IRDEBUG-NEXT: store i32 3, ptr [[TMP1]], align 4
+; IRDEBUG-NEXT: store i32 4, ptr [[TMP2]], align 4
+; IRDEBUG-NEXT: [[AL:%.*]] = load i32, ptr [[TMP0]], align 4
+; IRDEBUG-NEXT: [[BL:%.*]] = load i32, ptr [[TMP1]], align 4
+; IRDEBUG-NEXT: [[CL:%.*]] = load i32, ptr [[TMP2]], align 4
; IRDEBUG-NEXT: br label [[ENTRY_AFTER_OUTLINE_EXITSTUB:%.*]]
;
%struct.mystruct = type { double, double, double, double, double }
@.str = private unnamed_addr constant [5 x i8] c"%llu\00", align 1
-define dso_local void @foo(%struct.mystruct* %ms) !dbg !9 {
+define dso_local void @foo(ptr %ms) !dbg !9 {
entry:
- call void @llvm.dbg.declare(metadata %struct.mystruct* %ms, metadata !21, metadata !DIExpression()), !dbg !22
- %0 = ptrtoint %struct.mystruct* %ms to i64, !dbg !23
- %call = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0), i64 %0), !dbg !24
+ call void @llvm.dbg.declare(metadata ptr %ms, metadata !21, metadata !DIExpression()), !dbg !22
+ %0 = ptrtoint ptr %ms to i64, !dbg !23
+ %call = call i32 (ptr, ...) @printf(ptr @.str, i64 %0), !dbg !24
ret void, !dbg !25
}
declare void @llvm.dbg.declare(metadata, metadata, metadata)
-declare dso_local i32 @printf(i8*, ...)
+declare dso_local i32 @printf(ptr, ...)
!llvm.dbg.cu = !{!0}
%struct.five = type { i32, i32, i32, i32, i32 }
; Function Attrs: nounwind ssp
-define i32 @return_five_int(%struct.five* %f) #0 !dbg !4 {
+define i32 @return_five_int(ptr %f) #0 !dbg !4 {
entry:
- call void @llvm.dbg.declare(metadata %struct.five* %f, metadata !17, metadata !DIExpression(DW_OP_deref)), !dbg !18
- %a = getelementptr inbounds %struct.five, %struct.five* %f, i32 0, i32 0, !dbg !19
- %0 = load i32, i32* %a, align 4, !dbg !19
+ call void @llvm.dbg.declare(metadata ptr %f, metadata !17, metadata !DIExpression(DW_OP_deref)), !dbg !18
+ %0 = load i32, ptr %f, align 4, !dbg !19
ret i32 %0, !dbg !19
}
; Function Attrs: noinline nounwind optnone
define i32 @foo() #0 !dbg !11 {
entry:
- %0 = load i32, i32* @var, align 4, !dbg !14
+ %0 = load i32, ptr @var, align 4, !dbg !14
ret i32 %0, !dbg !15
}
; int tv_usec;
; };
;
-; void *memset(void *, int, size_t);
+; ptr memset(ptr, int, size_t);
; void foo(void);
;
; static void
define i32 @parse_config_file() !dbg !4 {
entry:
tail call void @llvm.dbg.value(metadata i32 0, metadata !15, metadata !26), !dbg !27
- tail call void @llvm.dbg.declare(metadata %struct.timeval* undef, metadata !16, metadata !26), !dbg !29
+ tail call void @llvm.dbg.declare(metadata ptr undef, metadata !16, metadata !26), !dbg !29
tail call void @llvm.dbg.value(metadata i64 0, metadata !16, metadata !30), !dbg !29
tail call void @llvm.dbg.value(metadata i32 0, metadata !16, metadata !31), !dbg !29
tail call void @foo() #3, !dbg !32
define i32 @main() !dbg !4 {
entry:
%retval = alloca i32, align 4
- store i32 0, i32* %retval
+ store i32 0, ptr %retval
ret i32 -1, !dbg !11
}
call void @llvm.dbg.value(metadata double %a, metadata !17, metadata !DIExpression()), !dbg !19
call void @llvm.dbg.value(metadata double %b, metadata !18, metadata !DIExpression()), !dbg !19
%add = fadd double %a, %b, !dbg !20
- store double %add, double* @global, align 8, !dbg !20
+ store double %add, ptr @global, align 8, !dbg !20
tail call arm_aapcs_vfpcc void @clobber(), !dbg !21
ret i32 1, !dbg !22
}
%struct.vm_object = type { i64 }
; Function Attrs: nounwind ssp
-define void @f(%struct.vm_object* %object, i64* nocapture readonly %start) local_unnamed_addr #0 !dbg !11 {
+define void @f(ptr %object, ptr nocapture readonly %start) local_unnamed_addr #0 !dbg !11 {
entry:
- tail call void @llvm.dbg.value(metadata %struct.vm_object* %object, metadata !21, metadata !DIExpression()), !dbg !27
- tail call void @llvm.dbg.value(metadata i64* %start, metadata !22, metadata !DIExpression()), !dbg !28
+ tail call void @llvm.dbg.value(metadata ptr %object, metadata !21, metadata !DIExpression()), !dbg !27
+ tail call void @llvm.dbg.value(metadata ptr %start, metadata !22, metadata !DIExpression()), !dbg !28
tail call void @llvm.dbg.value(metadata i64 %0, metadata !25, metadata !DIExpression()), !dbg !29
tail call void @llvm.dbg.value(metadata i64 %0, metadata !26, metadata !DIExpression(DW_OP_constu, 4096, DW_OP_minus, DW_OP_stack_value)), !dbg !30
; This debug value cannot safely be split into two 32-bit pieces.
br i1 undef, label %for.end, label %for.body.lr.ph, !dbg !31
for.body.lr.ph: ; preds = %entry
- %0 = load i64, i64* %start, align 4, !dbg !33
+ %0 = load i64, ptr %start, align 4, !dbg !33
br label %for.body, !dbg !31
for.body: ; preds = %for.body, %for.body.lr.ph
%head_size.09 = phi i32 [ undef, %for.body.lr.ph ], [ %sub2, %for.body ]
%offset.010 = add i64 %offset.010.in, -4096
tail call void @llvm.dbg.value(metadata i32 %head_size.09, metadata !23, metadata !DIExpression()), !dbg !30
- %call = tail call i32 bitcast (i32 (...)* @use to i32 (i64, %struct.vm_object*)*)(i64 %offset.010, %struct.vm_object* %object) #2, !dbg !34
+ %call = tail call i32 @use(i64 %offset.010, ptr %object) #2, !dbg !34
%sub2 = add i32 %head_size.09, -4096, !dbg !37
tail call void @llvm.dbg.value(metadata i64 %offset.010, metadata !26, metadata !DIExpression(DW_OP_constu, 4096, DW_OP_minus, DW_OP_stack_value)), !dbg !29
tail call void @llvm.dbg.value(metadata i32 %sub2, metadata !23, metadata !DIExpression()), !dbg !30
%conv = fptosi float %r to i32, !dbg !23
tail call void @llvm.dbg.declare(metadata i32 %conv, metadata !12, metadata !DIExpression()), !dbg !23
%vla = alloca float, i32 %conv, align 4, !dbg !24
- tail call void @llvm.dbg.declare(metadata float* %vla, metadata !14, metadata !DIExpression(DW_OP_deref)), !dbg !24
+ tail call void @llvm.dbg.declare(metadata ptr %vla, metadata !14, metadata !DIExpression(DW_OP_deref)), !dbg !24
; The VLA alloca should be described by a dbg.declare:
-; CHECK: call void @llvm.dbg.declare(metadata float* %vla, metadata ![[VLA:.*]], metadata {{.*}})
+; CHECK: call void @llvm.dbg.declare(metadata ptr %vla, metadata ![[VLA:.*]], metadata {{.*}})
; The VLA alloca and following store into the array should not be lowered to like this:
; CHECK-NOT: call void @llvm.dbg.value(metadata float %r, metadata ![[VLA]])
; the backend interprets this as "vla has the location of %r".
- store float %r, float* %vla, align 4, !dbg !25, !tbaa !26
+ store float %r, ptr %vla, align 4, !dbg !25, !tbaa !26
tail call void @llvm.dbg.value(metadata i32 0, metadata !18, metadata !DIExpression()), !dbg !30
%cmp8 = icmp sgt i32 %conv, 0, !dbg !30
br i1 %cmp8, label %for.body, label %for.end, !dbg !30
for.body: ; preds = %entry, %for.body.for.body_crit_edge
%0 = phi float [ %.pre, %for.body.for.body_crit_edge ], [ %r, %entry ]
%i.09 = phi i32 [ %inc, %for.body.for.body_crit_edge ], [ 0, %entry ]
- %arrayidx2 = getelementptr inbounds float, float* %vla, i32 %i.09, !dbg !31
+ %arrayidx2 = getelementptr inbounds float, ptr %vla, i32 %i.09, !dbg !31
%div = fdiv float %0, %r, !dbg !31
- store float %div, float* %arrayidx2, align 4, !dbg !31, !tbaa !26
+ store float %div, ptr %arrayidx2, align 4, !dbg !31, !tbaa !26
%inc = add nsw i32 %i.09, 1, !dbg !30
tail call void @llvm.dbg.value(metadata i32 %inc, metadata !18, metadata !DIExpression()), !dbg !30
%exitcond = icmp eq i32 %inc, %conv, !dbg !30
br i1 %exitcond, label %for.end, label %for.body.for.body_crit_edge, !dbg !30
for.body.for.body_crit_edge: ; preds = %for.body
- %arrayidx2.phi.trans.insert = getelementptr inbounds float, float* %vla, i32 %inc
- %.pre = load float, float* %arrayidx2.phi.trans.insert, align 4, !dbg !31, !tbaa !26
+ %arrayidx2.phi.trans.insert = getelementptr inbounds float, ptr %vla, i32 %inc
+ %.pre = load float, ptr %arrayidx2.phi.trans.insert, align 4, !dbg !31, !tbaa !26
br label %for.body, !dbg !30
for.end: ; preds = %for.body, %entry
; Function Attrs: nounwind
define void @proc() #0 !dbg !13 {
entry:
- store i8 65, i8* @ch, align 1, !dbg !17
- store i32 0, i32* @b, align 4, !dbg !18
+ store i8 65, ptr @ch, align 1, !dbg !17
+ store i32 0, ptr @b, align 4, !dbg !18
ret void, !dbg !19
}
; Function Attrs: nounwind ssp uwtable
define void @f() local_unnamed_addr #0 !dbg !16 {
entry:
- %0 = load i32, i32* @p, align 4, !dbg !25
+ %0 = load i32, ptr @p, align 4, !dbg !25
%tobool = icmp eq i32 %0, 0, !dbg !25
br i1 %tobool, label %if.end, label %if.then, !dbg !26
if.then: ; preds = %entry
- %1 = inttoptr i32 %0 to %struct.info*, !dbg !27
- tail call void @llvm.dbg.value(metadata %struct.info* %1, metadata !22, metadata !DIExpression()), !dbg !28
+ %1 = inttoptr i32 %0 to ptr, !dbg !27
+ tail call void @llvm.dbg.value(metadata ptr %1, metadata !22, metadata !DIExpression()), !dbg !28
; CHECK: call void @llvm.dbg.value(metadata i32 %0, metadata !22, metadata !DIExpression())
tail call void @llvm.dbg.value(metadata i32 0, metadata !20, metadata !DIExpression()), !dbg !29
- %2 = load i32, i32* @n, align 4, !dbg !30
+ %2 = load i32, ptr @n, align 4, !dbg !30
%cmp5 = icmp eq i32 %2, 0, !dbg !33
br i1 %cmp5, label %if.end, label %for.body.preheader, !dbg !34
for.body.preheader: ; preds = %if.then
; CHECK: for.body.preheader:
- ; CHECK: %2 = inttoptr i32 %0 to %struct.info*
+ ; CHECK: %2 = inttoptr i32 %0 to ptr
br label %for.body, !dbg !35
for.body: ; preds = %for.body.preheader, %for.body
- %lsr.iv = phi %struct.info* [ %1, %for.body.preheader ], [ %scevgep, %for.body ]
+ %lsr.iv = phi ptr [ %1, %for.body.preheader ], [ %scevgep, %for.body ]
%i.06 = phi i32 [ %inc, %for.body ], [ 0, %for.body.preheader ]
- %lsr.iv7 = bitcast %struct.info* %lsr.iv to i64*
tail call void @llvm.dbg.value(metadata i32 %i.06, metadata !20, metadata !DIExpression()), !dbg !29
- %3 = load i64, i64* %lsr.iv7, align 8, !dbg !35
- %call = tail call i32 bitcast (i32 (...)* @use to i32 (i64)*)(i64 %3) #3, !dbg !36
+ %3 = load i64, ptr %lsr.iv, align 8, !dbg !35
+ %call = tail call i32 @use(i64 %3) #3, !dbg !36
%inc = add nuw i32 %i.06, 1, !dbg !37
tail call void @llvm.dbg.value(metadata i32 %inc, metadata !20, metadata !DIExpression()), !dbg !29
- %4 = load i32, i32* @n, align 4, !dbg !30
- %scevgep = getelementptr %struct.info, %struct.info* %lsr.iv, i32 1, !dbg !33
+ %4 = load i32, ptr @n, align 4, !dbg !30
+ %scevgep = getelementptr %struct.info, ptr %lsr.iv, i32 1, !dbg !33
%cmp = icmp ult i32 %inc, %4, !dbg !33
br i1 %cmp, label %for.body, label %if.end.loopexit, !dbg !34, !llvm.loop !38
; CHECK: @DEBUG_VALUE: foo:offset <- [DW_OP_LLVM_fragment 0 32] $r5
; CHECK: @DEBUG_VALUE: foo:offset <- [DW_OP_LLVM_fragment 32 32] $r4
- %2 = load i64, i64* @g, align 8, !dbg !19, !tbaa !21
+ %2 = load i64, ptr @g, align 8, !dbg !19, !tbaa !21
%3 = icmp eq i64 %2, %0, !dbg !19
br i1 %3, label %5, label %4, !dbg !25
; RUN: llc -filetype=asm < %s | FileCheck %s
target triple = "thumbv7-apple-ios7.0.0"
%class.Matrix3.0.6.10 = type { [9 x float] }
-define arm_aapcscc void @_Z9GetMatrixv(%class.Matrix3.0.6.10* noalias nocapture sret(%class.Matrix3.0.6.10) %agg.result) #0 !dbg !39 {
+define arm_aapcscc void @_Z9GetMatrixv(ptr noalias nocapture sret(%class.Matrix3.0.6.10) %agg.result) #0 !dbg !39 {
%fmul = fmul float undef, undef
%fadd = fadd float %fmul, %fmul
%fadd2 = fadd float %fadd, %fmul
; and SelectionDAGISel crashes. It should definitely not
; crash. Drop the dbg_value instead.
; CHECK-NOT: "matrix"
- tail call void @llvm.dbg.declare(metadata %class.Matrix3.0.6.10* %agg.result, metadata !45, metadata !DIExpression())
- %2 = getelementptr inbounds %class.Matrix3.0.6.10, %class.Matrix3.0.6.10* %agg.result, i32 0, i32 0, i32 8
+ tail call void @llvm.dbg.declare(metadata ptr %agg.result, metadata !45, metadata !DIExpression())
+ %2 = getelementptr inbounds %class.Matrix3.0.6.10, ptr %agg.result, i32 0, i32 0, i32 8
ret void
}
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
entry:
%retval = alloca i32, align 4
%x = alloca i32, align 4
- store i32 0, i32* %retval
- call void @llvm.dbg.declare(metadata i32* %x, metadata !10, metadata !11), !dbg !12
- store i32 0, i32* %x, align 4, !dbg !12
- %0 = load i32, i32* %x, align 4, !dbg !13
+ store i32 0, ptr %retval
+ call void @llvm.dbg.declare(metadata ptr %x, metadata !10, metadata !11), !dbg !12
+ store i32 0, ptr %x, align 4, !dbg !12
+ %0 = load i32, ptr %x, align 4, !dbg !13
%cmp = icmp sgt i32 %0, 0, !dbg !15
br i1 %cmp, label %if.then, label %if.end, !dbg !16
if.then: ; preds = %entry
- %1 = load i32, i32* %x, align 4, !dbg !17
- store i32 %1, i32* %retval, !dbg !18
+ %1 = load i32, ptr %x, align 4, !dbg !17
+ store i32 %1, ptr %retval, !dbg !18
br label %return, !dbg !18
if.end: ; preds = %entry
; The backend performs the store to %retval first, for some reason.
; CHECK-NEXT: .loc 1 7 5
; CHECK-NEXT: str r0, [sp, #4]
- store i32 -1, i32* %x, align 4, !dbg !19
+ store i32 -1, ptr %x, align 4, !dbg !19
; CHECK-NEXT: .loc 1 6 7
; CHECK-NEXT: str r0, [sp]
- store i32 -1, i32* %retval, !dbg !20
+ store i32 -1, ptr %retval, !dbg !20
br label %return, !dbg !20
return: ; preds = %if.end, %if.then
- %2 = load i32, i32* %retval, !dbg !21
+ %2 = load i32, ptr %retval, !dbg !21
ret i32 %2, !dbg !21
}
; Function Attrs: nounwind readnone
define arm_aapcscc void @f([2 x i64] %c.coerce) #0 !dbg !4 {
entry:
- tail call void @llvm.dbg.declare(metadata { double, double }* undef, metadata !14, metadata !15), !dbg !16
+ tail call void @llvm.dbg.declare(metadata ptr undef, metadata !14, metadata !15), !dbg !16
; The target has no native double type.
; SROA split the complex value into two i64 values.
; CHECK: DW_TAG_formal_parameter
define arm_aapcscc void @f([2 x i64] %c.coerce) #0 !dbg !4 {
entry:
%c = alloca { double, double }, align 8
- %0 = bitcast { double, double }* %c to [2 x i64]*
- store [2 x i64] %c.coerce, [2 x i64]* %0, align 8
- call void @llvm.dbg.declare(metadata { double, double }* %c, metadata !14, metadata !15), !dbg !16
- %c.realp = getelementptr inbounds { double, double }, { double, double }* %c, i32 0, i32 0, !dbg !17
- %c.imagp = getelementptr inbounds { double, double }, { double, double }* %c, i32 0, i32 1, !dbg !17
- store double 0.000000e+00, double* %c.realp, align 8, !dbg !17
+ store [2 x i64] %c.coerce, ptr %c, align 8
+ call void @llvm.dbg.declare(metadata ptr %c, metadata !14, metadata !15), !dbg !16
+ %c.realp = getelementptr inbounds { double, double }, ptr %c, i32 0, i32 0, !dbg !17
+ %c.imagp = getelementptr inbounds { double, double }, ptr %c, i32 0, i32 1, !dbg !17
+ store double 0.000000e+00, ptr %c.realp, align 8, !dbg !17
; SROA will split the complex double into two double values.
; Test that debug info for both values survives:
; CHECK: call void @llvm.dbg.value(metadata double 0.000000e+00,
; CHECK-SAME: metadata ![[C:[^,]*]],
; CHECK-SAME: metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64))
- store double 0.000000e+00, double* %c.imagp, align 8, !dbg !17
+ store double 0.000000e+00, ptr %c.imagp, align 8, !dbg !17
; CHECK: call void @llvm.dbg.value(metadata double 0.000000e+00,
; CHECK-SAME: metadata ![[C]],
; CHECK-SAME: metadata !DIExpression(DW_OP_LLVM_fragment, 64, 64))
;
; Source code:
; extern void bla1;
-; void *test1() {
-; void *x = &bla1;
+; ptr test1() {
+; ptr x = &bla1;
; return x;
; }
;
; extern const void bla2;
-; const void *test2() {
-; const void *x = &bla2;
+; const ptr test2() {
+; const ptr x = &bla2;
; return x;
; }
; Compilation flag:
@bla2 = external dso_local constant i8, align 1, !dbg !6
; Function Attrs: norecurse nounwind readnone
-define dso_local nonnull i8* @test1() local_unnamed_addr #0 !dbg !13 {
+define dso_local nonnull ptr @test1() local_unnamed_addr #0 !dbg !13 {
entry:
- call void @llvm.dbg.value(metadata i8* @bla1, metadata !18, metadata !DIExpression()), !dbg !19
- ret i8* @bla1, !dbg !20
+ call void @llvm.dbg.value(metadata ptr @bla1, metadata !18, metadata !DIExpression()), !dbg !19
+ ret ptr @bla1, !dbg !20
}
; Function Attrs: norecurse nounwind readnone
-define dso_local nonnull i8* @test2() local_unnamed_addr #0 !dbg !21 {
+define dso_local nonnull ptr @test2() local_unnamed_addr #0 !dbg !21 {
entry:
- call void @llvm.dbg.value(metadata i8* @bla2, metadata !26, metadata !DIExpression()), !dbg !27
- ret i8* @bla2, !dbg !28
+ call void @llvm.dbg.value(metadata ptr @bla2, metadata !26, metadata !DIExpression()), !dbg !27
+ ret ptr @bla2, !dbg !28
}
; CHECK: .quad bla1
%a = alloca i32, align 4
%b = alloca i32, align 4
%c = alloca i32, align 4
- store i32 %p, i32* %p.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %p.addr, metadata !15, metadata !DIExpression()), !dbg !16
- %0 = load i32, i32* %p.addr, align 4, !dbg !17
+ store i32 %p, ptr %p.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %p.addr, metadata !15, metadata !DIExpression()), !dbg !16
+ %0 = load i32, ptr %p.addr, align 4, !dbg !17
%tobool = icmp ne i32 %0, 0, !dbg !17
br i1 %tobool, label %if.then, label %if.else, !dbg !17
if.then: ; preds = %entry
- call void @llvm.dbg.declare(metadata i32* %a, metadata !18, metadata !DIExpression()), !dbg !21
+ call void @llvm.dbg.declare(metadata ptr %a, metadata !18, metadata !DIExpression()), !dbg !21
%call = call i32 @getint(), !dbg !21
- store i32 %call, i32* %a, align 4, !dbg !21
- call void @llvm.dbg.declare(metadata i32* %b, metadata !22, metadata !DIExpression()), !dbg !23
- %1 = load i32, i32* %a, align 4, !dbg !23
+ store i32 %call, ptr %a, align 4, !dbg !21
+ call void @llvm.dbg.declare(metadata ptr %b, metadata !22, metadata !DIExpression()), !dbg !23
+ %1 = load i32, ptr %a, align 4, !dbg !23
%call1 = call i32 @inlineinc(i32 %1), !dbg !23
- store i32 %call1, i32* %b, align 4, !dbg !23
- %2 = load i32, i32* %b, align 4, !dbg !24
+ store i32 %call1, ptr %b, align 4, !dbg !23
+ %2 = load i32, ptr %b, align 4, !dbg !24
call void @putint(i32 %2), !dbg !24
br label %if.end, !dbg !25
if.else: ; preds = %entry
- call void @llvm.dbg.declare(metadata i32* %c, metadata !26, metadata !DIExpression()), !dbg !28
+ call void @llvm.dbg.declare(metadata ptr %c, metadata !26, metadata !DIExpression()), !dbg !28
%call2 = call i32 @getint(), !dbg !28
- store i32 %call2, i32* %c, align 4, !dbg !28
- %3 = load i32, i32* %c, align 4, !dbg !29
+ store i32 %call2, ptr %c, align 4, !dbg !28
+ %3 = load i32, ptr %c, align 4, !dbg !29
call void @putint(i32 %3), !dbg !29
br label %if.end, !dbg !30
entry:
%a.addr = alloca i32, align 4
%b = alloca i32, align 4
- store i32 %a, i32* %a.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %a.addr, metadata !35, metadata !DIExpression()), !dbg !36
- call void @llvm.dbg.declare(metadata i32* %b, metadata !37, metadata !DIExpression()), !dbg !38
- %0 = load i32, i32* %a.addr, align 4, !dbg !38
+ store i32 %a, ptr %a.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %a.addr, metadata !35, metadata !DIExpression()), !dbg !36
+ call void @llvm.dbg.declare(metadata ptr %b, metadata !37, metadata !DIExpression()), !dbg !38
+ %0 = load i32, ptr %a.addr, align 4, !dbg !38
%add = add nsw i32 %0, 1, !dbg !38
- store i32 %add, i32* %b, align 4, !dbg !38
- %1 = load volatile i32, i32* @x, align 4, !dbg !39
+ store i32 %add, ptr %b, align 4, !dbg !38
+ %1 = load volatile i32, ptr @x, align 4, !dbg !39
%inc = add nsw i32 %1, 1, !dbg !39
- store volatile i32 %inc, i32* @x, align 4, !dbg !39
- %2 = load i32, i32* %b, align 4, !dbg !40
+ store volatile i32 %inc, ptr @x, align 4, !dbg !39
+ %2 = load i32, ptr %b, align 4, !dbg !40
ret i32 %2, !dbg !40
}
%a = alloca i32, align 4
%b = alloca i32, align 4
%c = alloca i32, align 4
- store i32 %p, i32* %p.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %p.addr, metadata !17, metadata !DIExpression()), !dbg !18
- %0 = load i32, i32* %p.addr, align 4, !dbg !19
+ store i32 %p, ptr %p.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %p.addr, metadata !17, metadata !DIExpression()), !dbg !18
+ %0 = load i32, ptr %p.addr, align 4, !dbg !19
%tobool = icmp ne i32 %0, 0, !dbg !19
br i1 %tobool, label %if.then, label %if.else, !dbg !19
if.then: ; preds = %entry
- call void @llvm.dbg.declare(metadata i32* %a, metadata !20, metadata !DIExpression()), !dbg !23
+ call void @llvm.dbg.declare(metadata ptr %a, metadata !20, metadata !DIExpression()), !dbg !23
%call = call arm_aapcs_vfpcc i32 @getint(), !dbg !23
- store i32 %call, i32* %a, align 4, !dbg !23
- call void @llvm.dbg.declare(metadata i32* %b, metadata !24, metadata !DIExpression()), !dbg !25
- %1 = load i32, i32* %a, align 4, !dbg !25
+ store i32 %call, ptr %a, align 4, !dbg !23
+ call void @llvm.dbg.declare(metadata ptr %b, metadata !24, metadata !DIExpression()), !dbg !25
+ %1 = load i32, ptr %a, align 4, !dbg !25
%call1 = call arm_aapcs_vfpcc i32 @inlineinc(i32 %1), !dbg !25
- store i32 %call1, i32* %b, align 4, !dbg !25
- %2 = load i32, i32* %b, align 4, !dbg !26
+ store i32 %call1, ptr %b, align 4, !dbg !25
+ %2 = load i32, ptr %b, align 4, !dbg !26
call arm_aapcs_vfpcc void @putint(i32 %2), !dbg !26
br label %if.end, !dbg !27
if.else: ; preds = %entry
- call void @llvm.dbg.declare(metadata i32* %c, metadata !28, metadata !DIExpression()), !dbg !30
+ call void @llvm.dbg.declare(metadata ptr %c, metadata !28, metadata !DIExpression()), !dbg !30
%call2 = call arm_aapcs_vfpcc i32 @getint(), !dbg !30
- store i32 %call2, i32* %c, align 4, !dbg !30
- %3 = load i32, i32* %c, align 4, !dbg !31
+ store i32 %call2, ptr %c, align 4, !dbg !30
+ %3 = load i32, ptr %c, align 4, !dbg !31
call arm_aapcs_vfpcc void @putint(i32 %3), !dbg !31
br label %if.end, !dbg !32
entry:
%a.addr = alloca i32, align 4
%b = alloca i32, align 4
- store i32 %a, i32* %a.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %a.addr, metadata !37, metadata !DIExpression()), !dbg !38
- call void @llvm.dbg.declare(metadata i32* %b, metadata !39, metadata !DIExpression()), !dbg !40
- %0 = load i32, i32* %a.addr, align 4, !dbg !40
+ store i32 %a, ptr %a.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %a.addr, metadata !37, metadata !DIExpression()), !dbg !38
+ call void @llvm.dbg.declare(metadata ptr %b, metadata !39, metadata !DIExpression()), !dbg !40
+ %0 = load i32, ptr %a.addr, align 4, !dbg !40
%add = add nsw i32 %0, 1, !dbg !40
- store i32 %add, i32* %b, align 4, !dbg !40
- %1 = load volatile i32, i32* @x, align 4, !dbg !41
+ store i32 %add, ptr %b, align 4, !dbg !40
+ %1 = load volatile i32, ptr @x, align 4, !dbg !41
%inc = add nsw i32 %1, 1, !dbg !41
- store volatile i32 %inc, i32* @x, align 4, !dbg !41
- %2 = load i32, i32* %b, align 4, !dbg !42
+ store volatile i32 %inc, ptr @x, align 4, !dbg !41
+ %2 = load i32, ptr %b, align 4, !dbg !42
ret i32 %2, !dbg !42
}
define void @"\01?fn1@@YAXXZ"() #0 !dbg !21 {
entry:
%a = alloca [1 x %union.YYSTYPE.0], align 1
- call void @llvm.dbg.declare(metadata [1 x %union.YYSTYPE.0]* %a, metadata !24, metadata !29), !dbg !30
+ call void @llvm.dbg.declare(metadata ptr %a, metadata !24, metadata !29), !dbg !30
ret void, !dbg !30
}
target datalayout = "e-m:w-p:32:32-i64:64-f80:32-n8:16:32-S32"
target triple = "i686-pc-win32"
-@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 1, void ()* @asan.module_ctor, i8* null }]
+@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 1, ptr @asan.module_ctor, ptr null }]
; Function Attrs: nounwind sanitize_address
define i32 @foo() #0 !dbg !4 {
target triple = "i686-pc-win32"
@c = global { i8, [63 x i8] } { i8 42, [63 x i8] zeroinitializer }, align 32
-@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 1, void ()* @asan.module_ctor, i8* null }]
+@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 1, ptr @asan.module_ctor, ptr null }]
@___asan_gen_ = private constant [7 x i8] c"asan.c\00", align 1
@___asan_gen_1 = private unnamed_addr constant [2 x i8] c"c\00", align 1
-@0 = internal global [1 x { i32, i32, i32, i32, i32, i32 }] [{ i32, i32, i32, i32, i32, i32 } { i32 ptrtoint ({ i8, [63 x i8] }* @c to i32), i32 1, i32 64, i32 ptrtoint ([2 x i8]* @___asan_gen_1 to i32), i32 ptrtoint ([7 x i8]* @___asan_gen_ to i32), i32 0 }]
-@llvm.global_dtors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 1, void ()* @asan.module_dtor, i8* null }]
+@0 = internal global [1 x { i32, i32, i32, i32, i32, i32 }] [{ i32, i32, i32, i32, i32, i32 } { i32 ptrtoint (ptr @c to i32), i32 1, i32 64, i32 ptrtoint (ptr @___asan_gen_1 to i32), i32 ptrtoint (ptr @___asan_gen_ to i32), i32 0 }]
+@llvm.global_dtors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 1, ptr @asan.module_dtor, ptr null }]
define internal void @asan.module_ctor() {
call void @__asan_init_v3()
- call void @__asan_register_globals(i32 ptrtoint ([1 x { i32, i32, i32, i32, i32, i32 }]* @0 to i32), i32 1)
+ call void @__asan_register_globals(i32 ptrtoint (ptr @0 to i32), i32 1)
ret void
}
declare void @__asan_unregister_globals(i32, i32)
define internal void @asan.module_dtor() {
- call void @__asan_unregister_globals(i32 ptrtoint ([1 x { i32, i32, i32, i32, i32, i32 }]* @0 to i32), i32 1)
+ call void @__asan_unregister_globals(i32 ptrtoint (ptr @0 to i32), i32 1)
ret void
}
@"?b@@3UBar@@A" = dso_local global %struct.Bar zeroinitializer, align 4, !dbg !6
; Function Attrs: noinline nounwind optnone uwtable
-define dso_local i8 @"?Func_EmptyClass@@YA?AVEmptyClass@@AEAV1@@Z"(%class.EmptyClass* dereferenceable(1) %arg) #0 !dbg !30 {
+define dso_local i8 @"?Func_EmptyClass@@YA?AVEmptyClass@@AEAV1@@Z"(ptr dereferenceable(1) %arg) #0 !dbg !30 {
entry:
%retval = alloca %class.EmptyClass, align 1
- %arg.addr = alloca %class.EmptyClass*, align 8
- store %class.EmptyClass* %arg, %class.EmptyClass** %arg.addr, align 8
- call void @llvm.dbg.declare(metadata %class.EmptyClass** %arg.addr, metadata !35, metadata !DIExpression()), !dbg !36
- %0 = load %class.EmptyClass*, %class.EmptyClass** %arg.addr, align 8, !dbg !36
- %coerce.dive = getelementptr inbounds %class.EmptyClass, %class.EmptyClass* %retval, i32 0, i32 0, !dbg !36
- %1 = load i8, i8* %coerce.dive, align 1, !dbg !36
+ %arg.addr = alloca ptr, align 8
+ store ptr %arg, ptr %arg.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %arg.addr, metadata !35, metadata !DIExpression()), !dbg !36
+ %0 = load ptr, ptr %arg.addr, align 8, !dbg !36
+ %1 = load i8, ptr %retval, align 1, !dbg !36
ret i8 %1, !dbg !36
}
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
; Function Attrs: noinline nounwind optnone uwtable
-define dso_local void @"?Func_ExplicitCtorClass@@YA?AVExplicitCtorClass@@AEAV1@@Z"(%class.ExplicitCtorClass* noalias sret(%class.ExplicitCtorClass) %agg.result, %class.ExplicitCtorClass* dereferenceable(1) %arg) #0 !dbg !37 {
+define dso_local void @"?Func_ExplicitCtorClass@@YA?AVExplicitCtorClass@@AEAV1@@Z"(ptr noalias sret(%class.ExplicitCtorClass) %agg.result, ptr dereferenceable(1) %arg) #0 !dbg !37 {
entry:
- %arg.addr = alloca %class.ExplicitCtorClass*, align 8
- store %class.ExplicitCtorClass* %arg, %class.ExplicitCtorClass** %arg.addr, align 8
- call void @llvm.dbg.declare(metadata %class.ExplicitCtorClass** %arg.addr, metadata !47, metadata !DIExpression()), !dbg !48
- %0 = load %class.ExplicitCtorClass*, %class.ExplicitCtorClass** %arg.addr, align 8, !dbg !48
+ %arg.addr = alloca ptr, align 8
+ store ptr %arg, ptr %arg.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %arg.addr, metadata !47, metadata !DIExpression()), !dbg !48
+ %0 = load ptr, ptr %arg.addr, align 8, !dbg !48
ret void, !dbg !48
}
; Function Attrs: noinline nounwind optnone uwtable
-define dso_local void @"?Func_DefaultedCtorClass@@YA?AVDefaultedCtorClass@@AEAV1@@Z"(%class.DefaultedCtorClass* noalias sret(%class.DefaultedCtorClass) %agg.result, %class.DefaultedCtorClass* dereferenceable(1) %arg) #0 !dbg !49 {
+define dso_local void @"?Func_DefaultedCtorClass@@YA?AVDefaultedCtorClass@@AEAV1@@Z"(ptr noalias sret(%class.DefaultedCtorClass) %agg.result, ptr dereferenceable(1) %arg) #0 !dbg !49 {
entry:
- %arg.addr = alloca %class.DefaultedCtorClass*, align 8
- store %class.DefaultedCtorClass* %arg, %class.DefaultedCtorClass** %arg.addr, align 8
- call void @llvm.dbg.declare(metadata %class.DefaultedCtorClass** %arg.addr, metadata !59, metadata !DIExpression()), !dbg !60
- %0 = load %class.DefaultedCtorClass*, %class.DefaultedCtorClass** %arg.addr, align 8, !dbg !60
+ %arg.addr = alloca ptr, align 8
+ store ptr %arg, ptr %arg.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %arg.addr, metadata !59, metadata !DIExpression()), !dbg !60
+ %0 = load ptr, ptr %arg.addr, align 8, !dbg !60
ret void, !dbg !60
}
; Function Attrs: noinline nounwind optnone uwtable
-define dso_local void @"?Func_DefaultArgumentCtorClass@@YA?AVDefaultArgumentCtorClass@@AEAV1@@Z"(%class.DefaultArgumentCtorClass* noalias sret(%class.DefaultArgumentCtorClass) %agg.result, %class.DefaultArgumentCtorClass* dereferenceable(1) %arg) #0 !dbg !61 {
+define dso_local void @"?Func_DefaultArgumentCtorClass@@YA?AVDefaultArgumentCtorClass@@AEAV1@@Z"(ptr noalias sret(%class.DefaultArgumentCtorClass) %agg.result, ptr dereferenceable(1) %arg) #0 !dbg !61 {
entry:
- %arg.addr = alloca %class.DefaultArgumentCtorClass*, align 8
- store %class.DefaultArgumentCtorClass* %arg, %class.DefaultArgumentCtorClass** %arg.addr, align 8
- call void @llvm.dbg.declare(metadata %class.DefaultArgumentCtorClass** %arg.addr, metadata !71, metadata !DIExpression()), !dbg !72
- %0 = load %class.DefaultArgumentCtorClass*, %class.DefaultArgumentCtorClass** %arg.addr, align 8, !dbg !72
+ %arg.addr = alloca ptr, align 8
+ store ptr %arg, ptr %arg.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %arg.addr, metadata !71, metadata !DIExpression()), !dbg !72
+ %0 = load ptr, ptr %arg.addr, align 8, !dbg !72
ret void, !dbg !72
}
; Function Attrs: noinline nounwind optnone uwtable
-define dso_local void @"?Func_UserDtorClass@@YA?AVUserDtorClass@@AEAV1@@Z"(%class.UserDtorClass* noalias sret(%class.UserDtorClass) %agg.result, %class.UserDtorClass* dereferenceable(1) %arg) #0 !dbg !73 {
+define dso_local void @"?Func_UserDtorClass@@YA?AVUserDtorClass@@AEAV1@@Z"(ptr noalias sret(%class.UserDtorClass) %agg.result, ptr dereferenceable(1) %arg) #0 !dbg !73 {
entry:
- %arg.addr = alloca %class.UserDtorClass*, align 8
- store %class.UserDtorClass* %arg, %class.UserDtorClass** %arg.addr, align 8
- call void @llvm.dbg.declare(metadata %class.UserDtorClass** %arg.addr, metadata !83, metadata !DIExpression()), !dbg !84
- %0 = load %class.UserDtorClass*, %class.UserDtorClass** %arg.addr, align 8, !dbg !84
+ %arg.addr = alloca ptr, align 8
+ store ptr %arg, ptr %arg.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %arg.addr, metadata !83, metadata !DIExpression()), !dbg !84
+ %0 = load ptr, ptr %arg.addr, align 8, !dbg !84
ret void, !dbg !84
}
; Function Attrs: noinline nounwind optnone uwtable
-define dso_local void @"?Func_DefaultedDtorClass@@YA?AVDefaultedDtorClass@@AEAV1@@Z"(%class.DefaultedDtorClass* noalias sret(%class.DefaultedDtorClass) %agg.result, %class.DefaultedDtorClass* dereferenceable(1) %arg) #0 !dbg !85 {
+define dso_local void @"?Func_DefaultedDtorClass@@YA?AVDefaultedDtorClass@@AEAV1@@Z"(ptr noalias sret(%class.DefaultedDtorClass) %agg.result, ptr dereferenceable(1) %arg) #0 !dbg !85 {
entry:
- %arg.addr = alloca %class.DefaultedDtorClass*, align 8
- store %class.DefaultedDtorClass* %arg, %class.DefaultedDtorClass** %arg.addr, align 8
- call void @llvm.dbg.declare(metadata %class.DefaultedDtorClass** %arg.addr, metadata !95, metadata !DIExpression()), !dbg !96
- %0 = load %class.DefaultedDtorClass*, %class.DefaultedDtorClass** %arg.addr, align 8, !dbg !96
+ %arg.addr = alloca ptr, align 8
+ store ptr %arg, ptr %arg.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %arg.addr, metadata !95, metadata !DIExpression()), !dbg !96
+ %0 = load ptr, ptr %arg.addr, align 8, !dbg !96
ret void, !dbg !96
}
; Function Attrs: noinline nounwind optnone uwtable
-define dso_local void @"?Func_AClass@@YA?AVAClass@@AEAV1@@Z"(%class.AClass* noalias sret(%class.AClass) %agg.result, %class.AClass* dereferenceable(1) %arg) #0 !dbg !97 {
+define dso_local void @"?Func_AClass@@YA?AVAClass@@AEAV1@@Z"(ptr noalias sret(%class.AClass) %agg.result, ptr dereferenceable(1) %arg) #0 !dbg !97 {
entry:
- %arg.addr = alloca %class.AClass*, align 8
- store %class.AClass* %arg, %class.AClass** %arg.addr, align 8
- call void @llvm.dbg.declare(metadata %class.AClass** %arg.addr, metadata !104, metadata !DIExpression()), !dbg !105
- %0 = load %class.AClass*, %class.AClass** %arg.addr, align 8, !dbg !105
+ %arg.addr = alloca ptr, align 8
+ store ptr %arg, ptr %arg.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %arg.addr, metadata !104, metadata !DIExpression()), !dbg !105
+ %0 = load ptr, ptr %arg.addr, align 8, !dbg !105
ret void, !dbg !105
}
; Function Attrs: noinline nounwind optnone uwtable
-define dso_local i8 @"?Func_BClass@@YA?AVBClass@@AEAV1@@Z"(%class.BClass* dereferenceable(1) %arg) #0 !dbg !106 {
+define dso_local i8 @"?Func_BClass@@YA?AVBClass@@AEAV1@@Z"(ptr dereferenceable(1) %arg) #0 !dbg !106 {
entry:
%retval = alloca %class.BClass, align 1
- %arg.addr = alloca %class.BClass*, align 8
- store %class.BClass* %arg, %class.BClass** %arg.addr, align 8
- call void @llvm.dbg.declare(metadata %class.BClass** %arg.addr, metadata !113, metadata !DIExpression()), !dbg !114
- %0 = load %class.BClass*, %class.BClass** %arg.addr, align 8, !dbg !114
- %coerce.dive = getelementptr inbounds %class.BClass, %class.BClass* %retval, i32 0, i32 0, !dbg !114
- %1 = load i8, i8* %coerce.dive, align 1, !dbg !114
+ %arg.addr = alloca ptr, align 8
+ store ptr %arg, ptr %arg.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %arg.addr, metadata !113, metadata !DIExpression()), !dbg !114
+ %0 = load ptr, ptr %arg.addr, align 8, !dbg !114
+ %1 = load i8, ptr %retval, align 1, !dbg !114
ret i8 %1, !dbg !114
}
; Function Attrs: noinline nounwind optnone uwtable
-define dso_local i8 @"?Func_AStruct@@YA?AUAStruct@@AEAU1@@Z"(%struct.AStruct* dereferenceable(1) %arg) #0 !dbg !115 {
+define dso_local i8 @"?Func_AStruct@@YA?AUAStruct@@AEAU1@@Z"(ptr dereferenceable(1) %arg) #0 !dbg !115 {
entry:
%retval = alloca %struct.AStruct, align 1
- %arg.addr = alloca %struct.AStruct*, align 8
- store %struct.AStruct* %arg, %struct.AStruct** %arg.addr, align 8
- call void @llvm.dbg.declare(metadata %struct.AStruct** %arg.addr, metadata !120, metadata !DIExpression()), !dbg !121
- %0 = load %struct.AStruct*, %struct.AStruct** %arg.addr, align 8, !dbg !121
- %coerce.dive = getelementptr inbounds %struct.AStruct, %struct.AStruct* %retval, i32 0, i32 0, !dbg !121
- %1 = load i8, i8* %coerce.dive, align 1, !dbg !121
+ %arg.addr = alloca ptr, align 8
+ store ptr %arg, ptr %arg.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %arg.addr, metadata !120, metadata !DIExpression()), !dbg !121
+ %0 = load ptr, ptr %arg.addr, align 8, !dbg !121
+ %1 = load i8, ptr %retval, align 1, !dbg !121
ret i8 %1, !dbg !121
}
; Function Attrs: noinline nounwind optnone uwtable
-define dso_local void @"?Func_BStruct@@YA?AUBStruct@@AEAU1@@Z"(%struct.BStruct* noalias sret(%struct.BStruct) %agg.result, %struct.BStruct* dereferenceable(1) %arg) #0 !dbg !122 {
+define dso_local void @"?Func_BStruct@@YA?AUBStruct@@AEAU1@@Z"(ptr noalias sret(%struct.BStruct) %agg.result, ptr dereferenceable(1) %arg) #0 !dbg !122 {
entry:
- %arg.addr = alloca %struct.BStruct*, align 8
- store %struct.BStruct* %arg, %struct.BStruct** %arg.addr, align 8
- call void @llvm.dbg.declare(metadata %struct.BStruct** %arg.addr, metadata !132, metadata !DIExpression()), !dbg !133
- %0 = load %struct.BStruct*, %struct.BStruct** %arg.addr, align 8, !dbg !133
+ %arg.addr = alloca ptr, align 8
+ store ptr %arg, ptr %arg.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %arg.addr, metadata !132, metadata !DIExpression()), !dbg !133
+ %0 = load ptr, ptr %arg.addr, align 8, !dbg !133
ret void, !dbg !133
}
define dso_local void @"?S@@YAXXZ"() #0 !dbg !134 {
entry:
%s = alloca %struct.ComplexStruct, align 1
- call void @llvm.dbg.declare(metadata %struct.ComplexStruct* %s, metadata !137, metadata !DIExpression()), !dbg !142
+ call void @llvm.dbg.declare(metadata ptr %s, metadata !137, metadata !DIExpression()), !dbg !142
ret void, !dbg !143
}
; Function Attrs: noinline nounwind optnone uwtable
-define dso_local i8 @"?Func_AUnion@@YA?ATAUnion@@AEAT1@@Z"(%union.AUnion* dereferenceable(1) %arg) #0 !dbg !144 {
+define dso_local i8 @"?Func_AUnion@@YA?ATAUnion@@AEAT1@@Z"(ptr dereferenceable(1) %arg) #0 !dbg !144 {
entry:
%retval = alloca %union.AUnion, align 1
- %arg.addr = alloca %union.AUnion*, align 8
- store %union.AUnion* %arg, %union.AUnion** %arg.addr, align 8
- call void @llvm.dbg.declare(metadata %union.AUnion** %arg.addr, metadata !149, metadata !DIExpression()), !dbg !150
- %0 = load %union.AUnion*, %union.AUnion** %arg.addr, align 8, !dbg !150
- %coerce.dive = getelementptr inbounds %union.AUnion, %union.AUnion* %retval, i32 0, i32 0, !dbg !150
- %1 = load i8, i8* %coerce.dive, align 1, !dbg !150
+ %arg.addr = alloca ptr, align 8
+ store ptr %arg, ptr %arg.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %arg.addr, metadata !149, metadata !DIExpression()), !dbg !150
+ %0 = load ptr, ptr %arg.addr, align 8, !dbg !150
+ %1 = load i8, ptr %retval, align 1, !dbg !150
ret i8 %1, !dbg !150
}
; Function Attrs: noinline nounwind optnone uwtable
-define dso_local void @"?Func_BUnion@@YA?ATBUnion@@AEAT1@@Z"(%union.BUnion* noalias sret(%union.BUnion) %agg.result, %union.BUnion* dereferenceable(1) %arg) #0 !dbg !151 {
+define dso_local void @"?Func_BUnion@@YA?ATBUnion@@AEAT1@@Z"(ptr noalias sret(%union.BUnion) %agg.result, ptr dereferenceable(1) %arg) #0 !dbg !151 {
entry:
- %arg.addr = alloca %union.BUnion*, align 8
- store %union.BUnion* %arg, %union.BUnion** %arg.addr, align 8
- call void @llvm.dbg.declare(metadata %union.BUnion** %arg.addr, metadata !161, metadata !DIExpression()), !dbg !162
- %0 = load %union.BUnion*, %union.BUnion** %arg.addr, align 8, !dbg !162
+ %arg.addr = alloca ptr, align 8
+ store ptr %arg, ptr %arg.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %arg.addr, metadata !161, metadata !DIExpression()), !dbg !162
+ %0 = load ptr, ptr %arg.addr, align 8, !dbg !162
ret void, !dbg !162
}
define dso_local void @"?U@@YAXXZ"() #0 !dbg !163 {
entry:
%c = alloca %union.ComplexUnion, align 4
- call void @llvm.dbg.declare(metadata %union.ComplexUnion* %c, metadata !164, metadata !DIExpression()), !dbg !172
+ call void @llvm.dbg.declare(metadata ptr %c, metadata !164, metadata !DIExpression()), !dbg !172
ret void, !dbg !173
}
; Function Attrs: norecurse nounwind uwtable
define void @bar() #0 !dbg !7 {
entry:
- %0 = load volatile i32, i32* @x, align 4, !dbg !10, !tbaa !11
+ %0 = load volatile i32, ptr @x, align 4, !dbg !10, !tbaa !11
%inc = add nsw i32 %0, 1, !dbg !10
- store volatile i32 %inc, i32* @x, align 4, !dbg !10, !tbaa !11
+ store volatile i32 %inc, ptr @x, align 4, !dbg !10, !tbaa !11
ret void, !dbg !15
}
}
; Function Attrs: inlinehint noinline nounwind uwtable
-define linkonce_odr void @f(i32 %c) #2 comdat personality i8* bitcast (i32 (...)* @__C_specific_handler to i8*) !dbg !22 {
+define linkonce_odr void @f(i32 %c) #2 comdat personality ptr @__C_specific_handler !dbg !22 {
entry:
tail call void @llvm.dbg.value(metadata i32 %c, metadata !26, metadata !27), !dbg !28
- %0 = load volatile i32, i32* @x, align 4, !dbg !29, !tbaa !11
+ %0 = load volatile i32, ptr @x, align 4, !dbg !29, !tbaa !11
%inc = add nsw i32 %0, 1, !dbg !29
- store volatile i32 %inc, i32* @x, align 4, !dbg !29, !tbaa !11
+ store volatile i32 %inc, ptr @x, align 4, !dbg !29, !tbaa !11
%tobool = icmp eq i32 %c, 0, !dbg !30
br i1 %tobool, label %if.else, label %if.then, !dbg !32
if.then: ; preds = %entry
- invoke void bitcast (void (...)* @foo to void ()*)() #6
+ invoke void @foo() #6
to label %invoke.cont unwind label %ehcleanup, !dbg !33
invoke.cont: ; preds = %if.then
br label %if.end
if.end: ; preds = %if.else, %invoke.cont
- %2 = load volatile i32, i32* @x, align 4, !dbg !39, !tbaa !11
+ %2 = load volatile i32, ptr @x, align 4, !dbg !39, !tbaa !11
%inc1 = add nsw i32 %2, 1, !dbg !39
- store volatile i32 %inc1, i32* @x, align 4, !dbg !39, !tbaa !11
+ store volatile i32 %inc1, ptr @x, align 4, !dbg !39, !tbaa !11
ret void, !dbg !40
}
; Function Attrs: nounwind
define internal fastcc void @"\01?fin$0@0@f@@"() unnamed_addr #3 comdat($f) !dbg !41 {
entry:
- tail call void @llvm.dbg.value(metadata i8* null, metadata !44, metadata !27), !dbg !48
+ tail call void @llvm.dbg.value(metadata ptr null, metadata !44, metadata !27), !dbg !48
tail call void @llvm.dbg.value(metadata i8 0, metadata !46, metadata !27), !dbg !48
- %0 = load volatile i32, i32* @x, align 4, !dbg !49, !tbaa !11
+ %0 = load volatile i32, ptr @x, align 4, !dbg !49, !tbaa !11
%inc = add nsw i32 %0, 1, !dbg !49
- store volatile i32 %inc, i32* @x, align 4, !dbg !49, !tbaa !11
+ store volatile i32 %inc, ptr @x, align 4, !dbg !49, !tbaa !11
ret void, !dbg !51
}
define i32 @"\01?bar@foo@@YAHH@Z"(i32 %x) #0 !dbg !6 {
entry:
%x.addr = alloca i32, align 4
- store i32 %x, i32* %x.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %x.addr, metadata !11, metadata !12), !dbg !13
- %0 = load i32, i32* %x.addr, align 4, !dbg !14
+ store i32 %x, ptr %x.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %x.addr, metadata !11, metadata !12), !dbg !13
+ %0 = load i32, ptr %x.addr, align 4, !dbg !14
%mul = mul nsw i32 %0, 2, !dbg !15
ret i32 %mul, !dbg !16
}
}
; Function Attrs: nounwind
-define linkonce_odr void @"??6S@@QAEXH@Z"(%struct.S* nonnull dereferenceable(1) %this, i32 %i) #0 !dbg !31 {
+define linkonce_odr void @"??6S@@QAEXH@Z"(ptr nonnull dereferenceable(1) %this, i32 %i) #0 !dbg !31 {
entry:
%i.addr = alloca i32, align 4
- %this.addr = alloca %struct.S*, align 4
- store i32 %i, i32* %i.addr, align 4
- store %struct.S* %this, %struct.S** %this.addr, align 4
- %this1 = load %struct.S*, %struct.S** %this.addr, align 4
+ %this.addr = alloca ptr, align 4
+ store i32 %i, ptr %i.addr, align 4
+ store ptr %this, ptr %this.addr, align 4
+ %this1 = load ptr, ptr %this.addr, align 4
ret void, !dbg !32
}
!19 = !{null}
!20 = !{!21, !22}
!21 = !DITemplateTypeParameter(name: "T", type: !10)
-!22 = !DITemplateValueParameter(type: !23, value: i32 (i32)* @"\01?bar@foo@@YAHH@Z")
+!22 = !DITemplateValueParameter(type: !23, value: ptr @"\01?bar@foo@@YAHH@Z")
!23 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !8, size: 32, align: 32)
!24 = !DILocation(line: 4, column: 17, scope: !17)
!25 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "S", file: !1, line: 7, size: 8, flags: DIFlagTypePassByValue, elements: !26, identifier: ".?AUS@@")
target datalayout = "e-m:w-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-windows-msvc19.0.23918"
-%struct.A = type { %struct.B* }
+%struct.A = type { ptr }
%struct.B = type { i32 }
; Function Attrs: nounwind uwtable
-define i32 @"\01?f@@YAHPEAUA@@@Z"(%struct.A* %p) #0 !dbg !7 {
+define i32 @"\01?f@@YAHPEAUA@@@Z"(ptr %p) #0 !dbg !7 {
entry:
- %p.addr = alloca %struct.A*, align 8
- store %struct.A* %p, %struct.A** %p.addr, align 8
- call void @llvm.dbg.declare(metadata %struct.A** %p.addr, metadata !19, metadata !20), !dbg !21
- %0 = load %struct.A*, %struct.A** %p.addr, align 8, !dbg !22
- %b = getelementptr inbounds %struct.A, %struct.A* %0, i32 0, i32 0, !dbg !23
- %1 = load %struct.B*, %struct.B** %b, align 8, !dbg !23
- %b1 = getelementptr inbounds %struct.B, %struct.B* %1, i32 0, i32 0, !dbg !24
- %2 = load i32, i32* %b1, align 4, !dbg !24
+ %p.addr = alloca ptr, align 8
+ store ptr %p, ptr %p.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %p.addr, metadata !19, metadata !20), !dbg !21
+ %0 = load ptr, ptr %p.addr, align 8, !dbg !22
+ %1 = load ptr, ptr %0, align 8, !dbg !23
+ %2 = load i32, ptr %1, align 4, !dbg !24
ret i32 %2, !dbg !25
}
%"union.Func()::Struct::Union" = type { i8 }
; Function Attrs: noinline nounwind optnone uwtable
-define dso_local i32 @"?Func_Enum@@YA?AW4Enum@@AEAW41@@Z"(i32* dereferenceable(4) %arg) #0 !dbg !30 {
+define dso_local i32 @"?Func_Enum@@YA?AW4Enum@@AEAW41@@Z"(ptr dereferenceable(4) %arg) #0 !dbg !30 {
entry:
- %arg.addr = alloca i32*, align 8
- store i32* %arg, i32** %arg.addr, align 8
- call void @llvm.dbg.declare(metadata i32** %arg.addr, metadata !34, metadata !DIExpression()), !dbg !35
- %0 = load i32*, i32** %arg.addr, align 8, !dbg !35
- %1 = load i32, i32* %0, align 4, !dbg !35
+ %arg.addr = alloca ptr, align 8
+ store ptr %arg, ptr %arg.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %arg.addr, metadata !34, metadata !DIExpression()), !dbg !35
+ %0 = load ptr, ptr %arg.addr, align 8, !dbg !35
+ %1 = load i32, ptr %0, align 4, !dbg !35
ret i32 %1, !dbg !35
}
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
; Function Attrs: noinline nounwind optnone uwtable
-define dso_local i32 @"?Func_EnumClass@@YA?AW4EnumClass@@AEAW41@@Z"(i32* dereferenceable(4) %arg) #0 !dbg !36 {
+define dso_local i32 @"?Func_EnumClass@@YA?AW4EnumClass@@AEAW41@@Z"(ptr dereferenceable(4) %arg) #0 !dbg !36 {
entry:
- %arg.addr = alloca i32*, align 8
- store i32* %arg, i32** %arg.addr, align 8
- call void @llvm.dbg.declare(metadata i32** %arg.addr, metadata !40, metadata !DIExpression()), !dbg !41
- %0 = load i32*, i32** %arg.addr, align 8, !dbg !41
- %1 = load i32, i32* %0, align 4, !dbg !41
+ %arg.addr = alloca ptr, align 8
+ store ptr %arg, ptr %arg.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %arg.addr, metadata !40, metadata !DIExpression()), !dbg !41
+ %0 = load ptr, ptr %arg.addr, align 8, !dbg !41
+ %1 = load i32, ptr %0, align 4, !dbg !41
ret i32 %1, !dbg !41
}
entry:
%SE = alloca i32, align 4
%S = alloca %struct.Struct, align 1
- call void @llvm.dbg.declare(metadata i32* %SE, metadata !42, metadata !DIExpression()), !dbg !43
- call void @llvm.dbg.declare(metadata %struct.Struct* %S, metadata !44, metadata !DIExpression()), !dbg !45
+ call void @llvm.dbg.declare(metadata ptr %SE, metadata !42, metadata !DIExpression()), !dbg !43
+ call void @llvm.dbg.declare(metadata ptr %S, metadata !44, metadata !DIExpression()), !dbg !45
ret void, !dbg !46
}
define void @MAIN__() #0 !dbg !3 {
alloca_0:
%"$io_ctx" = alloca [6 x i64], align 8
- %strlit_fetch.1 = load [6 x i8], [6 x i8]* @strlit, align 1, !dbg !39
- %func_result = call i32 @for_set_reentrancy(i32* @0), !dbg !39
- store i32 1, i32* getelementptr inbounds ([10 x i32], [10 x i32]* @"ARRAY$ARRAY1", i32 0, i32 0), align 1, !dbg !40
- store i32 2, i32* getelementptr inbounds ([8 x i32], [8 x i32]* @"ARRAY$ARRAY2", i32 0, i32 0), align 1, !dbg !41
- store double 8.000000e+00, double* bitcast ([18 x i8]* @COM to double*), align 1, !dbg !42
- store i32 -1, i32* bitcast (i8* getelementptr inbounds ([18 x i8], [18 x i8]* @COM, i32 0, i64 8) to i32*), align 1, !dbg !43
- call void @llvm.for.cpystr.i64.i64.i64(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @COM, i32 0, i64 12), i64 6, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @strlit, i32 0, i32 0), i64 3, i64 0, i1 false), !dbg !44
+ %strlit_fetch.1 = load [6 x i8], ptr @strlit, align 1, !dbg !39
+ %func_result = call i32 @for_set_reentrancy(ptr @0), !dbg !39
+ store i32 1, ptr @"ARRAY$ARRAY1", align 1, !dbg !40
+ store i32 2, ptr @"ARRAY$ARRAY2", align 1, !dbg !41
+ store double 8.000000e+00, ptr @COM, align 1, !dbg !42
+ store i32 -1, ptr getelementptr inbounds ([18 x i8], ptr @COM, i32 0, i64 8), align 1, !dbg !43
+ call void @llvm.for.cpystr.i64.i64.i64(ptr getelementptr inbounds ([18 x i8], ptr @COM, i32 0, i64 12), i64 6, ptr @strlit, i64 3, i64 0, i1 false), !dbg !44
ret void, !dbg !45
}
-declare i32 @for_set_reentrancy(i32* nocapture readonly)
+declare i32 @for_set_reentrancy(ptr nocapture readonly)
; Function Attrs: nounwind readnone speculatable
-declare i32* @llvm.intel.subscript.p0i32.i64.i64.p0i32.i64(i8, i64, i64, i32*, i64) #1
+declare ptr @llvm.intel.subscript.p0.i64.i64.p0.i64(i8, i64, i64, ptr, i64) #1
; Function Attrs: argmemonly nofree nosync nounwind willreturn
-declare void @llvm.for.cpystr.i64.i64.i64(i8* noalias nocapture writeonly, i64, i8* noalias nocapture readonly, i64, i64, i1 immarg) #2
+declare void @llvm.for.cpystr.i64.i64.i64(ptr noalias nocapture writeonly, i64, ptr noalias nocapture readonly, i64, i64, i1 immarg) #2
attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="none" "intel-lang"="fortran" "min-legal-vector-width"="0" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" }
attributes #1 = { nounwind readnone speculatable }
target datalayout = "e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-windows-msvc"
-@"IF_TEST$A" = internal global i32* null, align 8, !dbg !0
+@"IF_TEST$A" = internal global ptr null, align 8, !dbg !0
@0 = internal unnamed_addr constant i32 65536
@1 = internal unnamed_addr constant i32 2
; Function Attrs: nounwind uwtable
define void @MAIN__() local_unnamed_addr #0 !dbg !2 {
alloca_0:
- %func_result = tail call i32 @for_set_fpe_(i32* nonnull @0) #4, !dbg !22
- %func_result2 = tail call i32 @for_set_reentrancy(i32* nonnull @1) #4, !dbg !22
- %func_result4 = tail call i32 @for_alloc_allocatable(i64 4, i8** bitcast (i32** @"IF_TEST$A" to i8**), i32 262144) #4, !dbg !23
- %"IF_TEST$A_fetch.1" = load i32*, i32** @"IF_TEST$A", align 8, !dbg !24, !tbaa !25
- call void @llvm.dbg.declare(metadata i32* %"IF_TEST$A_fetch.1", metadata !29, metadata !DIExpression()), !dbg !33
+ %func_result = tail call i32 @for_set_fpe_(ptr nonnull @0) #4, !dbg !22
+ %func_result2 = tail call i32 @for_set_reentrancy(ptr nonnull @1) #4, !dbg !22
+ %func_result4 = tail call i32 @for_alloc_allocatable(i64 4, ptr @"IF_TEST$A", i32 262144) #4, !dbg !23
+ %"IF_TEST$A_fetch.1" = load ptr, ptr @"IF_TEST$A", align 8, !dbg !24, !tbaa !25
+ call void @llvm.dbg.declare(metadata ptr %"IF_TEST$A_fetch.1", metadata !29, metadata !DIExpression()), !dbg !33
call void @llvm.dbg.value(metadata i32 1, metadata !32, metadata !DIExpression()), !dbg !35
- store i32 1, i32* %"IF_TEST$A_fetch.1", align 1, !dbg !36, !tbaa !37, !alias.scope !41
+ store i32 1, ptr %"IF_TEST$A_fetch.1", align 1, !dbg !36, !tbaa !37, !alias.scope !41
ret void, !dbg !44
}
; Function Attrs: mustprogress nofree norecurse nosync nounwind uwtable willreturn writeonly
-define void @IF_TEST_ip_SUB(i32* noalias nocapture dereferenceable(4) %AA) local_unnamed_addr #1 !dbg !30 {
+define void @IF_TEST_ip_SUB(ptr noalias nocapture dereferenceable(4) %AA) local_unnamed_addr #1 !dbg !30 {
alloca_1:
- call void @llvm.dbg.declare(metadata i32* %AA, metadata !29, metadata !DIExpression()), !dbg !45
+ call void @llvm.dbg.declare(metadata ptr %AA, metadata !29, metadata !DIExpression()), !dbg !45
call void @llvm.dbg.value(metadata i32 1, metadata !32, metadata !DIExpression()), !dbg !46
- store i32 1, i32* %AA, align 1, !dbg !47, !tbaa !37
+ store i32 1, ptr %AA, align 1, !dbg !47, !tbaa !37
ret void, !dbg !48
}
-declare i32 @for_set_fpe_(i32* nocapture readonly) local_unnamed_addr
+declare i32 @for_set_fpe_(ptr nocapture readonly) local_unnamed_addr
; Function Attrs: nofree
-declare i32 @for_set_reentrancy(i32* nocapture readonly) local_unnamed_addr #2
+declare i32 @for_set_reentrancy(ptr nocapture readonly) local_unnamed_addr #2
; Function Attrs: nofree
-declare i32 @for_alloc_allocatable(i64, i8** nocapture, i32) local_unnamed_addr #2
+declare i32 @for_alloc_allocatable(i64, ptr nocapture, i32) local_unnamed_addr #2
; Function Attrs: mustprogress nofree nosync nounwind readnone speculatable willreturn
declare void @llvm.dbg.declare(metadata, metadata, metadata) #3
define void @cdecl1(i32 %a) #0 !dbg !8 {
entry:
%a.addr = alloca i32, align 4
- store i32 %a, i32* %a.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %a.addr, metadata !12, metadata !DIExpression()), !dbg !13
- %0 = load i32, i32* %a.addr, align 4, !dbg !14
- %1 = load i32, i32* @g, align 4, !dbg !15
+ store i32 %a, ptr %a.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %a.addr, metadata !12, metadata !DIExpression()), !dbg !13
+ %0 = load i32, ptr %a.addr, align 4, !dbg !14
+ %1 = load i32, ptr @g, align 4, !dbg !15
%add = add nsw i32 %1, %0, !dbg !15
- store i32 %add, i32* @g, align 4, !dbg !15
+ store i32 %add, ptr @g, align 4, !dbg !15
ret void, !dbg !16
}
entry:
%b.addr = alloca i32, align 4
%a.addr = alloca i32, align 4
- store i32 %b, i32* %b.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %b.addr, metadata !20, metadata !DIExpression()), !dbg !21
- store i32 %a, i32* %a.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %a.addr, metadata !22, metadata !DIExpression()), !dbg !23
- %0 = load i32, i32* %a.addr, align 4, !dbg !24
- %1 = load i32, i32* %b.addr, align 4, !dbg !25
+ store i32 %b, ptr %b.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %b.addr, metadata !20, metadata !DIExpression()), !dbg !21
+ store i32 %a, ptr %a.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %a.addr, metadata !22, metadata !DIExpression()), !dbg !23
+ %0 = load i32, ptr %a.addr, align 4, !dbg !24
+ %1 = load i32, ptr %b.addr, align 4, !dbg !25
%add = add nsw i32 %0, %1, !dbg !26
- %2 = load i32, i32* @g, align 4, !dbg !27
+ %2 = load i32, ptr @g, align 4, !dbg !27
%add1 = add nsw i32 %2, %add, !dbg !27
- store i32 %add1, i32* @g, align 4, !dbg !27
+ store i32 %add1, ptr @g, align 4, !dbg !27
ret void, !dbg !28
}
%c.addr = alloca i32, align 4
%b.addr = alloca i32, align 4
%a.addr = alloca i32, align 4
- store i32 %c, i32* %c.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %c.addr, metadata !32, metadata !DIExpression()), !dbg !33
- store i32 %b, i32* %b.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %b.addr, metadata !34, metadata !DIExpression()), !dbg !35
- store i32 %a, i32* %a.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %a.addr, metadata !36, metadata !DIExpression()), !dbg !37
- %0 = load i32, i32* %a.addr, align 4, !dbg !38
- %1 = load i32, i32* %b.addr, align 4, !dbg !39
+ store i32 %c, ptr %c.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %c.addr, metadata !32, metadata !DIExpression()), !dbg !33
+ store i32 %b, ptr %b.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %b.addr, metadata !34, metadata !DIExpression()), !dbg !35
+ store i32 %a, ptr %a.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %a.addr, metadata !36, metadata !DIExpression()), !dbg !37
+ %0 = load i32, ptr %a.addr, align 4, !dbg !38
+ %1 = load i32, ptr %b.addr, align 4, !dbg !39
%add = add nsw i32 %0, %1, !dbg !40
- %2 = load i32, i32* %c.addr, align 4, !dbg !41
+ %2 = load i32, ptr %c.addr, align 4, !dbg !41
%add1 = add nsw i32 %add, %2, !dbg !42
- %3 = load i32, i32* @g, align 4, !dbg !43
+ %3 = load i32, ptr @g, align 4, !dbg !43
%add2 = add nsw i32 %3, %add1, !dbg !43
- store i32 %add2, i32* @g, align 4, !dbg !43
+ store i32 %add2, ptr @g, align 4, !dbg !43
ret void, !dbg !44
}
define x86_fastcallcc void @"\01@fastcall1@4"(i32 inreg %a) #0 !dbg !45 {
entry:
%a.addr = alloca i32, align 4
- store i32 %a, i32* %a.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %a.addr, metadata !47, metadata !DIExpression()), !dbg !48
- %0 = load i32, i32* %a.addr, align 4, !dbg !49
- %1 = load i32, i32* @g, align 4, !dbg !50
+ store i32 %a, ptr %a.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %a.addr, metadata !47, metadata !DIExpression()), !dbg !48
+ %0 = load i32, ptr %a.addr, align 4, !dbg !49
+ %1 = load i32, ptr @g, align 4, !dbg !50
%add = add nsw i32 %1, %0, !dbg !50
- store i32 %add, i32* @g, align 4, !dbg !50
+ store i32 %add, ptr @g, align 4, !dbg !50
ret void, !dbg !51
}
entry:
%b.addr = alloca i32, align 4
%a.addr = alloca i32, align 4
- store i32 %b, i32* %b.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %b.addr, metadata !54, metadata !DIExpression()), !dbg !55
- store i32 %a, i32* %a.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %a.addr, metadata !56, metadata !DIExpression()), !dbg !57
- %0 = load i32, i32* %a.addr, align 4, !dbg !58
- %1 = load i32, i32* %b.addr, align 4, !dbg !59
+ store i32 %b, ptr %b.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %b.addr, metadata !54, metadata !DIExpression()), !dbg !55
+ store i32 %a, ptr %a.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %a.addr, metadata !56, metadata !DIExpression()), !dbg !57
+ %0 = load i32, ptr %a.addr, align 4, !dbg !58
+ %1 = load i32, ptr %b.addr, align 4, !dbg !59
%add = add nsw i32 %0, %1, !dbg !60
- %2 = load i32, i32* @g, align 4, !dbg !61
+ %2 = load i32, ptr @g, align 4, !dbg !61
%add1 = add nsw i32 %2, %add, !dbg !61
- store i32 %add1, i32* @g, align 4, !dbg !61
+ store i32 %add1, ptr @g, align 4, !dbg !61
ret void, !dbg !62
}
%c.addr = alloca i32, align 4
%b.addr = alloca i32, align 4
%a.addr = alloca i32, align 4
- store i32 %c, i32* %c.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %c.addr, metadata !65, metadata !DIExpression()), !dbg !66
- store i32 %b, i32* %b.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %b.addr, metadata !67, metadata !DIExpression()), !dbg !68
- store i32 %a, i32* %a.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %a.addr, metadata !69, metadata !DIExpression()), !dbg !70
- %0 = load i32, i32* %a.addr, align 4, !dbg !71
- %1 = load i32, i32* %b.addr, align 4, !dbg !72
+ store i32 %c, ptr %c.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %c.addr, metadata !65, metadata !DIExpression()), !dbg !66
+ store i32 %b, ptr %b.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %b.addr, metadata !67, metadata !DIExpression()), !dbg !68
+ store i32 %a, ptr %a.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %a.addr, metadata !69, metadata !DIExpression()), !dbg !70
+ %0 = load i32, ptr %a.addr, align 4, !dbg !71
+ %1 = load i32, ptr %b.addr, align 4, !dbg !72
%add = add nsw i32 %0, %1, !dbg !73
- %2 = load i32, i32* %c.addr, align 4, !dbg !74
+ %2 = load i32, ptr %c.addr, align 4, !dbg !74
%add1 = add nsw i32 %add, %2, !dbg !75
- %3 = load i32, i32* @g, align 4, !dbg !76
+ %3 = load i32, ptr @g, align 4, !dbg !76
%add2 = add nsw i32 %3, %add1, !dbg !76
- store i32 %add2, i32* @g, align 4, !dbg !76
+ store i32 %add2, ptr @g, align 4, !dbg !76
ret void, !dbg !77
}
define x86_stdcallcc void @"\01_stdcall1@4"(i32 %a) #0 !dbg !78 {
entry:
%a.addr = alloca i32, align 4
- store i32 %a, i32* %a.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %a.addr, metadata !80, metadata !DIExpression()), !dbg !81
- %0 = load i32, i32* %a.addr, align 4, !dbg !82
- %1 = load i32, i32* @g, align 4, !dbg !83
+ store i32 %a, ptr %a.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %a.addr, metadata !80, metadata !DIExpression()), !dbg !81
+ %0 = load i32, ptr %a.addr, align 4, !dbg !82
+ %1 = load i32, ptr @g, align 4, !dbg !83
%add = add nsw i32 %1, %0, !dbg !83
- store i32 %add, i32* @g, align 4, !dbg !83
+ store i32 %add, ptr @g, align 4, !dbg !83
ret void, !dbg !84
}
entry:
%b.addr = alloca i32, align 4
%a.addr = alloca i32, align 4
- store i32 %b, i32* %b.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %b.addr, metadata !87, metadata !DIExpression()), !dbg !88
- store i32 %a, i32* %a.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %a.addr, metadata !89, metadata !DIExpression()), !dbg !90
- %0 = load i32, i32* %a.addr, align 4, !dbg !91
- %1 = load i32, i32* %b.addr, align 4, !dbg !92
+ store i32 %b, ptr %b.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %b.addr, metadata !87, metadata !DIExpression()), !dbg !88
+ store i32 %a, ptr %a.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %a.addr, metadata !89, metadata !DIExpression()), !dbg !90
+ %0 = load i32, ptr %a.addr, align 4, !dbg !91
+ %1 = load i32, ptr %b.addr, align 4, !dbg !92
%add = add nsw i32 %0, %1, !dbg !93
- %2 = load i32, i32* @g, align 4, !dbg !94
+ %2 = load i32, ptr @g, align 4, !dbg !94
%add1 = add nsw i32 %2, %add, !dbg !94
- store i32 %add1, i32* @g, align 4, !dbg !94
+ store i32 %add1, ptr @g, align 4, !dbg !94
ret void, !dbg !95
}
%c.addr = alloca i32, align 4
%b.addr = alloca i32, align 4
%a.addr = alloca i32, align 4
- store i32 %c, i32* %c.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %c.addr, metadata !98, metadata !DIExpression()), !dbg !99
- store i32 %b, i32* %b.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %b.addr, metadata !100, metadata !DIExpression()), !dbg !101
- store i32 %a, i32* %a.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %a.addr, metadata !102, metadata !DIExpression()), !dbg !103
- %0 = load i32, i32* %a.addr, align 4, !dbg !104
- %1 = load i32, i32* %b.addr, align 4, !dbg !105
+ store i32 %c, ptr %c.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %c.addr, metadata !98, metadata !DIExpression()), !dbg !99
+ store i32 %b, ptr %b.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %b.addr, metadata !100, metadata !DIExpression()), !dbg !101
+ store i32 %a, ptr %a.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %a.addr, metadata !102, metadata !DIExpression()), !dbg !103
+ %0 = load i32, ptr %a.addr, align 4, !dbg !104
+ %1 = load i32, ptr %b.addr, align 4, !dbg !105
%add = add nsw i32 %0, %1, !dbg !106
- %2 = load i32, i32* %c.addr, align 4, !dbg !107
+ %2 = load i32, ptr %c.addr, align 4, !dbg !107
%add1 = add nsw i32 %add, %2, !dbg !108
- %3 = load i32, i32* @g, align 4, !dbg !109
+ %3 = load i32, ptr @g, align 4, !dbg !109
%add2 = add nsw i32 %3, %add1, !dbg !109
- store i32 %add2, i32* @g, align 4, !dbg !109
+ store i32 %add2, ptr @g, align 4, !dbg !109
ret void, !dbg !110
}
; Function Attrs: noinline nounwind optnone
-define x86_thiscallcc void @"\01?thiscall1@Foo@@QAEXH@Z"(%struct.Foo* %this, i32 %a) #0 align 2 !dbg !111 {
+define x86_thiscallcc void @"\01?thiscall1@Foo@@QAEXH@Z"(ptr %this, i32 %a) #0 align 2 !dbg !111 {
entry:
%a.addr = alloca i32, align 4
- %this.addr = alloca %struct.Foo*, align 4
- store i32 %a, i32* %a.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %a.addr, metadata !124, metadata !DIExpression()), !dbg !125
- store %struct.Foo* %this, %struct.Foo** %this.addr, align 4
- call void @llvm.dbg.declare(metadata %struct.Foo** %this.addr, metadata !126, metadata !DIExpression()), !dbg !128
- %this1 = load %struct.Foo*, %struct.Foo** %this.addr, align 4
- %0 = load i32, i32* %a.addr, align 4, !dbg !129
- %1 = load i32, i32* @g, align 4, !dbg !130
+ %this.addr = alloca ptr, align 4
+ store i32 %a, ptr %a.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %a.addr, metadata !124, metadata !DIExpression()), !dbg !125
+ store ptr %this, ptr %this.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !126, metadata !DIExpression()), !dbg !128
+ %this1 = load ptr, ptr %this.addr, align 4
+ %0 = load i32, ptr %a.addr, align 4, !dbg !129
+ %1 = load i32, ptr @g, align 4, !dbg !130
%add = add nsw i32 %1, %0, !dbg !130
- store i32 %add, i32* @g, align 4, !dbg !130
+ store i32 %add, ptr @g, align 4, !dbg !130
ret void, !dbg !131
}
; Function Attrs: noinline nounwind optnone
-define x86_thiscallcc void @"\01?thiscall2@Foo@@QAEXHH@Z"(%struct.Foo* %this, i32 %a, i32 %b) #0 align 2 !dbg !132 {
+define x86_thiscallcc void @"\01?thiscall2@Foo@@QAEXHH@Z"(ptr %this, i32 %a, i32 %b) #0 align 2 !dbg !132 {
entry:
%b.addr = alloca i32, align 4
%a.addr = alloca i32, align 4
- %this.addr = alloca %struct.Foo*, align 4
- store i32 %b, i32* %b.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %b.addr, metadata !133, metadata !DIExpression()), !dbg !134
- store i32 %a, i32* %a.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %a.addr, metadata !135, metadata !DIExpression()), !dbg !136
- store %struct.Foo* %this, %struct.Foo** %this.addr, align 4
- call void @llvm.dbg.declare(metadata %struct.Foo** %this.addr, metadata !137, metadata !DIExpression()), !dbg !138
- %this1 = load %struct.Foo*, %struct.Foo** %this.addr, align 4
- %0 = load i32, i32* %a.addr, align 4, !dbg !139
- %1 = load i32, i32* %b.addr, align 4, !dbg !140
+ %this.addr = alloca ptr, align 4
+ store i32 %b, ptr %b.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %b.addr, metadata !133, metadata !DIExpression()), !dbg !134
+ store i32 %a, ptr %a.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %a.addr, metadata !135, metadata !DIExpression()), !dbg !136
+ store ptr %this, ptr %this.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !137, metadata !DIExpression()), !dbg !138
+ %this1 = load ptr, ptr %this.addr, align 4
+ %0 = load i32, ptr %a.addr, align 4, !dbg !139
+ %1 = load i32, ptr %b.addr, align 4, !dbg !140
%add = add nsw i32 %0, %1, !dbg !141
- %2 = load i32, i32* @g, align 4, !dbg !142
+ %2 = load i32, ptr @g, align 4, !dbg !142
%add2 = add nsw i32 %2, %add, !dbg !142
- store i32 %add2, i32* @g, align 4, !dbg !142
+ store i32 %add2, ptr @g, align 4, !dbg !142
ret void, !dbg !143
}
; Function Attrs: noinline nounwind optnone
-define x86_thiscallcc void @"\01?thiscall3@Foo@@QAEXHHH@Z"(%struct.Foo* %this, i32 %a, i32 %b, i32 %c) #0 align 2 !dbg !144 {
+define x86_thiscallcc void @"\01?thiscall3@Foo@@QAEXHHH@Z"(ptr %this, i32 %a, i32 %b, i32 %c) #0 align 2 !dbg !144 {
entry:
%c.addr = alloca i32, align 4
%b.addr = alloca i32, align 4
%a.addr = alloca i32, align 4
- %this.addr = alloca %struct.Foo*, align 4
- store i32 %c, i32* %c.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %c.addr, metadata !145, metadata !DIExpression()), !dbg !146
- store i32 %b, i32* %b.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %b.addr, metadata !147, metadata !DIExpression()), !dbg !148
- store i32 %a, i32* %a.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %a.addr, metadata !149, metadata !DIExpression()), !dbg !150
- store %struct.Foo* %this, %struct.Foo** %this.addr, align 4
- call void @llvm.dbg.declare(metadata %struct.Foo** %this.addr, metadata !151, metadata !DIExpression()), !dbg !152
- %this1 = load %struct.Foo*, %struct.Foo** %this.addr, align 4
- %0 = load i32, i32* %a.addr, align 4, !dbg !153
- %1 = load i32, i32* %b.addr, align 4, !dbg !154
+ %this.addr = alloca ptr, align 4
+ store i32 %c, ptr %c.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %c.addr, metadata !145, metadata !DIExpression()), !dbg !146
+ store i32 %b, ptr %b.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %b.addr, metadata !147, metadata !DIExpression()), !dbg !148
+ store i32 %a, ptr %a.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %a.addr, metadata !149, metadata !DIExpression()), !dbg !150
+ store ptr %this, ptr %this.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !151, metadata !DIExpression()), !dbg !152
+ %this1 = load ptr, ptr %this.addr, align 4
+ %0 = load i32, ptr %a.addr, align 4, !dbg !153
+ %1 = load i32, ptr %b.addr, align 4, !dbg !154
%add = add nsw i32 %0, %1, !dbg !155
- %2 = load i32, i32* %c.addr, align 4, !dbg !156
+ %2 = load i32, ptr %c.addr, align 4, !dbg !156
%add2 = add nsw i32 %add, %2, !dbg !157
- %3 = load i32, i32* @g, align 4, !dbg !158
+ %3 = load i32, ptr @g, align 4, !dbg !158
%add3 = add nsw i32 %3, %add2, !dbg !158
- store i32 %add3, i32* @g, align 4, !dbg !158
+ store i32 %add3, ptr @g, align 4, !dbg !158
ret void, !dbg !159
}
target datalayout = "e-m:x-p:32:32-i64:64-f80:32-n8:16:32-a:0:32-S32"
target triple = "i386-pc-windows-msvc19.11.25508"
-define void @"\01?f@@YAXXZ"() local_unnamed_addr #0 personality i8* bitcast (i32 (...)* @__CxxFrameHandler3 to i8*) !dbg !8 {
+define void @"\01?f@@YAXXZ"() local_unnamed_addr #0 personality ptr @__CxxFrameHandler3 !dbg !8 {
entry:
invoke void @"\01?g@@YAXXZ"()
to label %try.cont unwind label %catch.dispatch, !dbg !11
%0 = catchswitch within none [label %catch] unwind to caller, !dbg !13
catch: ; preds = %catch.dispatch
- %1 = catchpad within %0 [i8* null, i32 64, i8* null], !dbg !13
+ %1 = catchpad within %0 [ptr null, i32 64, ptr null], !dbg !13
call void @"\01?g@@YAXXZ"() [ "funclet"(token %1) ], !dbg !14
catchret from %1 to label %try.cont, !dbg !16
; RUN: llc < %s | FileCheck %s
; C source:
-; void usethings(double *, void *p);
+; void usethings(ptr, ptr p);
; int realign_and_alloca(int n) {
; double d = 0;
-; void *p = __builtin_alloca(n);
+; ptr p = __builtin_alloca(n);
; usethings(&d, p);
; return 0;
; }
entry:
%d = alloca double, align 8
tail call void @llvm.dbg.value(metadata i32 %n, metadata !13, metadata !DIExpression()), !dbg !18
- %0 = bitcast double* %d to i8*, !dbg !19
- call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %0) #4, !dbg !19
+ call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %d) #4, !dbg !19
tail call void @llvm.dbg.value(metadata double 0.000000e+00, metadata !14, metadata !DIExpression()), !dbg !20
- store double 0.000000e+00, double* %d, align 8, !dbg !20, !tbaa !21
- %1 = alloca i8, i32 %n, align 16, !dbg !25
- tail call void @llvm.dbg.value(metadata i8* %1, metadata !16, metadata !DIExpression()), !dbg !26
- tail call void @llvm.dbg.value(metadata double* %d, metadata !14, metadata !DIExpression()), !dbg !20
- call void @usethings(double* nonnull %d, i8* nonnull %1) #4, !dbg !27
- call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %0) #4, !dbg !28
+ store double 0.000000e+00, ptr %d, align 8, !dbg !20, !tbaa !21
+ %0 = alloca i8, i32 %n, align 16, !dbg !25
+ tail call void @llvm.dbg.value(metadata ptr %0, metadata !16, metadata !DIExpression()), !dbg !26
+ tail call void @llvm.dbg.value(metadata ptr %d, metadata !14, metadata !DIExpression()), !dbg !20
+ call void @usethings(ptr nonnull %d, ptr nonnull %0) #4, !dbg !27
+ call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %d) #4, !dbg !28
ret i32 0, !dbg !29
}
; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1
+declare void @llvm.lifetime.start.p0(i64, ptr nocapture) #1
-declare void @usethings(double*, i8*) local_unnamed_addr #2
+declare void @usethings(ptr, ptr) local_unnamed_addr #2
; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1
+declare void @llvm.lifetime.end.p0(i64, ptr nocapture) #1
; Function Attrs: nounwind readnone speculatable
declare void @llvm.dbg.value(metadata, metadata, metadata) #3
; struct Foo {
; int x = 42;
; int __declspec(noinline) foo();
-; void __declspec(noinline) bar(int *a, int *b, double *c);
+; void __declspec(noinline) bar(int *a, int *b, ptr c);
; };
; int Foo::foo() {
; int a = 1;
; x += (int)force_alignment;
; return x;
; }
-; void Foo::bar(int *a, int *b, double *c) {
+; void Foo::bar(int *a, int *b, ptr c) {
; __debugbreak();
; *c += *a + *b;
; }
; More reduced C code to generate this IR:
; int getval(void);
-; void usevals(int *, int *, double *);
+; void usevals(int *, int *, ptr);
; int realign_with_csrs(int x) {
; int a = getval();
; double __declspec(align(8)) force_alignment = 0.42;
%x.addr = alloca i32, align 4
%a = alloca i32, align 4
%force_alignment = alloca double, align 8
- store i32 %x, i32* %x.addr, align 4, !tbaa !17
- call void @llvm.dbg.declare(metadata i32* %x.addr, metadata !13, metadata !DIExpression()), !dbg !21
- %0 = bitcast i32* %a to i8*, !dbg !22
- call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %0) #4, !dbg !22
- call void @llvm.dbg.declare(metadata i32* %a, metadata !14, metadata !DIExpression()), !dbg !22
+ store i32 %x, ptr %x.addr, align 4, !tbaa !17
+ call void @llvm.dbg.declare(metadata ptr %x.addr, metadata !13, metadata !DIExpression()), !dbg !21
+ call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %a) #4, !dbg !22
+ call void @llvm.dbg.declare(metadata ptr %a, metadata !14, metadata !DIExpression()), !dbg !22
%call = tail call i32 @getval() #4, !dbg !22
- store i32 %call, i32* %a, align 4, !dbg !22, !tbaa !17
- %1 = bitcast double* %force_alignment to i8*, !dbg !23
- call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %1) #4, !dbg !23
- call void @llvm.dbg.declare(metadata double* %force_alignment, metadata !15, metadata !DIExpression()), !dbg !23
- store double 4.200000e-01, double* %force_alignment, align 8, !dbg !23, !tbaa !24
- call void @usevals(i32* nonnull %a, i32* nonnull %x.addr, double* nonnull %force_alignment) #4, !dbg !26
- %2 = load i32, i32* %x.addr, align 4, !dbg !27, !tbaa !17
- call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %1) #4, !dbg !28
- call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %0) #4, !dbg !28
- ret i32 %2, !dbg !27
+ store i32 %call, ptr %a, align 4, !dbg !22, !tbaa !17
+ call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %force_alignment) #4, !dbg !23
+ call void @llvm.dbg.declare(metadata ptr %force_alignment, metadata !15, metadata !DIExpression()), !dbg !23
+ store double 4.200000e-01, ptr %force_alignment, align 8, !dbg !23, !tbaa !24
+ call void @usevals(ptr nonnull %a, ptr nonnull %x.addr, ptr nonnull %force_alignment) #4, !dbg !26
+ %0 = load i32, ptr %x.addr, align 4, !dbg !27, !tbaa !17
+ call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %force_alignment) #4, !dbg !28
+ call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %a) #4, !dbg !28
+ ret i32 %0, !dbg !27
}
; Function Attrs: nounwind readnone speculatable
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #2
+declare void @llvm.lifetime.start.p0(i64, ptr nocapture) #2
declare dso_local i32 @getval() local_unnamed_addr #3
-declare dso_local void @usevals(i32*, i32*, double*) local_unnamed_addr #3
+declare dso_local void @usevals(ptr, ptr, ptr) local_unnamed_addr #3
; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #2
+declare void @llvm.lifetime.end.p0(i64, ptr nocapture) #2
attributes #0 = { nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "frame-pointer"="none" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="pentium4" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { nounwind readnone speculatable }
%c.addr = alloca i32, align 4
tail call void @llvm.dbg.value(metadata i32 %d, metadata !13, metadata !DIExpression()), !dbg !19
tail call void @llvm.dbg.value(metadata i32 %c, metadata !14, metadata !DIExpression()), !dbg !20
- store i32 %c, i32* %c.addr, align 4, !tbaa !21
+ store i32 %c, ptr %c.addr, align 4, !tbaa !21
tail call void @llvm.dbg.value(metadata i32 %b, metadata !15, metadata !DIExpression()), !dbg !25
tail call void @llvm.dbg.value(metadata i32 %a, metadata !16, metadata !DIExpression()), !dbg !26
%cmp = icmp slt i32 %a, %b, !dbg !27
%i.0 = phi i32 [ %inc, %for.cond ], [ %c, %for.cond.preheader ]
call void @llvm.dbg.value(metadata i32 %i.0, metadata !17, metadata !DIExpression()), !dbg !32
%cmp1 = icmp slt i32 %i.0, %d, !dbg !30
- call void @llvm.dbg.value(metadata i32* %c.addr, metadata !14, metadata !DIExpression()), !dbg !20
- %call = call i32 @doSomething(i32* nonnull %c.addr) #3, !dbg !33
+ call void @llvm.dbg.value(metadata ptr %c.addr, metadata !14, metadata !DIExpression()), !dbg !20
+ %call = call i32 @doSomething(ptr nonnull %c.addr) #3, !dbg !33
%inc = add nsw i32 %i.0, 1, !dbg !34
call void @llvm.dbg.value(metadata i32 %inc, metadata !17, metadata !DIExpression()), !dbg !32
br i1 %cmp1, label %for.cond, label %return, !dbg !35, !llvm.loop !36
ret i32 %retval.0, !dbg !38
}
-declare i32 @doSomething(i32*) local_unnamed_addr #1
+declare i32 @doSomething(ptr) local_unnamed_addr #1
; Function Attrs: nounwind readnone speculatable
declare void @llvm.dbg.value(metadata, metadata, metadata) #2
entry:
%arr = alloca [4 x i32], align 4
tail call void @llvm.dbg.value(metadata i32 %a, metadata !13, metadata !DIExpression()), !dbg !18
- %0 = bitcast [4 x i32]* %arr to i8*, !dbg !19
- call void @llvm.lifetime.start.p0i8(i64 16, i8* nonnull %0) #4, !dbg !19
- tail call void @llvm.dbg.declare(metadata [4 x i32]* %arr, metadata !14, metadata !DIExpression()), !dbg !20
- %arrayinit.begin = getelementptr inbounds [4 x i32], [4 x i32]* %arr, i32 0, i32 0, !dbg !21
- store i32 %a, i32* %arrayinit.begin, align 4, !dbg !21, !tbaa !22
- %arrayinit.element = getelementptr inbounds [4 x i32], [4 x i32]* %arr, i32 0, i32 1, !dbg !21
- store i32 %a, i32* %arrayinit.element, align 4, !dbg !21, !tbaa !22
- %arrayinit.element1 = getelementptr inbounds [4 x i32], [4 x i32]* %arr, i32 0, i32 2, !dbg !21
- store i32 %a, i32* %arrayinit.element1, align 4, !dbg !21, !tbaa !22
- %arrayinit.element2 = getelementptr inbounds [4 x i32], [4 x i32]* %arr, i32 0, i32 3, !dbg !21
- store i32 %a, i32* %arrayinit.element2, align 4, !dbg !21, !tbaa !22
- call void @escape(i32* nonnull %arrayinit.begin) #4, !dbg !26
- call void @llvm.lifetime.end.p0i8(i64 16, i8* nonnull %0) #4, !dbg !27
+ call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %arr) #4, !dbg !19
+ tail call void @llvm.dbg.declare(metadata ptr %arr, metadata !14, metadata !DIExpression()), !dbg !20
+ store i32 %a, ptr %arr, align 4, !dbg !21, !tbaa !22
+ %arrayinit.element = getelementptr inbounds [4 x i32], ptr %arr, i32 0, i32 1, !dbg !21
+ store i32 %a, ptr %arrayinit.element, align 4, !dbg !21, !tbaa !22
+ %arrayinit.element1 = getelementptr inbounds [4 x i32], ptr %arr, i32 0, i32 2, !dbg !21
+ store i32 %a, ptr %arrayinit.element1, align 4, !dbg !21, !tbaa !22
+ %arrayinit.element2 = getelementptr inbounds [4 x i32], ptr %arr, i32 0, i32 3, !dbg !21
+ store i32 %a, ptr %arrayinit.element2, align 4, !dbg !21, !tbaa !22
+ call void @escape(ptr nonnull %arr) #4, !dbg !26
+ call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %arr) #4, !dbg !27
ret i32 %a, !dbg !28
}
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #2
+declare void @llvm.lifetime.start.p0(i64, ptr nocapture) #2
-declare void @escape(i32*) local_unnamed_addr #3
+declare void @escape(ptr) local_unnamed_addr #3
; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #2
+declare void @llvm.lifetime.end.p0(i64, ptr nocapture) #2
; Function Attrs: nounwind readnone speculatable
declare void @llvm.dbg.value(metadata, metadata, metadata) #1
; extern "C" {
;
-; void *_alloca(size_t);
+; ptr_alloca(size_t);
; struct __declspec(align(16)) _jmp_buf_str {
; unsigned __int64 Part[2];
; };
call void @llvm.dbg.value(metadata i32 %n, metadata !29, metadata !DIExpression()), !dbg !31
%mul = shl i32 %n, 2, !dbg !32
%0 = alloca i8, i32 %mul, align 16, !dbg !32
- %1 = bitcast i8* %0 to i32*, !dbg !32
- call void @llvm.dbg.value(metadata i32* %1, metadata !30, metadata !DIExpression()), !dbg !32
- call void @use_intptr(i32* nonnull %1), !dbg !33
+ call void @llvm.dbg.value(metadata ptr %0, metadata !30, metadata !DIExpression()), !dbg !32
+ call void @use_intptr(ptr nonnull %0), !dbg !33
ret void, !dbg !34
}
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #2
+declare void @llvm.lifetime.start.p0(i64, ptr nocapture) #2
-declare dso_local void @use_intptr(i32*) local_unnamed_addr #3
+declare dso_local void @use_intptr(ptr) local_unnamed_addr #3
; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #2
+declare void @llvm.lifetime.end.p0(i64, ptr nocapture) #2
define dso_local void @call_setjmp(i32 %n) local_unnamed_addr #0 !dbg !35 {
entry:
call void @llvm.dbg.value(metadata i32 %n, metadata !37, metadata !DIExpression()), !dbg !38
- %0 = call i32 (i8*, i32, ...) @_setjmp3(i8* bitcast ([16 x %struct._jmp_buf_str]* @g_jbuf to i8*), i32 0) #4, !dbg !39
+ %0 = call i32 (ptr, i32, ...) @_setjmp3(ptr @g_jbuf, i32 0) #4, !dbg !39
%tobool = icmp eq i32 %0, 0, !dbg !39
br i1 %tobool, label %if.then, label %if.end, !dbg !39
if.then: ; preds = %entry
- call void @use_intptr(i32* null), !dbg !40
+ call void @use_intptr(ptr null), !dbg !40
br label %if.end, !dbg !40
if.end: ; preds = %entry, %if.then
}
; Function Attrs: returns_twice
-declare dso_local i32 @_setjmp3(i8*, i32, ...) local_unnamed_addr #4
+declare dso_local i32 @_setjmp3(ptr, i32, ...) local_unnamed_addr #4
; Function Attrs: nounwind
define dso_local void @use_inlineasm() local_unnamed_addr #5 !dbg !43 {
ret void, !dbg !48
}
-define dso_local void @cpp_eh() local_unnamed_addr #0 personality i8* bitcast (i32 (...)* @__CxxFrameHandler3 to i8*) !dbg !49 {
+define dso_local void @cpp_eh() local_unnamed_addr #0 personality ptr @__CxxFrameHandler3 !dbg !49 {
entry:
invoke void @may_throw()
to label %try.cont unwind label %catch.dispatch, !dbg !50
%0 = catchswitch within none [label %catch] unwind to caller, !dbg !52
catch: ; preds = %catch.dispatch
- %1 = catchpad within %0 [i8* null, i32 64, i8* null], !dbg !52
+ %1 = catchpad within %0 [ptr null, i32 64, ptr null], !dbg !52
catchret from %1 to label %try.cont, !dbg !53
try.cont: ; preds = %entry, %catch
declare dso_local i32 @__CxxFrameHandler3(...)
; Function Attrs: norecurse nounwind readnone
-define dso_local nonnull i32 (i32, i32)* @use_inline() local_unnamed_addr #6 !dbg !56 {
+define dso_local nonnull ptr @use_inline() local_unnamed_addr #6 !dbg !56 {
entry:
- ret i32 (i32, i32)* @"?is_marked_inline@@YAHHH@Z", !dbg !62
+ ret ptr @"?is_marked_inline@@YAHHH@Z", !dbg !62
}
; Function Attrs: inlinehint nounwind readnone
ret i32 %add, !dbg !68
}
-define dso_local void @seh() #0 personality i8* bitcast (i32 (...)* @_except_handler3 to i8*) !dbg !69 {
+define dso_local void @seh() #0 personality ptr @_except_handler3 !dbg !69 {
entry:
%__exception_code = alloca i32, align 4
- call void (...) @llvm.localescape(i32* nonnull %__exception_code)
+ call void (...) @llvm.localescape(ptr nonnull %__exception_code)
invoke void @may_throw() #12
to label %__try.cont unwind label %catch.dispatch, !dbg !70
%0 = catchswitch within none [label %__except.ret] unwind to caller, !dbg !72
__except.ret: ; preds = %catch.dispatch
- %1 = catchpad within %0 [i8* bitcast (i32 ()* @"?filt$0@0@seh@@" to i8*)], !dbg !72
+ %1 = catchpad within %0 [ptr @"?filt$0@0@seh@@"], !dbg !72
catchret from %1 to label %__try.cont, !dbg !72
__try.cont: ; preds = %entry, %__except.ret
; Function Attrs: nounwind
define internal i32 @"?filt$0@0@seh@@"() #8 !dbg !74 {
entry:
- %0 = tail call i8* @llvm.frameaddress(i32 1)
- %1 = tail call i8* @llvm.eh.recoverfp(i8* bitcast (void ()* @seh to i8*), i8* %0)
- %2 = tail call i8* @llvm.localrecover(i8* bitcast (void ()* @seh to i8*), i8* %1, i32 0)
- %__exception_code = bitcast i8* %2 to i32*
- %3 = getelementptr inbounds i8, i8* %0, i32 -20, !dbg !76
- %4 = bitcast i8* %3 to { i32*, i8* }**, !dbg !76
- %5 = load { i32*, i8* }*, { i32*, i8* }** %4, align 4, !dbg !76
- %6 = getelementptr inbounds { i32*, i8* }, { i32*, i8* }* %5, i32 0, i32 0, !dbg !76
- %7 = load i32*, i32** %6, align 4, !dbg !76
- %8 = load i32, i32* %7, align 4, !dbg !76
- store i32 %8, i32* %__exception_code, align 4, !dbg !76
+ %0 = tail call ptr @llvm.frameaddress(i32 1)
+ %1 = tail call ptr @llvm.eh.recoverfp(ptr @seh, ptr %0)
+ %2 = tail call ptr @llvm.localrecover(ptr @seh, ptr %1, i32 0)
+ %3 = getelementptr inbounds i8, ptr %0, i32 -20, !dbg !76
+ %4 = load ptr, ptr %3, align 4, !dbg !76
+ %5 = getelementptr inbounds { ptr, ptr }, ptr %4, i32 0, i32 0, !dbg !76
+ %6 = load ptr, ptr %5, align 4, !dbg !76
+ %7 = load i32, ptr %6, align 4, !dbg !76
+ store i32 %7, ptr %2, align 4, !dbg !76
ret i32 1, !dbg !76
}
; Function Attrs: nounwind readnone
-declare i8* @llvm.frameaddress(i32) #9
+declare ptr @llvm.frameaddress(i32) #9
; Function Attrs: nounwind readnone
-declare i8* @llvm.eh.recoverfp(i8*, i8*) #9
+declare ptr @llvm.eh.recoverfp(ptr, ptr) #9
; Function Attrs: nounwind readnone
-declare i8* @llvm.localrecover(i8*, i8*, i32) #9
+declare ptr @llvm.localrecover(ptr, ptr, i32) #9
declare dso_local i32 @_except_handler3(...)
define dso_local void @stack_guard() local_unnamed_addr #0 !dbg !81 {
entry:
%arr = alloca [12 x i32], align 4
- %0 = bitcast [12 x i32]* %arr to i8*, !dbg !87
- call void @llvm.lifetime.start.p0i8(i64 48, i8* nonnull %0) #10, !dbg !87
- call void @llvm.dbg.declare(metadata [12 x i32]* %arr, metadata !83, metadata !DIExpression()), !dbg !87
- call void @llvm.memset.p0i8.i32(i8* nonnull align 4 %0, i8 0, i32 48, i1 false), !dbg !87
- %arrayidx = getelementptr inbounds [12 x i32], [12 x i32]* %arr, i32 0, i32 0, !dbg !88
- call void @use_intptr(i32* nonnull %arrayidx), !dbg !88
- call void @llvm.lifetime.end.p0i8(i64 48, i8* nonnull %0) #10, !dbg !89
+ call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %arr) #10, !dbg !87
+ call void @llvm.dbg.declare(metadata ptr %arr, metadata !83, metadata !DIExpression()), !dbg !87
+ call void @llvm.memset.p0.i32(ptr nonnull align 4 %arr, i8 0, i32 48, i1 false), !dbg !87
+ call void @use_intptr(ptr nonnull %arr), !dbg !88
+ call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %arr) #10, !dbg !89
ret void, !dbg !89
}
; Function Attrs: argmemonly nounwind
-declare void @llvm.memset.p0i8.i32(i8* nocapture writeonly, i8, i32, i1) #2
+declare void @llvm.memset.p0.i32(ptr nocapture writeonly, i8, i32, i1) #2
; Function Attrs: nounwind readnone speculatable
declare void @llvm.dbg.value(metadata, metadata, metadata) #1
; Function Attrs: noinline optnone uwtable
define dso_local void @"?foo@@YAXXZ"() #0 !dbg !8 {
entry:
- %0 = load i32, i32* @"?nested_int@?1??foo@@YAXXZ@4HA", align 4, !dbg !45
- store i32 %0, i32* @"?local_int@?1??foo@@YAXXZ@4HA", align 4, !dbg !45
+ %0 = load i32, ptr @"?nested_int@?1??foo@@YAXXZ@4HA", align 4, !dbg !45
+ store i32 %0, ptr @"?local_int@?1??foo@@YAXXZ@4HA", align 4, !dbg !45
%call = call i32 @"?set@?$A@H@@SAHH@Z"(i32 42), !dbg !47
- store i32 %call, i32* @"?local_int@?1??foo@@YAXXZ@4HA", align 4, !dbg !47
+ store i32 %call, ptr @"?local_int@?1??foo@@YAXXZ@4HA", align 4, !dbg !47
ret void, !dbg !48
}
entry:
%value.addr = alloca i32, align 4
%r = alloca i32, align 4
- store i32 %value, i32* %value.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %value.addr, metadata !50, metadata !DIExpression()), !dbg !51
- call void @llvm.dbg.declare(metadata i32* %r, metadata !52, metadata !DIExpression()), !dbg !53
- %0 = load i32, i32* @"?comdat_int@?$A@H@@2HA", align 4, !dbg !53
- store i32 %0, i32* %r, align 4, !dbg !53
- %1 = load i32, i32* %value.addr, align 4, !dbg !54
- store i32 %1, i32* @"?comdat_int@?$A@H@@2HA", align 4, !dbg !54
- %2 = load i32, i32* %r, align 4, !dbg !55
+ store i32 %value, ptr %value.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %value.addr, metadata !50, metadata !DIExpression()), !dbg !51
+ call void @llvm.dbg.declare(metadata ptr %r, metadata !52, metadata !DIExpression()), !dbg !53
+ %0 = load i32, ptr @"?comdat_int@?$A@H@@2HA", align 4, !dbg !53
+ store i32 %0, ptr %r, align 4, !dbg !53
+ %1 = load i32, ptr %value.addr, align 4, !dbg !54
+ store i32 %1, ptr @"?comdat_int@?$A@H@@2HA", align 4, !dbg !54
+ %2 = load i32, ptr %r, align 4, !dbg !55
ret i32 %2, !dbg !55
}
; Function Attrs: noinline optnone uwtable
define dso_local void @"?bar@@YAXXZ"() #0 !dbg !16 {
entry:
- %0 = load i32, i32* @"?nested_int@?1??bar@@YAXXZ@4HA", align 4, !dbg !56
- store i32 %0, i32* @"?local_int@?1??bar@@YAXXZ@4HA", align 4, !dbg !56
+ %0 = load i32, ptr @"?nested_int@?1??bar@@YAXXZ@4HA", align 4, !dbg !56
+ store i32 %0, ptr @"?local_int@?1??bar@@YAXXZ@4HA", align 4, !dbg !56
%call = call i32 @"?set@?$A@I@@SAII@Z"(i32 42), !dbg !58
- store i32 %call, i32* @"?local_int@?1??bar@@YAXXZ@4HA", align 4, !dbg !58
+ store i32 %call, ptr @"?local_int@?1??bar@@YAXXZ@4HA", align 4, !dbg !58
ret void, !dbg !59
}
entry:
%value.addr = alloca i32, align 4
%r = alloca i32, align 4
- store i32 %value, i32* %value.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %value.addr, metadata !61, metadata !DIExpression()), !dbg !62
- call void @llvm.dbg.declare(metadata i32* %r, metadata !63, metadata !DIExpression()), !dbg !64
- %0 = load i32, i32* @"?comdat_int@?$A@I@@2IA", align 4, !dbg !64
- store i32 %0, i32* %r, align 4, !dbg !64
- %1 = load i32, i32* %value.addr, align 4, !dbg !65
- store i32 %1, i32* @"?comdat_int@?$A@I@@2IA", align 4, !dbg !65
- %2 = load i32, i32* %r, align 4, !dbg !66
+ store i32 %value, ptr %value.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %value.addr, metadata !61, metadata !DIExpression()), !dbg !62
+ call void @llvm.dbg.declare(metadata ptr %r, metadata !63, metadata !DIExpression()), !dbg !64
+ %0 = load i32, ptr @"?comdat_int@?$A@I@@2IA", align 4, !dbg !64
+ store i32 %0, ptr %r, align 4, !dbg !64
+ %1 = load i32, ptr %value.addr, align 4, !dbg !65
+ store i32 %1, ptr @"?comdat_int@?$A@I@@2IA", align 4, !dbg !65
+ %2 = load i32, ptr %r, align 4, !dbg !66
ret i32 %2, !dbg !66
}
@"?first@@3HA" = dso_local global i32 0, align 4, !dbg !0
@"?comdat@?$A@X@@2HB" = linkonce_odr dso_local constant i32 3, comdat, align 4, !dbg !17
-@"?middle@@3PEBHEB" = dso_local thread_local global i32* @"?comdat@?$A@X@@2HB", align 8, !dbg !24
+@"?middle@@3PEBHEB" = dso_local thread_local global ptr @"?comdat@?$A@X@@2HB", align 8, !dbg !24
@"?globalTLS@foo@@3HA" = dso_local thread_local global i32 4, align 4, !dbg !27
@"?justGlobal@foo@@3HA" = dso_local global i32 6, align 4, !dbg !29
@"?last@@3HA" = dso_local global i32 0, align 4, !dbg !31
entry:
%D = alloca %"struct.foo::Data", align 4
%L = alloca %struct.Local, align 4
- call void @llvm.dbg.declare(metadata %"struct.foo::Data"* %D, metadata !57, metadata !DIExpression()), !dbg !58
- %call = call %"struct.foo::Data"* @"??0Data@foo@@QEAA@XZ"(%"struct.foo::Data"* %D) #2, !dbg !58
- call void @llvm.dbg.declare(metadata %struct.Local* %L, metadata !59, metadata !DIExpression()), !dbg !64
- %call1 = call %struct.Local* @"??0Local@?1??bar@@YAHXZ@QEAA@XZ"(%struct.Local* %L) #2, !dbg !64
- %0 = load i32, i32* @"?globalStatic@foo@@3HA", align 4, !dbg !65
- %1 = load i32, i32* @"?globalTLS@foo@@3HA", align 4, !dbg !65
+ call void @llvm.dbg.declare(metadata ptr %D, metadata !57, metadata !DIExpression()), !dbg !58
+ %call = call ptr @"??0Data@foo@@QEAA@XZ"(ptr %D) #2, !dbg !58
+ call void @llvm.dbg.declare(metadata ptr %L, metadata !59, metadata !DIExpression()), !dbg !64
+ %call1 = call ptr @"??0Local@?1??bar@@YAHXZ@QEAA@XZ"(ptr %L) #2, !dbg !64
+ %0 = load i32, ptr @"?globalStatic@foo@@3HA", align 4, !dbg !65
+ %1 = load i32, ptr @"?globalTLS@foo@@3HA", align 4, !dbg !65
%add = add nsw i32 %0, %1, !dbg !65
- %2 = load i32, i32* @"?staticTLS@foo@@3HA", align 4, !dbg !65
+ %2 = load i32, ptr @"?staticTLS@foo@@3HA", align 4, !dbg !65
%add2 = add nsw i32 %add, %2, !dbg !65
- %3 = load i32, i32* @"?justGlobal@foo@@3HA", align 4, !dbg !65
+ %3 = load i32, ptr @"?justGlobal@foo@@3HA", align 4, !dbg !65
%add3 = add nsw i32 %add2, %3, !dbg !65
- %4 = load i32, i32* @"?globalStatic@foo@@3HA", align 4, !dbg !65
+ %4 = load i32, ptr @"?globalStatic@foo@@3HA", align 4, !dbg !65
%add4 = add nsw i32 %add3, %4, !dbg !65
%add5 = add nsw i32 %add4, 8, !dbg !65
%add6 = add nsw i32 %add5, 9, !dbg !65
- %5 = load i32, i32* @"?DataStaticTLS@Data@foo@@2HA", align 4, !dbg !65
+ %5 = load i32, ptr @"?DataStaticTLS@Data@foo@@2HA", align 4, !dbg !65
%add7 = add nsw i32 %add6, %5, !dbg !65
- %DataGlobal = getelementptr inbounds %"struct.foo::Data", %"struct.foo::Data"* %D, i32 0, i32 0, !dbg !65
- %6 = load i32, i32* %DataGlobal, align 4, !dbg !65
+ %6 = load i32, ptr %D, align 4, !dbg !65
%add8 = add nsw i32 %add7, %6, !dbg !65
- %7 = load i32, i32* @"?DataStatic@Data@foo@@2HA", align 4, !dbg !65
+ %7 = load i32, ptr @"?DataStatic@Data@foo@@2HA", align 4, !dbg !65
%add9 = add nsw i32 %add8, %7, !dbg !65
%add10 = add nsw i32 %add9, 14, !dbg !65
- %DataConstVal = getelementptr inbounds %"struct.foo::Data", %"struct.foo::Data"* %D, i32 0, i32 1, !dbg !65
- %8 = load i32, i32* %DataConstVal, align 4, !dbg !65
+ %DataConstVal = getelementptr inbounds %"struct.foo::Data", ptr %D, i32 0, i32 1, !dbg !65
+ %8 = load i32, ptr %DataConstVal, align 4, !dbg !65
%add11 = add nsw i32 %add10, %8, !dbg !65
- %LocalGlobal = getelementptr inbounds %struct.Local, %struct.Local* %L, i32 0, i32 0, !dbg !65
- %9 = load i32, i32* %LocalGlobal, align 4, !dbg !65
+ %9 = load i32, ptr %L, align 4, !dbg !65
%add12 = add nsw i32 %add11, %9, !dbg !65
- %LocalConstVal = getelementptr inbounds %struct.Local, %struct.Local* %L, i32 0, i32 1, !dbg !65
- %10 = load i32, i32* %LocalConstVal, align 4, !dbg !65
+ %LocalConstVal = getelementptr inbounds %struct.Local, ptr %L, i32 0, i32 1, !dbg !65
+ %10 = load i32, ptr %LocalConstVal, align 4, !dbg !65
%add13 = add nsw i32 %add12, %10, !dbg !65
ret i32 %add13, !dbg !65
}
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
; Function Attrs: noinline nounwind optnone uwtable
-define linkonce_odr dso_local %"struct.foo::Data"* @"??0Data@foo@@QEAA@XZ"(%"struct.foo::Data"* returned %this) unnamed_addr #0 comdat align 2 !dbg !66 {
+define linkonce_odr dso_local ptr @"??0Data@foo@@QEAA@XZ"(ptr returned %this) unnamed_addr #0 comdat align 2 !dbg !66 {
entry:
- %this.addr = alloca %"struct.foo::Data"*, align 8
- store %"struct.foo::Data"* %this, %"struct.foo::Data"** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %"struct.foo::Data"** %this.addr, metadata !71, metadata !DIExpression()), !dbg !73
- %this1 = load %"struct.foo::Data"*, %"struct.foo::Data"** %this.addr, align 8
- %DataGlobal = getelementptr inbounds %"struct.foo::Data", %"struct.foo::Data"* %this1, i32 0, i32 0, !dbg !74
- store i32 12, i32* %DataGlobal, align 4, !dbg !74
- %DataConstVal = getelementptr inbounds %"struct.foo::Data", %"struct.foo::Data"* %this1, i32 0, i32 1, !dbg !74
- store i32 15, i32* %DataConstVal, align 4, !dbg !74
- ret %"struct.foo::Data"* %this1, !dbg !74
+ %this.addr = alloca ptr, align 8
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !71, metadata !DIExpression()), !dbg !73
+ %this1 = load ptr, ptr %this.addr, align 8
+ store i32 12, ptr %this1, align 4, !dbg !74
+ %DataConstVal = getelementptr inbounds %"struct.foo::Data", ptr %this1, i32 0, i32 1, !dbg !74
+ store i32 15, ptr %DataConstVal, align 4, !dbg !74
+ ret ptr %this1, !dbg !74
}
; Function Attrs: noinline nounwind optnone uwtable
-define internal %struct.Local* @"??0Local@?1??bar@@YAHXZ@QEAA@XZ"(%struct.Local* returned %this) unnamed_addr #0 align 2 !dbg !75 {
+define internal ptr @"??0Local@?1??bar@@YAHXZ@QEAA@XZ"(ptr returned %this) unnamed_addr #0 align 2 !dbg !75 {
entry:
- %this.addr = alloca %struct.Local*, align 8
- store %struct.Local* %this, %struct.Local** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %struct.Local** %this.addr, metadata !80, metadata !DIExpression()), !dbg !82
- %this1 = load %struct.Local*, %struct.Local** %this.addr, align 8
- %LocalGlobal = getelementptr inbounds %struct.Local, %struct.Local* %this1, i32 0, i32 0, !dbg !83
- store i32 12, i32* %LocalGlobal, align 4, !dbg !83
- %LocalConstVal = getelementptr inbounds %struct.Local, %struct.Local* %this1, i32 0, i32 1, !dbg !83
- store i32 15, i32* %LocalConstVal, align 4, !dbg !83
- ret %struct.Local* %this1, !dbg !83
+ %this.addr = alloca ptr, align 8
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !80, metadata !DIExpression()), !dbg !82
+ %this1 = load ptr, ptr %this.addr, align 8
+ store i32 12, ptr %this1, align 4, !dbg !83
+ %LocalConstVal = getelementptr inbounds %struct.Local, ptr %this1, i32 0, i32 1, !dbg !83
+ store i32 15, ptr %LocalConstVal, align 4, !dbg !83
+ ret ptr %this1, !dbg !83
}
attributes #0 = { noinline nounwind optnone uwtable "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "frame-pointer"="none" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
target triple = "x86_64-pc-windows-msvc19.12.25835"
%struct.D = type { %struct.B.base, %struct.C.base, i32, [4 x i8], %struct.A }
-%struct.B.base = type { i32 (...)**, i32*, i32 }
-%struct.C.base = type { i32 (...)**, i32*, i32 }
+%struct.B.base = type { ptr, ptr, i32 }
+%struct.C.base = type { ptr, ptr, i32 }
%struct.A = type { i32 }
-%struct.B = type { i32 (...)**, i32*, i32, [4 x i8], %struct.A }
-%struct.C = type { i32 (...)**, i32*, i32, [4 x i8], %struct.A }
+%struct.B = type { ptr, ptr, i32, [4 x i8], %struct.A }
+%struct.C = type { ptr, ptr, i32, [4 x i8], %struct.A }
$"?get@B@@UEAAHXZ" = comdat any
$"??_7D@@6BC@@@" = comdat any
-@"?d@@3UD@@A" = dso_local local_unnamed_addr global %struct.D { %struct.B.base { i32 (...)** bitcast ({ [2 x i8*] }* @"??_7D@@6BB@@@" to i32 (...)**), i32* getelementptr inbounds ([2 x i32], [2 x i32]* @"??_8D@@7BB@@@", i32 0, i32 0), i32 0 }, %struct.C.base { i32 (...)** bitcast ({ [1 x i8*] }* @"??_7D@@6BC@@@" to i32 (...)**), i32* getelementptr inbounds ([2 x i32], [2 x i32]* @"??_8D@@7BC@@@", i32 0, i32 0), i32 0 }, i32 0, [4 x i8] zeroinitializer, %struct.A zeroinitializer }, align 8, !dbg !0
+@"?d@@3UD@@A" = dso_local local_unnamed_addr global %struct.D { %struct.B.base { ptr @"??_7D@@6BB@@@", ptr @"??_8D@@7BB@@@", i32 0 }, %struct.C.base { ptr @"??_7D@@6BC@@@", ptr @"??_8D@@7BC@@@", i32 0 }, i32 0, [4 x i8] zeroinitializer, %struct.A zeroinitializer }, align 8, !dbg !0
@"??_8D@@7BB@@@" = linkonce_odr unnamed_addr constant [2 x i32] [i32 -8, i32 48], comdat
@"??_8D@@7BC@@@" = linkonce_odr unnamed_addr constant [2 x i32] [i32 -8, i32 24], comdat
-@"??_7D@@6BB@@@" = linkonce_odr unnamed_addr constant { [2 x i8*] } { [2 x i8*] [i8* bitcast (i32 (%struct.B*)* @"?get@B@@UEAAHXZ" to i8*), i8* bitcast (void (%struct.D*)* @"?f@D@@UEAAXXZ" to i8*)] }, comdat
-@"??_7D@@6BC@@@" = linkonce_odr unnamed_addr constant { [1 x i8*] } { [1 x i8*] [i8* bitcast (i32 (%struct.C*)* @"?get@C@@UEAAHXZ" to i8*)] }, comdat
-@llvm.global_ctors = appending global [0 x { i32, void ()*, i8* }] zeroinitializer
+@"??_7D@@6BB@@@" = linkonce_odr unnamed_addr constant { [2 x ptr] } { [2 x ptr] [ptr @"?get@B@@UEAAHXZ", ptr @"?f@D@@UEAAXXZ"] }, comdat
+@"??_7D@@6BC@@@" = linkonce_odr unnamed_addr constant { [1 x ptr] } { [1 x ptr] [ptr @"?get@C@@UEAAHXZ"] }, comdat
+@llvm.global_ctors = appending global [0 x { i32, ptr, ptr }] zeroinitializer
; Function Attrs: nounwind uwtable
-define linkonce_odr dso_local i32 @"?get@B@@UEAAHXZ"(%struct.B* %this) unnamed_addr #0 comdat align 2 !dbg !46 {
+define linkonce_odr dso_local i32 @"?get@B@@UEAAHXZ"(ptr %this) unnamed_addr #0 comdat align 2 !dbg !46 {
entry:
- call void @llvm.dbg.value(metadata %struct.B* %this, metadata !48, metadata !DIExpression()), !dbg !50
- %b = getelementptr inbounds %struct.B, %struct.B* %this, i64 0, i32 2, !dbg !51
- %0 = load i32, i32* %b, align 8, !dbg !51, !tbaa !52
+ call void @llvm.dbg.value(metadata ptr %this, metadata !48, metadata !DIExpression()), !dbg !50
+ %b = getelementptr inbounds %struct.B, ptr %this, i64 0, i32 2, !dbg !51
+ %0 = load i32, ptr %b, align 8, !dbg !51, !tbaa !52
ret i32 %0, !dbg !51
}
-declare dso_local void @"?f@D@@UEAAXXZ"(%struct.D*) unnamed_addr #1
+declare dso_local void @"?f@D@@UEAAXXZ"(ptr) unnamed_addr #1
; Function Attrs: nounwind uwtable
-define linkonce_odr dso_local i32 @"?get@C@@UEAAHXZ"(%struct.C* %this) unnamed_addr #0 comdat align 2 !dbg !57 {
+define linkonce_odr dso_local i32 @"?get@C@@UEAAHXZ"(ptr %this) unnamed_addr #0 comdat align 2 !dbg !57 {
entry:
- call void @llvm.dbg.value(metadata %struct.C* %this, metadata !59, metadata !DIExpression()), !dbg !61
- %c = getelementptr inbounds %struct.C, %struct.C* %this, i64 0, i32 2, !dbg !62
- %0 = load i32, i32* %c, align 8, !dbg !62, !tbaa !63
+ call void @llvm.dbg.value(metadata ptr %this, metadata !59, metadata !DIExpression()), !dbg !61
+ %c = getelementptr inbounds %struct.C, ptr %this, i64 0, i32 2, !dbg !62
+ %0 = load i32, ptr %c, align 8, !dbg !62, !tbaa !63
ret i32 %0, !dbg !62
}
; Function Attrs: norecurse nounwind uwtable
define void @f() #0 !dbg !12 {
entry:
- %0 = load volatile i32, i32* @x, align 4, !dbg !15, !tbaa !16
+ %0 = load volatile i32, ptr @x, align 4, !dbg !15, !tbaa !16
%inc = add nsw i32 %0, 1, !dbg !15
- store volatile i32 %inc, i32* @x, align 4, !dbg !15, !tbaa !16
- %1 = load volatile i32, i32* @x, align 4, !dbg !20, !tbaa !16
+ store volatile i32 %inc, ptr @x, align 4, !dbg !15, !tbaa !16
+ %1 = load volatile i32, ptr @x, align 4, !dbg !20, !tbaa !16
%inc.i = add nsw i32 %1, 1, !dbg !20
- store volatile i32 %inc.i, i32* @x, align 4, !dbg !20, !tbaa !16
- %2 = load volatile i32, i32* @x, align 4, !dbg !23, !tbaa !16
+ store volatile i32 %inc.i, ptr @x, align 4, !dbg !20, !tbaa !16
+ %2 = load volatile i32, ptr @x, align 4, !dbg !23, !tbaa !16
%inc1.i = add nsw i32 %2, 1, !dbg !23
- store volatile i32 %inc1.i, i32* @x, align 4, !dbg !23, !tbaa !16
- %3 = load volatile i32, i32* @x, align 4, !dbg !26, !tbaa !16
+ store volatile i32 %inc1.i, ptr @x, align 4, !dbg !23, !tbaa !16
+ %3 = load volatile i32, ptr @x, align 4, !dbg !26, !tbaa !16
%inc2.i = add nsw i32 %3, 1, !dbg !26
- store volatile i32 %inc2.i, i32* @x, align 4, !dbg !26, !tbaa !16
- %4 = load volatile i32, i32* @x, align 4, !dbg !27, !tbaa !16
+ store volatile i32 %inc2.i, ptr @x, align 4, !dbg !26, !tbaa !16
+ %4 = load volatile i32, ptr @x, align 4, !dbg !27, !tbaa !16
%inc3.i = add nsw i32 %4, 1, !dbg !27
- store volatile i32 %inc3.i, i32* @x, align 4, !dbg !27, !tbaa !16
- %5 = load volatile i32, i32* @x, align 4, !dbg !29, !tbaa !16
+ store volatile i32 %inc3.i, ptr @x, align 4, !dbg !27, !tbaa !16
+ %5 = load volatile i32, ptr @x, align 4, !dbg !29, !tbaa !16
%inc1 = add nsw i32 %5, 1, !dbg !29
- store volatile i32 %inc1, i32* @x, align 4, !dbg !29, !tbaa !16
+ store volatile i32 %inc1, ptr @x, align 4, !dbg !29, !tbaa !16
ret void, !dbg !30
}
; Function Attrs: norecurse nounwind uwtable
define i32 @main() local_unnamed_addr #0 !dbg !12 {
entry:
- %0 = load volatile i32, i32* @"\01?x@@3HC", align 4, !dbg !15, !tbaa !16
+ %0 = load volatile i32, ptr @"\01?x@@3HC", align 4, !dbg !15, !tbaa !16
%add = add nsw i32 %0, 1, !dbg !15
- store volatile i32 %add, i32* @"\01?x@@3HC", align 4, !dbg !15, !tbaa !16
- %1 = load volatile i32, i32* @"\01?x@@3HC", align 4, !dbg !20, !tbaa !16
+ store volatile i32 %add, ptr @"\01?x@@3HC", align 4, !dbg !15, !tbaa !16
+ %1 = load volatile i32, ptr @"\01?x@@3HC", align 4, !dbg !20, !tbaa !16
%add.i = add nsw i32 %1, 2, !dbg !20
- store volatile i32 %add.i, i32* @"\01?x@@3HC", align 4, !dbg !20, !tbaa !16
- %2 = load volatile i32, i32* @"\01?x@@3HC", align 4, !dbg !25, !tbaa !16
+ store volatile i32 %add.i, ptr @"\01?x@@3HC", align 4, !dbg !20, !tbaa !16
+ %2 = load volatile i32, ptr @"\01?x@@3HC", align 4, !dbg !25, !tbaa !16
%add.i.i = add nsw i32 %2, 3, !dbg !25
- store volatile i32 %add.i.i, i32* @"\01?x@@3HC", align 4, !dbg !25, !tbaa !16
- %3 = load volatile i32, i32* @"\01?x@@3HC", align 4, !dbg !29, !tbaa !16
+ store volatile i32 %add.i.i, ptr @"\01?x@@3HC", align 4, !dbg !25, !tbaa !16
+ %3 = load volatile i32, ptr @"\01?x@@3HC", align 4, !dbg !29, !tbaa !16
%add1.i = add nsw i32 %3, 2, !dbg !29
- store volatile i32 %add1.i, i32* @"\01?x@@3HC", align 4, !dbg !29, !tbaa !16
- %4 = load volatile i32, i32* @"\01?x@@3HC", align 4, !dbg !30, !tbaa !16
+ store volatile i32 %add1.i, ptr @"\01?x@@3HC", align 4, !dbg !29, !tbaa !16
+ %4 = load volatile i32, ptr @"\01?x@@3HC", align 4, !dbg !30, !tbaa !16
%add1 = add nsw i32 %4, 1, !dbg !30
- store volatile i32 %add1, i32* @"\01?x@@3HC", align 4, !dbg !30, !tbaa !16
- %5 = load volatile i32, i32* @"\01?x@@3HC", align 4, !dbg !31, !tbaa !16
+ store volatile i32 %add1, ptr @"\01?x@@3HC", align 4, !dbg !30, !tbaa !16
+ %5 = load volatile i32, ptr @"\01?x@@3HC", align 4, !dbg !31, !tbaa !16
ret i32 %5, !dbg !32
}
; Function Attrs: norecurse nounwind uwtable
define i32 @main() #0 !dbg !12 {
entry:
- %0 = load volatile i32, i32* @"\01?x@@3HC", align 4, !dbg !15, !tbaa !24
+ %0 = load volatile i32, ptr @"\01?x@@3HC", align 4, !dbg !15, !tbaa !24
%inc.i.i.i = add nsw i32 %0, 1, !dbg !15
- store volatile i32 %inc.i.i.i, i32* @"\01?x@@3HC", align 4, !dbg !15, !tbaa !24
+ store volatile i32 %inc.i.i.i, ptr @"\01?x@@3HC", align 4, !dbg !15, !tbaa !24
ret i32 0, !dbg !28
}
; Function Attrs: norecurse nounwind
define i32 @main() #0 !dbg !6 {
entry:
- store volatile i32 0, i32* @x, align 4, !dbg !11, !tbaa !16
- store volatile i32 0, i32* @x, align 4, !dbg !20, !tbaa !16
- store volatile i32 0, i32* @x, align 4, !dbg !23, !tbaa !16
- store volatile i32 0, i32* @x, align 4, !dbg !26, !tbaa !16
+ store volatile i32 0, ptr @x, align 4, !dbg !11, !tbaa !16
+ store volatile i32 0, ptr @x, align 4, !dbg !20, !tbaa !16
+ store volatile i32 0, ptr @x, align 4, !dbg !23, !tbaa !16
+ store volatile i32 0, ptr @x, align 4, !dbg !26, !tbaa !16
ret i32 0, !dbg !29
}
target datalayout = "e-m:w-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-windows-msvc"
-define void @main(i32* %i.i) !dbg !16 {
- store volatile i32 3, i32* %i.i, !dbg !6
- store volatile i32 3, i32* %i.i, !dbg !19
+define void @main(ptr %i.i) !dbg !16 {
+ store volatile i32 3, ptr %i.i, !dbg !6
+ store volatile i32 3, ptr %i.i, !dbg !19
ret void
}
define void @"\01?baz@@YAXXZ"() #0 !dbg !4 {
entry:
%y.i.i = alloca i32, align 4
- %0 = load volatile i32, i32* @"\01?x@@3HC", align 4, !dbg !12, !tbaa !13
+ %0 = load volatile i32, ptr @"\01?x@@3HC", align 4, !dbg !12, !tbaa !13
%add = add nsw i32 %0, 6, !dbg !12
- store volatile i32 %add, i32* @"\01?x@@3HC", align 4, !dbg !12, !tbaa !13
- %1 = load volatile i32, i32* @"\01?x@@3HC", align 4, !dbg !17, !tbaa !13
+ store volatile i32 %add, ptr @"\01?x@@3HC", align 4, !dbg !12, !tbaa !13
+ %1 = load volatile i32, ptr @"\01?x@@3HC", align 4, !dbg !17, !tbaa !13
%add.i = add nsw i32 %1, 4, !dbg !17
- store volatile i32 %add.i, i32* @"\01?x@@3HC", align 4, !dbg !17, !tbaa !13
- %2 = bitcast i32* %y.i.i to i8*, !dbg !19
- call void @llvm.lifetime.start(i64 4, i8* %2) #2, !dbg !19
- store i32 1, i32* %y.i.i, align 4, !dbg !21, !tbaa !13
- %3 = ptrtoint i32* %y.i.i to i64, !dbg !22
- %4 = trunc i64 %3 to i32, !dbg !22
- %5 = load volatile i32, i32* @"\01?x@@3HC", align 4, !dbg !23, !tbaa !13
- %add.i.i = add nsw i32 %5, %4, !dbg !23
- store volatile i32 %add.i.i, i32* @"\01?x@@3HC", align 4, !dbg !23, !tbaa !13
- %6 = load volatile i32, i32* @"\01?x@@3HC", align 4, !dbg !24, !tbaa !13
- %add1.i.i = add nsw i32 %6, 2, !dbg !24
- store volatile i32 %add1.i.i, i32* @"\01?x@@3HC", align 4, !dbg !24, !tbaa !13
- %7 = load volatile i32, i32* @"\01?x@@3HC", align 4, !dbg !25, !tbaa !13
- %add2.i.i = add nsw i32 %7, 3, !dbg !25
- store volatile i32 %add2.i.i, i32* @"\01?x@@3HC", align 4, !dbg !25, !tbaa !13
- call void @llvm.lifetime.end(i64 4, i8* %2) #2, !dbg !26
- %8 = load volatile i32, i32* @"\01?x@@3HC", align 4, !dbg !27, !tbaa !13
- %add1.i = add nsw i32 %8, 5, !dbg !27
- store volatile i32 %add1.i, i32* @"\01?x@@3HC", align 4, !dbg !27, !tbaa !13
- %9 = load volatile i32, i32* @"\01?x@@3HC", align 4, !dbg !28, !tbaa !13
- %add1 = add nsw i32 %9, 7, !dbg !28
- store volatile i32 %add1, i32* @"\01?x@@3HC", align 4, !dbg !28, !tbaa !13
+ store volatile i32 %add.i, ptr @"\01?x@@3HC", align 4, !dbg !17, !tbaa !13
+ call void @llvm.lifetime.start(i64 4, ptr %y.i.i) #2, !dbg !19
+ store i32 1, ptr %y.i.i, align 4, !dbg !21, !tbaa !13
+ %2 = ptrtoint ptr %y.i.i to i64, !dbg !22
+ %3 = trunc i64 %2 to i32, !dbg !22
+ %4 = load volatile i32, ptr @"\01?x@@3HC", align 4, !dbg !23, !tbaa !13
+ %add.i.i = add nsw i32 %4, %3, !dbg !23
+ store volatile i32 %add.i.i, ptr @"\01?x@@3HC", align 4, !dbg !23, !tbaa !13
+ %5 = load volatile i32, ptr @"\01?x@@3HC", align 4, !dbg !24, !tbaa !13
+ %add1.i.i = add nsw i32 %5, 2, !dbg !24
+ store volatile i32 %add1.i.i, ptr @"\01?x@@3HC", align 4, !dbg !24, !tbaa !13
+ %6 = load volatile i32, ptr @"\01?x@@3HC", align 4, !dbg !25, !tbaa !13
+ %add2.i.i = add nsw i32 %6, 3, !dbg !25
+ store volatile i32 %add2.i.i, ptr @"\01?x@@3HC", align 4, !dbg !25, !tbaa !13
+ call void @llvm.lifetime.end(i64 4, ptr %y.i.i) #2, !dbg !26
+ %7 = load volatile i32, ptr @"\01?x@@3HC", align 4, !dbg !27, !tbaa !13
+ %add1.i = add nsw i32 %7, 5, !dbg !27
+ store volatile i32 %add1.i, ptr @"\01?x@@3HC", align 4, !dbg !27, !tbaa !13
+ %8 = load volatile i32, ptr @"\01?x@@3HC", align 4, !dbg !28, !tbaa !13
+ %add1 = add nsw i32 %8, 7, !dbg !28
+ store volatile i32 %add1, ptr @"\01?x@@3HC", align 4, !dbg !28, !tbaa !13
ret void, !dbg !29
}
; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.start(i64, i8* nocapture) #1
+declare void @llvm.lifetime.start(i64, ptr nocapture) #1
; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.end(i64, i8* nocapture) #1
+declare void @llvm.lifetime.end(i64, ptr nocapture) #1
attributes #0 = { norecurse nounwind uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "frame-pointer"="none" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { argmemonly nounwind }
define dso_local <2 x i64> @_Z2t1v() #0 !dbg !23 {
entry:
%retval = alloca i128, align 16
- store i128 18446744073709551616, i128* %retval, align 16, !dbg !27
- %0 = bitcast i128* %retval to <2 x i64>*, !dbg !27
- %1 = load <2 x i64>, <2 x i64>* %0, align 16, !dbg !27
- ret <2 x i64> %1, !dbg !27
+ store i128 18446744073709551616, ptr %retval, align 16, !dbg !27
+ %0 = load <2 x i64>, ptr %retval, align 16, !dbg !27
+ ret <2 x i64> %0, !dbg !27
}
; Function Attrs: mustprogress noinline nounwind optnone
define dso_local <2 x i64> @_Z2t2v() #0 !dbg !28 {
entry:
%retval = alloca i128, align 16
- store i128 -18446744073709551616, i128* %retval, align 16, !dbg !31
- %0 = bitcast i128* %retval to <2 x i64>*, !dbg !31
- %1 = load <2 x i64>, <2 x i64>* %0, align 16, !dbg !31
- ret <2 x i64> %1, !dbg !31
+ store i128 -18446744073709551616, ptr %retval, align 16, !dbg !31
+ %0 = load <2 x i64>, ptr %retval, align 16, !dbg !31
+ ret <2 x i64> %0, !dbg !31
}
; Function Attrs: mustprogress noinline nounwind optnone
define dso_local i8 @_Z2t3v() #1 !dbg !32 {
entry:
%retval = alloca %struct.test, align 1
- %coerce.dive = getelementptr inbounds %struct.test, %struct.test* %retval, i32 0, i32 0, !dbg !41
- %0 = load i8, i8* %coerce.dive, align 1, !dbg !41
+ %0 = load i8, ptr %retval, align 1, !dbg !41
ret i8 %0, !dbg !41
}
%class.anon = type { i32 }
; Function Attrs: noinline norecurse optnone
-define dso_local i32 @main(i32 %argc, i8** %argv, i8** %arge) #0 !dbg !8 {
+define dso_local i32 @main(i32 %argc, ptr %argv, ptr %arge) #0 !dbg !8 {
entry:
%retval = alloca i32, align 4
- %arge.addr = alloca i8**, align 4
- %argv.addr = alloca i8**, align 4
+ %arge.addr = alloca ptr, align 4
+ %argv.addr = alloca ptr, align 4
%argc.addr = alloca i32, align 4
%Lambda = alloca %class.anon, align 4
- store i32 0, i32* %retval, align 4
- store i8** %arge, i8*** %arge.addr, align 4
- call void @llvm.dbg.declare(metadata i8*** %arge.addr, metadata !15, metadata !DIExpression()), !dbg !16
- store i8** %argv, i8*** %argv.addr, align 4
- call void @llvm.dbg.declare(metadata i8*** %argv.addr, metadata !17, metadata !DIExpression()), !dbg !16
- store i32 %argc, i32* %argc.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %argc.addr, metadata !18, metadata !DIExpression()), !dbg !16
- call void @llvm.dbg.declare(metadata %class.anon* %Lambda, metadata !19, metadata !DIExpression()), !dbg !28
- %0 = getelementptr inbounds %class.anon, %class.anon* %Lambda, i32 0, i32 0, !dbg !28
- %1 = load i32, i32* %argc.addr, align 4, !dbg !28
- store i32 %1, i32* %0, align 4, !dbg !28
- %call = call x86_thiscallcc i32 @"??R<lambda_0>@?0??main@@9@QBE@H@Z"(%class.anon* %Lambda, i32 0), !dbg !29
+ store i32 0, ptr %retval, align 4
+ store ptr %arge, ptr %arge.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %arge.addr, metadata !15, metadata !DIExpression()), !dbg !16
+ store ptr %argv, ptr %argv.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %argv.addr, metadata !17, metadata !DIExpression()), !dbg !16
+ store i32 %argc, ptr %argc.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %argc.addr, metadata !18, metadata !DIExpression()), !dbg !16
+ call void @llvm.dbg.declare(metadata ptr %Lambda, metadata !19, metadata !DIExpression()), !dbg !28
+ %0 = load i32, ptr %argc.addr, align 4, !dbg !28
+ store i32 %0, ptr %Lambda, align 4, !dbg !28
+ %call = call x86_thiscallcc i32 @"??R<lambda_0>@?0??main@@9@QBE@H@Z"(ptr %Lambda, i32 0), !dbg !29
ret i32 %call, !dbg !29
}
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
; Function Attrs: noinline nounwind optnone
-define internal x86_thiscallcc i32 @"??R<lambda_0>@?0??main@@9@QBE@H@Z"(%class.anon* %this, i32 %count) #2 align 2 !dbg !30 {
+define internal x86_thiscallcc i32 @"??R<lambda_0>@?0??main@@9@QBE@H@Z"(ptr %this, i32 %count) #2 align 2 !dbg !30 {
entry:
%count.addr = alloca i32, align 4
- %this.addr = alloca %class.anon*, align 4
- store i32 %count, i32* %count.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %count.addr, metadata !31, metadata !DIExpression()), !dbg !32
- store %class.anon* %this, %class.anon** %this.addr, align 4
- call void @llvm.dbg.declare(metadata %class.anon** %this.addr, metadata !33, metadata !DIExpression()), !dbg !35
- %this1 = load %class.anon*, %class.anon** %this.addr, align 4
- %0 = getelementptr inbounds %class.anon, %class.anon* %this1, i32 0, i32 0, !dbg !32
- %1 = load i32, i32* %0, align 4, !dbg !32
- %2 = load i32, i32* %count.addr, align 4, !dbg !32
- %cmp = icmp eq i32 %1, %2, !dbg !32
- %3 = zext i1 %cmp to i64, !dbg !32
+ %this.addr = alloca ptr, align 4
+ store i32 %count, ptr %count.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %count.addr, metadata !31, metadata !DIExpression()), !dbg !32
+ store ptr %this, ptr %this.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !33, metadata !DIExpression()), !dbg !35
+ %this1 = load ptr, ptr %this.addr, align 4
+ %0 = load i32, ptr %this1, align 4, !dbg !32
+ %1 = load i32, ptr %count.addr, align 4, !dbg !32
+ %cmp = icmp eq i32 %0, %1, !dbg !32
+ %2 = zext i1 %cmp to i64, !dbg !32
%cond = select i1 %cmp, i32 1, i32 0, !dbg !32
ret i32 %cond, !dbg !32
}
target triple = "i686-pc-windows-msvc"
; Function Attrs: norecurse nounwind
-define i32 @main(i32 %argc, i8** %argv) #0 !dbg !8 {
+define i32 @main(i32 %argc, ptr %argv) #0 !dbg !8 {
entry:
%retval = alloca i32, align 4
- %argv.addr = alloca i8**, align 4
+ %argv.addr = alloca ptr, align 4
%argc.addr = alloca i32, align 4
%localA = alloca i32, align 4
%localB = alloca i32, align 4
%localF = alloca i32, align 4
%localG = alloca i32, align 4
%localH = alloca i32, align 4
- store i32 0, i32* %retval, align 4
- store i8** %argv, i8*** %argv.addr, align 4, !tbaa !37
- call void @llvm.dbg.declare(metadata i8*** %argv.addr, metadata !17, metadata !DIExpression()), !dbg !41
- store i32 %argc, i32* %argc.addr, align 4, !tbaa !42
- call void @llvm.dbg.declare(metadata i32* %argc.addr, metadata !18, metadata !DIExpression()), !dbg !41
- %0 = bitcast i32* %localA to i8*, !dbg !44
- call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #4, !dbg !44
- call void @llvm.dbg.declare(metadata i32* %localA, metadata !19, metadata !DIExpression()), !dbg !44
- store i32 1, i32* %localA, align 4, !dbg !44, !tbaa !42
- %1 = bitcast i32* %localB to i8*, !dbg !45
- call void @llvm.lifetime.start.p0i8(i64 4, i8* %1) #4, !dbg !45
- call void @llvm.dbg.declare(metadata i32* %localB, metadata !20, metadata !DIExpression()), !dbg !45
- store i32 2, i32* %localB, align 4, !dbg !45, !tbaa !42
- %2 = load i32, i32* %argc.addr, align 4, !dbg !46, !tbaa !42
- %cmp = icmp ne i32 %2, 1, !dbg !46
+ store i32 0, ptr %retval, align 4
+ store ptr %argv, ptr %argv.addr, align 4, !tbaa !37
+ call void @llvm.dbg.declare(metadata ptr %argv.addr, metadata !17, metadata !DIExpression()), !dbg !41
+ store i32 %argc, ptr %argc.addr, align 4, !tbaa !42
+ call void @llvm.dbg.declare(metadata ptr %argc.addr, metadata !18, metadata !DIExpression()), !dbg !41
+ call void @llvm.lifetime.start.p0(i64 4, ptr %localA) #4, !dbg !44
+ call void @llvm.dbg.declare(metadata ptr %localA, metadata !19, metadata !DIExpression()), !dbg !44
+ store i32 1, ptr %localA, align 4, !dbg !44, !tbaa !42
+ call void @llvm.lifetime.start.p0(i64 4, ptr %localB) #4, !dbg !45
+ call void @llvm.dbg.declare(metadata ptr %localB, metadata !20, metadata !DIExpression()), !dbg !45
+ store i32 2, ptr %localB, align 4, !dbg !45, !tbaa !42
+ %0 = load i32, ptr %argc.addr, align 4, !dbg !46, !tbaa !42
+ %cmp = icmp ne i32 %0, 1, !dbg !46
%conv = zext i1 %cmp to i32, !dbg !46
%tobool = icmp ne i32 %conv, 0, !dbg !46
br i1 %tobool, label %if.then, label %if.end, !dbg !46, !prof !47
if.then: ; preds = %entry
- %3 = bitcast i32* %localC to i8*, !dbg !48
- call void @llvm.lifetime.start.p0i8(i64 4, i8* %3) #4, !dbg !48
- call void @llvm.dbg.declare(metadata i32* %localC, metadata !22, metadata !DIExpression()), !dbg !48
- store i32 3, i32* %localC, align 4, !dbg !48, !tbaa !42
- %4 = bitcast i32* %localC to i8*, !dbg !49
- call void @llvm.lifetime.end.p0i8(i64 4, i8* %4) #4, !dbg !49
+ call void @llvm.lifetime.start.p0(i64 4, ptr %localC) #4, !dbg !48
+ call void @llvm.dbg.declare(metadata ptr %localC, metadata !22, metadata !DIExpression()), !dbg !48
+ store i32 3, ptr %localC, align 4, !dbg !48, !tbaa !42
+ call void @llvm.lifetime.end.p0(i64 4, ptr %localC) #4, !dbg !49
br label %if.end, !dbg !49
if.end: ; preds = %if.then, %entry
- %5 = bitcast i32* %localB to i8*, !dbg !50
- call void @llvm.lifetime.end.p0i8(i64 4, i8* %5) #4, !dbg !50
- %6 = bitcast i32* %localD to i8*, !dbg !51
- call void @llvm.lifetime.start.p0i8(i64 4, i8* %6) #4, !dbg !51
- call void @llvm.dbg.declare(metadata i32* %localD, metadata !25, metadata !DIExpression()), !dbg !51
- store i32 4, i32* %localD, align 4, !dbg !51, !tbaa !42
- %7 = load i32, i32* %localD, align 4, !dbg !52, !tbaa !42
- store i32 %7, i32* %localA, align 4, !dbg !52, !tbaa !42
- %8 = bitcast i32* %localD to i8*, !dbg !53
- call void @llvm.lifetime.end.p0i8(i64 4, i8* %8) #4, !dbg !53
- %9 = bitcast i32* %localE to i8*, !dbg !54
- call void @llvm.lifetime.start.p0i8(i64 4, i8* %9) #4, !dbg !54
- call void @llvm.dbg.declare(metadata i32* %localE, metadata !27, metadata !DIExpression()), !dbg !54
- store i32 5, i32* %localE, align 4, !dbg !54, !tbaa !42
- %10 = load i32, i32* %localE, align 4, !dbg !55, !tbaa !42
- store i32 %10, i32* %localA, align 4, !dbg !55, !tbaa !42
- %11 = bitcast i32* %localE to i8*, !dbg !56
- call void @llvm.lifetime.end.p0i8(i64 4, i8* %11) #4, !dbg !56
- %12 = bitcast i32* %localF to i8*, !dbg !57
- call void @llvm.lifetime.start.p0i8(i64 4, i8* %12) #4, !dbg !57
- call void @llvm.dbg.declare(metadata i32* %localF, metadata !30, metadata !DIExpression()), !dbg !57
- store i32 6, i32* %localF, align 4, !dbg !57, !tbaa !42
- %13 = load i32, i32* %localF, align 4, !dbg !58, !tbaa !42
- store i32 %13, i32* %localA, align 4, !dbg !58, !tbaa !42
- %14 = bitcast i32* %localG to i8*, !dbg !59
- call void @llvm.lifetime.start.p0i8(i64 4, i8* %14) #4, !dbg !59
- call void @llvm.dbg.declare(metadata i32* %localG, metadata !32, metadata !DIExpression()), !dbg !59
- store i32 7, i32* %localG, align 4, !dbg !59, !tbaa !42
- %15 = load i32, i32* %localG, align 4, !dbg !60, !tbaa !42
- store i32 %15, i32* %localA, align 4, !dbg !60, !tbaa !42
- %16 = bitcast i32* %localG to i8*, !dbg !61
- call void @llvm.lifetime.end.p0i8(i64 4, i8* %16) #4, !dbg !61
- %17 = bitcast i32* %localF to i8*, !dbg !62
- call void @llvm.lifetime.end.p0i8(i64 4, i8* %17) #4, !dbg !62
- %18 = load i32, i32* %localA, align 4, !dbg !63, !tbaa !42
- %cmp1 = icmp eq i32 %18, 7, !dbg !63
+ call void @llvm.lifetime.end.p0(i64 4, ptr %localB) #4, !dbg !50
+ call void @llvm.lifetime.start.p0(i64 4, ptr %localD) #4, !dbg !51
+ call void @llvm.dbg.declare(metadata ptr %localD, metadata !25, metadata !DIExpression()), !dbg !51
+ store i32 4, ptr %localD, align 4, !dbg !51, !tbaa !42
+ %1 = load i32, ptr %localD, align 4, !dbg !52, !tbaa !42
+ store i32 %1, ptr %localA, align 4, !dbg !52, !tbaa !42
+ call void @llvm.lifetime.end.p0(i64 4, ptr %localD) #4, !dbg !53
+ call void @llvm.lifetime.start.p0(i64 4, ptr %localE) #4, !dbg !54
+ call void @llvm.dbg.declare(metadata ptr %localE, metadata !27, metadata !DIExpression()), !dbg !54
+ store i32 5, ptr %localE, align 4, !dbg !54, !tbaa !42
+ %2 = load i32, ptr %localE, align 4, !dbg !55, !tbaa !42
+ store i32 %2, ptr %localA, align 4, !dbg !55, !tbaa !42
+ call void @llvm.lifetime.end.p0(i64 4, ptr %localE) #4, !dbg !56
+ call void @llvm.lifetime.start.p0(i64 4, ptr %localF) #4, !dbg !57
+ call void @llvm.dbg.declare(metadata ptr %localF, metadata !30, metadata !DIExpression()), !dbg !57
+ store i32 6, ptr %localF, align 4, !dbg !57, !tbaa !42
+ %3 = load i32, ptr %localF, align 4, !dbg !58, !tbaa !42
+ store i32 %3, ptr %localA, align 4, !dbg !58, !tbaa !42
+ call void @llvm.lifetime.start.p0(i64 4, ptr %localG) #4, !dbg !59
+ call void @llvm.dbg.declare(metadata ptr %localG, metadata !32, metadata !DIExpression()), !dbg !59
+ store i32 7, ptr %localG, align 4, !dbg !59, !tbaa !42
+ %4 = load i32, ptr %localG, align 4, !dbg !60, !tbaa !42
+ store i32 %4, ptr %localA, align 4, !dbg !60, !tbaa !42
+ call void @llvm.lifetime.end.p0(i64 4, ptr %localG) #4, !dbg !61
+ call void @llvm.lifetime.end.p0(i64 4, ptr %localF) #4, !dbg !62
+ %5 = load i32, ptr %localA, align 4, !dbg !63, !tbaa !42
+ %cmp1 = icmp eq i32 %5, 7, !dbg !63
br i1 %cmp1, label %if.then2, label %if.end3, !dbg !63
if.then2: ; preds = %if.end
- %19 = bitcast i32* %localH to i8*, !dbg !64
- call void @llvm.lifetime.start.p0i8(i64 4, i8* %19) #4, !dbg !64
- call void @llvm.dbg.declare(metadata i32* %localH, metadata !34, metadata !DIExpression()), !dbg !64
- store i32 8, i32* %localH, align 4, !dbg !64, !tbaa !42
- %20 = load i32, i32* %localH, align 4, !dbg !65, !tbaa !42
- store i32 %20, i32* %localA, align 4, !dbg !65, !tbaa !42
- %21 = bitcast i32* %localH to i8*, !dbg !66
- call void @llvm.lifetime.end.p0i8(i64 4, i8* %21) #4, !dbg !66
+ call void @llvm.lifetime.start.p0(i64 4, ptr %localH) #4, !dbg !64
+ call void @llvm.dbg.declare(metadata ptr %localH, metadata !34, metadata !DIExpression()), !dbg !64
+ store i32 8, ptr %localH, align 4, !dbg !64, !tbaa !42
+ %6 = load i32, ptr %localH, align 4, !dbg !65, !tbaa !42
+ store i32 %6, ptr %localA, align 4, !dbg !65, !tbaa !42
+ call void @llvm.lifetime.end.p0(i64 4, ptr %localH) #4, !dbg !66
br label %if.end3, !dbg !66
if.end3: ; preds = %if.then2, %if.end
- %22 = load i32, i32* %localA, align 4, !dbg !67, !tbaa !42
- %cmp4 = icmp ne i32 %22, 8, !dbg !67
- %23 = zext i1 %cmp4 to i64, !dbg !67
+ %7 = load i32, ptr %localA, align 4, !dbg !67, !tbaa !42
+ %cmp4 = icmp ne i32 %7, 8, !dbg !67
+ %8 = zext i1 %cmp4 to i64, !dbg !67
%cond = select i1 %cmp4, i32 -1, i32 0, !dbg !67
- %24 = bitcast i32* %localA to i8*, !dbg !68
- call void @llvm.lifetime.end.p0i8(i64 4, i8* %24) #4, !dbg !68
+ call void @llvm.lifetime.end.p0(i64 4, ptr %localA) #4, !dbg !68
ret i32 %cond, !dbg !67
}
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #2
+declare void @llvm.lifetime.start.p0(i64, ptr nocapture) #2
; Function Attrs: nounwind readnone
declare i32 @llvm.expect.i32(i32, i32) #3
; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #2
+declare void @llvm.lifetime.end.p0(i64, ptr nocapture) #2
attributes #0 = { norecurse nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "frame-pointer"="none" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-features"="+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { nounwind readnone speculatable }
define dso_local i32 @main() local_unnamed_addr #0 !dbg !8 {
entry:
%x = alloca i32, align 4
- %x.0.x.0..sroa_cast = bitcast i32* %x to i8*, !dbg !15
- call void @llvm.dbg.declare(metadata i32* %x, metadata !13, metadata !DIExpression()), !dbg !15
- store volatile i32 1, i32* %x, align 4, !dbg !16, !tbaa !17
- store volatile i32 2, i32* %x, align 4, !dbg !21, !tbaa !17
- store volatile i32 3, i32* %x, align 4, !dbg !22, !tbaa !17
+ call void @llvm.dbg.declare(metadata ptr %x, metadata !13, metadata !DIExpression()), !dbg !15
+ store volatile i32 1, ptr %x, align 4, !dbg !16, !tbaa !17
+ store volatile i32 2, ptr %x, align 4, !dbg !21, !tbaa !17
+ store volatile i32 3, ptr %x, align 4, !dbg !22, !tbaa !17
ret i32 0, !dbg !23
}
@str_const = internal unnamed_addr constant [4 x i8] c"str\00", align 1
-declare i32 @puts(i8*)
-declare void @use_i32(i32*)
+declare i32 @puts(ptr)
+declare void @use_i32(ptr)
declare void @llvm.dbg.value(metadata, metadata, metadata) nounwind readnone
; We had a line info quality issue where the LEA for the string constant had no
br label %return, !dbg !18
if.end: ; preds = %entry
- %call = call i32 @puts(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str_const, i32 0, i32 0)), !dbg !19
+ %call = call i32 @puts(ptr @str_const), !dbg !19
br label %return, !dbg !20
return: ; preds = %if.end, %if.then
if.end: ; preds = %entry
call void asm sideeffect "nop", ""()
- %call = call i32 @puts(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str_const, i32 0, i32 0)), !dbg !24
+ %call = call i32 @puts(ptr @str_const), !dbg !24
br label %return, !dbg !25
return: ; preds = %if.end, %if.then
define void @lea_dbg_value(i1 %cond) !dbg !30 {
entry:
%value = alloca i32
- store i32 42, i32* %value
+ store i32 42, ptr %value
br i1 %cond, label %if.then, label %if.end, !dbg !31
if.then: ; preds = %entry
br label %return, !dbg !32
if.end: ; preds = %entry
- call void @llvm.dbg.value(metadata i32* %value, metadata !35, metadata !13), !dbg !34
- call void @use_i32(i32* %value), !dbg !33
+ call void @llvm.dbg.value(metadata ptr %value, metadata !35, metadata !13), !dbg !34
+ call void @use_i32(ptr %value), !dbg !33
br label %return, !dbg !34
return: ; preds = %if.end, %if.then
@"\01?gy@@3UFoo@@A" = global %struct.Foo zeroinitializer, align 1, !dbg !0
@"\01?global@@3HA" = external global i32, align 4
-@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__sub_I_t.cpp, i8* null }]
+@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_t.cpp, ptr null }]
; Function Attrs: noinline uwtable
define internal void @"\01??__Egy@@YAXXZ"() #0 !dbg !18 {
entry:
- %call = call %struct.Foo* @"\01??0Foo@@QEAA@XZ"(%struct.Foo* @"\01?gy@@3UFoo@@A"), !dbg !21
+ %call = call ptr @"\01??0Foo@@QEAA@XZ"(ptr @"\01?gy@@3UFoo@@A"), !dbg !21
ret void, !dbg !21
}
-declare %struct.Foo* @"\01??0Foo@@QEAA@XZ"(%struct.Foo* returned) unnamed_addr #1
+declare ptr @"\01??0Foo@@QEAA@XZ"(ptr returned) unnamed_addr #1
; Function Attrs: noinline nounwind optnone uwtable
define void @"\01?f@@YAXXZ"() #2 !dbg !22 {
entry:
- %0 = load i32, i32* @"\01?global@@3HA", align 4, !dbg !23
+ %0 = load i32, ptr @"\01?global@@3HA", align 4, !dbg !23
%inc = add nsw i32 %0, 1, !dbg !23
- store i32 %inc, i32* @"\01?global@@3HA", align 4, !dbg !23
- %1 = load i32, i32* @"\01?global@@3HA", align 4, !dbg !24
+ store i32 %inc, ptr @"\01?global@@3HA", align 4, !dbg !23
+ %1 = load i32, ptr @"\01?global@@3HA", align 4, !dbg !24
%inc1 = add nsw i32 %1, 1, !dbg !24
- store i32 %inc1, i32* @"\01?global@@3HA", align 4, !dbg !24
+ store i32 %inc1, ptr @"\01?global@@3HA", align 4, !dbg !24
ret void, !dbg !25
}
; Function Attrs: nounwind uwtable
define i32 @f() local_unnamed_addr #0 !dbg !7 {
entry:
- %call = tail call i32 bitcast (i32 (...)* @barrier to i32 ()*)() #4, !dbg !15
+ %call = tail call i32 @barrier() #4, !dbg !15
%tobool = icmp eq i32 %call, 0, !dbg !15
br i1 %tobool, label %if.else, label %if.then, !dbg !16
if.then: ; preds = %entry
- %call1 = tail call i32 bitcast (i32 (...)* @vardef to i32 ()*)() #4, !dbg !17
+ %call1 = tail call i32 @vardef() #4, !dbg !17
tail call void @llvm.dbg.value(metadata i32 %call1, metadata !12, metadata !18), !dbg !19
- %call2 = tail call i32 bitcast (i32 (...)* @barrier to i32 ()*)() #4, !dbg !20
+ %call2 = tail call i32 @barrier() #4, !dbg !20
%tobool3 = icmp eq i32 %call2, 0, !dbg !20
br i1 %tobool3, label %if.end, label %if.then4, !dbg !22
br label %if.end6, !dbg !25
if.else: ; preds = %entry
- %call5 = tail call i32 bitcast (i32 (...)* @barrier to i32 ()*)() #4, !dbg !26
+ %call5 = tail call i32 @barrier() #4, !dbg !26
br label %if.end6
if.end6: ; preds = %if.else, %if.end
define void @f(i32 %param) #0 !dbg !4 {
entry:
%v.i1 = alloca i32, align 4
- call void @llvm.dbg.declare(metadata i32* %v.i1, metadata !15, metadata !16), !dbg !17
+ call void @llvm.dbg.declare(metadata ptr %v.i1, metadata !15, metadata !16), !dbg !17
%v.i = alloca i32, align 4
- call void @llvm.dbg.declare(metadata i32* %v.i, metadata !15, metadata !16), !dbg !21
+ call void @llvm.dbg.declare(metadata ptr %v.i, metadata !15, metadata !16), !dbg !21
%param.addr = alloca i32, align 4
%a = alloca i32, align 4
%b = alloca i32, align 4
- store i32 %param, i32* %param.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %param.addr, metadata !24, metadata !16), !dbg !25
- %0 = load i32, i32* %param.addr, align 4, !dbg !26
+ store i32 %param, ptr %param.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %param.addr, metadata !24, metadata !16), !dbg !25
+ %0 = load i32, ptr %param.addr, align 4, !dbg !26
%tobool = icmp ne i32 %0, 0, !dbg !26
br i1 %tobool, label %if.then, label %if.else, !dbg !27
if.then: ; preds = %entry
- call void @llvm.dbg.declare(metadata i32* %a, metadata !28, metadata !16), !dbg !29
- store i32 42, i32* %a, align 4, !dbg !29
- store i32 3, i32* %v.i, align 4, !dbg !21
- call void @capture(i32* %v.i) #3, !dbg !30
- call void @capture(i32* %a), !dbg !31
+ call void @llvm.dbg.declare(metadata ptr %a, metadata !28, metadata !16), !dbg !29
+ store i32 42, ptr %a, align 4, !dbg !29
+ store i32 3, ptr %v.i, align 4, !dbg !21
+ call void @capture(ptr %v.i) #3, !dbg !30
+ call void @capture(ptr %a), !dbg !31
br label %if.end, !dbg !32
if.else: ; preds = %entry
- call void @llvm.dbg.declare(metadata i32* %b, metadata !33, metadata !16), !dbg !34
- store i32 42, i32* %b, align 4, !dbg !34
- store i32 3, i32* %v.i1, align 4, !dbg !17
- call void @capture(i32* %v.i1) #3, !dbg !35
- call void @capture(i32* %b), !dbg !36
+ call void @llvm.dbg.declare(metadata ptr %b, metadata !33, metadata !16), !dbg !34
+ store i32 42, ptr %b, align 4, !dbg !34
+ store i32 3, ptr %v.i1, align 4, !dbg !17
+ call void @capture(ptr %v.i1) #3, !dbg !35
+ call void @capture(ptr %b), !dbg !36
br label %if.end
if.end: ; preds = %if.else, %if.then
; Function Attrs: nounwind readnone
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
-declare void @capture(i32*) #2
+declare void @capture(ptr) #2
attributes #0 = { nounwind uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "frame-pointer"="none" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { nounwind readnone }
%retval = alloca i32, align 4
%iDebug1 = alloca i64, align 8
%iDebug2 = alloca i64, align 8
- store i32 0, i32* %retval, align 4
- call void @llvm.dbg.declare(metadata i64* %iDebug1, metadata !40, metadata !DIExpression()), !dbg !41
- store i64 -4295033092, i64* %iDebug1, align 8, !dbg !41
- call void @llvm.dbg.declare(metadata i64* %iDebug2, metadata !42, metadata !DIExpression()), !dbg !43
- store i64 4295032830, i64* %iDebug2, align 8, !dbg !43
+ store i32 0, ptr %retval, align 4
+ call void @llvm.dbg.declare(metadata ptr %iDebug1, metadata !40, metadata !DIExpression()), !dbg !41
+ store i64 -4295033092, ptr %iDebug1, align 8, !dbg !41
+ call void @llvm.dbg.declare(metadata ptr %iDebug2, metadata !42, metadata !DIExpression()), !dbg !43
+ store i64 4295032830, ptr %iDebug2, align 8, !dbg !43
ret i32 0, !dbg !44
}
%a.addr = alloca i32, align 4
%d = alloca i32, align 4
%e = alloca i32, align 4
- store i32 %c, i32* %c.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %c.addr, metadata !11, metadata !12), !dbg !13
- store i32 %b, i32* %b.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %b.addr, metadata !14, metadata !12), !dbg !15
- store i32 %a, i32* %a.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %a.addr, metadata !16, metadata !12), !dbg !17
- call void @llvm.dbg.declare(metadata i32* %d, metadata !18, metadata !12), !dbg !19
- store i32 4, i32* %d, align 4, !dbg !19
- call void @llvm.dbg.declare(metadata i32* %e, metadata !20, metadata !12), !dbg !21
- store i32 5, i32* %e, align 4, !dbg !21
- %0 = load i32, i32* %a.addr, align 4, !dbg !22
- %1 = load i32, i32* %b.addr, align 4, !dbg !23
+ store i32 %c, ptr %c.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %c.addr, metadata !11, metadata !12), !dbg !13
+ store i32 %b, ptr %b.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %b.addr, metadata !14, metadata !12), !dbg !15
+ store i32 %a, ptr %a.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %a.addr, metadata !16, metadata !12), !dbg !17
+ call void @llvm.dbg.declare(metadata ptr %d, metadata !18, metadata !12), !dbg !19
+ store i32 4, ptr %d, align 4, !dbg !19
+ call void @llvm.dbg.declare(metadata ptr %e, metadata !20, metadata !12), !dbg !21
+ store i32 5, ptr %e, align 4, !dbg !21
+ %0 = load i32, ptr %a.addr, align 4, !dbg !22
+ %1 = load i32, ptr %b.addr, align 4, !dbg !23
%add = add nsw i32 %0, %1, !dbg !24
- %2 = load i32, i32* %c.addr, align 4, !dbg !25
+ %2 = load i32, ptr %c.addr, align 4, !dbg !25
%add1 = add nsw i32 %add, %2, !dbg !26
- %3 = load i32, i32* %d, align 4, !dbg !27
+ %3 = load i32, ptr %d, align 4, !dbg !27
%add2 = add nsw i32 %add1, %3, !dbg !28
- %4 = load i32, i32* %e, align 4, !dbg !29
+ %4 = load i32, ptr %e, align 4, !dbg !29
%add3 = add nsw i32 %add2, %4, !dbg !30
ret i32 %add3, !dbg !31
}
%v3 = alloca %"class.WrapClass::Inner", align 4
%v4 = alloca i32, align 4
%v5 = alloca %"union.WrapUnion::Inner", align 4
- call void @llvm.dbg.declare(metadata i32* %v1, metadata !19, metadata !DIExpression()), !dbg !23
- call void @llvm.dbg.declare(metadata %"struct.WrapStruct::Inner"* %v2, metadata !24, metadata !DIExpression()), !dbg !30
- call void @llvm.dbg.declare(metadata %"class.WrapClass::Inner"* %v3, metadata !31, metadata !DIExpression()), !dbg !37
- call void @llvm.dbg.declare(metadata i32* %v4, metadata !38, metadata !DIExpression()), !dbg !39
- call void @llvm.dbg.declare(metadata %"union.WrapUnion::Inner"* %v5, metadata !40, metadata !DIExpression()), !dbg !48
+ call void @llvm.dbg.declare(metadata ptr %v1, metadata !19, metadata !DIExpression()), !dbg !23
+ call void @llvm.dbg.declare(metadata ptr %v2, metadata !24, metadata !DIExpression()), !dbg !30
+ call void @llvm.dbg.declare(metadata ptr %v3, metadata !31, metadata !DIExpression()), !dbg !37
+ call void @llvm.dbg.declare(metadata ptr %v4, metadata !38, metadata !DIExpression()), !dbg !39
+ call void @llvm.dbg.declare(metadata ptr %v5, metadata !40, metadata !DIExpression()), !dbg !48
ret void, !dbg !49
}
ret i32 %mul3, !dbg !62
}
-define dso_local i32 @main(i32 %argc, i8** nocapture readnone %argv) local_unnamed_addr #1 !dbg !63 !annotation !72 {
+define dso_local i32 @main(i32 %argc, ptr nocapture readnone %argv) local_unnamed_addr #1 !dbg !63 !annotation !72 {
entry:
- call void @llvm.dbg.value(metadata i8** %argv, metadata !70, metadata !DIExpression()), !dbg !73
+ call void @llvm.dbg.value(metadata ptr %argv, metadata !70, metadata !DIExpression()), !dbg !73
call void @llvm.dbg.value(metadata i32 %argc, metadata !71, metadata !DIExpression()), !dbg !73
%cmp = icmp eq i32 %argc, 2, !dbg !74
br i1 %cmp, label %return, label %if.end, !dbg !74
!37 = !{i32 999999, i64 1, i32 2}
!38 = !{i32 5, !"CG Profile", !39}
!39 = !{!40, !41}
-!40 = !{i32 (i32)* @"?bar@@YAHH@Z", i32 (i32)* @"?foo@@YAHH@Z", i64 0}
-!41 = !{i32 (i32)* @"?bar@@YAHH@Z", i32 (i32)* @"?foo2@@YAHH@Z", i64 0}
+!40 = !{ptr @"?bar@@YAHH@Z", ptr @"?foo@@YAHH@Z", i64 0}
+!41 = !{ptr @"?bar@@YAHH@Z", ptr @"?foo2@@YAHH@Z", i64 0}
!43 = distinct !DISubprogram(name: "foo", linkageName: "?foo@@YAHH@Z", scope: !1, file: !1, line: 2, type: !44, scopeLine: 2, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !47)
!44 = !DISubroutineType(types: !45)
!45 = !{!46, !46}
; Function Attrs: nounwind uwtable
define i32 @loop_csr() local_unnamed_addr #0 !dbg !7 {
entry:
- tail call void @llvm.dbg.declare(metadata %struct.IntPair* undef, metadata !12, metadata !17), !dbg !18
+ tail call void @llvm.dbg.declare(metadata ptr undef, metadata !12, metadata !17), !dbg !18
tail call void @llvm.dbg.value(metadata i32 0, metadata !12, metadata !19), !dbg !18
tail call void @llvm.dbg.value(metadata i32 0, metadata !12, metadata !20), !dbg !18
tail call void @llvm.dbg.value(metadata i32 0, metadata !12, metadata !19), !dbg !18
tail call void @llvm.dbg.value(metadata i32 0, metadata !12, metadata !20), !dbg !18
- store i32 0, i32* @i, align 4, !dbg !21, !tbaa !24
- %0 = load i32, i32* @n, align 4, !dbg !28, !tbaa !24
+ store i32 0, ptr @i, align 4, !dbg !21, !tbaa !24
+ %0 = load i32, ptr @n, align 4, !dbg !28, !tbaa !24
%cmp9 = icmp sgt i32 %0, 0, !dbg !29
br i1 %cmp9, label %for.body, label %for.end, !dbg !30
tail call void @llvm.dbg.value(metadata i32 %call, metadata !12, metadata !19), !dbg !18
%call2 = tail call i32 @g(i32 %o.sroa.5.010) #5, !dbg !33
tail call void @llvm.dbg.value(metadata i32 %call2, metadata !12, metadata !20), !dbg !18
- %1 = load i32, i32* @i, align 4, !dbg !21, !tbaa !24
+ %1 = load i32, ptr @i, align 4, !dbg !21, !tbaa !24
%inc = add nsw i32 %1, 1, !dbg !21
- store i32 %inc, i32* @i, align 4, !dbg !21, !tbaa !24
- %2 = load i32, i32* @n, align 4, !dbg !28, !tbaa !24
+ store i32 %inc, ptr @i, align 4, !dbg !21, !tbaa !24
+ %2 = load i32, ptr @n, align 4, !dbg !28, !tbaa !24
%cmp = icmp slt i32 %inc, %2, !dbg !29
br i1 %cmp, label %for.body, label %for.end, !dbg !30, !llvm.loop !34
%o.sroa.1.0.extract.shift = lshr i64 %o.coerce, 32
%o.sroa.1.0.extract.trunc = trunc i64 %o.sroa.1.0.extract.shift to i32
tail call void @llvm.dbg.value(metadata i32 %o.sroa.1.0.extract.trunc, metadata !47, metadata !20), !dbg !48
- tail call void @llvm.dbg.declare(metadata %struct.PadRight* undef, metadata !47, metadata !17), !dbg !48
+ tail call void @llvm.dbg.declare(metadata ptr undef, metadata !47, metadata !17), !dbg !48
ret i32 %o.sroa.1.0.extract.trunc, !dbg !49
}
entry:
%o.sroa.0.0.extract.trunc = trunc i64 %o.coerce to i32
tail call void @llvm.dbg.value(metadata i32 %o.sroa.0.0.extract.trunc, metadata !58, metadata !19), !dbg !59
- tail call void @llvm.dbg.declare(metadata %struct.PadLeft* undef, metadata !58, metadata !17), !dbg !59
+ tail call void @llvm.dbg.declare(metadata ptr undef, metadata !58, metadata !17), !dbg !59
ret i32 %o.sroa.0.0.extract.trunc, !dbg !60
}
; Function Attrs: nounwind readonly uwtable
-define i32 @nested(%struct.Nested* nocapture readonly %o) local_unnamed_addr #4 !dbg !61 {
+define i32 @nested(ptr nocapture readonly %o) local_unnamed_addr #4 !dbg !61 {
entry:
- tail call void @llvm.dbg.declare(metadata %struct.Nested* %o, metadata !71, metadata !73), !dbg !74
- tail call void @llvm.dbg.declare(metadata %struct.PadLeft* undef, metadata !72, metadata !17), !dbg !75
- %p.sroa.3.0..sroa_idx2 = getelementptr inbounds %struct.Nested, %struct.Nested* %o, i64 0, i32 0, i64 1, i32 1, !dbg !76
- %p.sroa.3.0.copyload = load i32, i32* %p.sroa.3.0..sroa_idx2, align 4, !dbg !76
+ tail call void @llvm.dbg.declare(metadata ptr %o, metadata !71, metadata !73), !dbg !74
+ tail call void @llvm.dbg.declare(metadata ptr undef, metadata !72, metadata !17), !dbg !75
+ %p.sroa.3.0..sroa_idx2 = getelementptr inbounds %struct.Nested, ptr %o, i64 0, i32 0, i64 1, i32 1, !dbg !76
+ %p.sroa.3.0.copyload = load i32, ptr %p.sroa.3.0..sroa_idx2, align 4, !dbg !76
tail call void @llvm.dbg.value(metadata i32 %p.sroa.3.0.copyload, metadata !72, metadata !20), !dbg !75
ret i32 %p.sroa.3.0.copyload, !dbg !77
}
; Function Attrs: nounwind uwtable
define i32 @bitpiece_spill() local_unnamed_addr #0 !dbg !78 {
entry:
- tail call void @llvm.dbg.declare(metadata %struct.IntPair* undef, metadata !80, metadata !17), !dbg !81
+ tail call void @llvm.dbg.declare(metadata ptr undef, metadata !80, metadata !17), !dbg !81
tail call void @llvm.dbg.value(metadata i32 0, metadata !80, metadata !19), !dbg !81
%call = tail call i32 @g(i32 0) #5, !dbg !82
tail call void @llvm.dbg.value(metadata i32 %call, metadata !80, metadata !20), !dbg !81
define void @baz() {
entry:
%x.i.i = alloca i32, align 4
- call void @llvm.dbg.declare(metadata i32* %x.i.i, metadata !6, metadata !12), !dbg !13
- store i32 5, i32* %x.i.i, align 4, !dbg !13
+ call void @llvm.dbg.declare(metadata ptr %x.i.i, metadata !6, metadata !12), !dbg !13
+ store i32 5, ptr %x.i.i, align 4, !dbg !13
ret void
}
%struct.Bits = type { i8 }
@"?bits@@3UBits@@A" = dso_local global %struct.Bits zeroinitializer, align 1, !dbg !0
-@"?p_const@@3PEBEEB" = dso_local global i8* null, align 8, !dbg !6
+@"?p_const@@3PEBEEB" = dso_local global ptr null, align 8, !dbg !6
!llvm.dbg.cu = !{!2}
!llvm.module.flags = !{!15, !16, !17, !18}
; typedef Foo FooTypedef;
; typedef Bar BarTypedef;
;
-; int func(void *F) { return 7; }
-; int func(const FooTypedef *F) { return func((void*)F); }
-; int func(const BarTypedef *B) { return func((void*)B->X); }
+; int func(ptr F) { return 7; }
+; int func(const FooTypedef *F) { return func((ptr)F); }
+; int func(const BarTypedef *B) { return func((ptr)B->X); }
; CHECK-NOT: UDTName: FooTypedef
; CHECK: UDTName: BarTypedef
%struct.Bar = type { i32 }
; Function Attrs: noinline nounwind optnone
-define i32 @"\01?func@@YAHPAX@Z"(i8* %F) #0 !dbg !10 {
+define i32 @"\01?func@@YAHPAX@Z"(ptr %F) #0 !dbg !10 {
entry:
- %F.addr = alloca i8*, align 4
- store i8* %F, i8** %F.addr, align 4
- call void @llvm.dbg.declare(metadata i8** %F.addr, metadata !14, metadata !DIExpression()), !dbg !15
+ %F.addr = alloca ptr, align 4
+ store ptr %F, ptr %F.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %F.addr, metadata !14, metadata !DIExpression()), !dbg !15
ret i32 7, !dbg !16
}
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
; Function Attrs: noinline nounwind optnone
-define i32 @"\01?func@@YAHPBUFoo@@@Z"(%struct.Foo* %F) #0 !dbg !17 {
+define i32 @"\01?func@@YAHPBUFoo@@@Z"(ptr %F) #0 !dbg !17 {
entry:
- %F.addr = alloca %struct.Foo*, align 4
- store %struct.Foo* %F, %struct.Foo** %F.addr, align 4
- call void @llvm.dbg.declare(metadata %struct.Foo** %F.addr, metadata !24, metadata !DIExpression()), !dbg !25
- %0 = load %struct.Foo*, %struct.Foo** %F.addr, align 4, !dbg !26
- %1 = bitcast %struct.Foo* %0 to i8*, !dbg !26
- %call = call i32 @"\01?func@@YAHPAX@Z"(i8* %1), !dbg !27
+ %F.addr = alloca ptr, align 4
+ store ptr %F, ptr %F.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %F.addr, metadata !24, metadata !DIExpression()), !dbg !25
+ %0 = load ptr, ptr %F.addr, align 4, !dbg !26
+ %call = call i32 @"\01?func@@YAHPAX@Z"(ptr %0), !dbg !27
ret i32 %call, !dbg !28
}
; Function Attrs: noinline nounwind optnone
-define i32 @"\01?func@@YAHPBUBar@@@Z"(%struct.Bar* %B) #0 !dbg !29 {
+define i32 @"\01?func@@YAHPBUBar@@@Z"(ptr %B) #0 !dbg !29 {
entry:
- %B.addr = alloca %struct.Bar*, align 4
- store %struct.Bar* %B, %struct.Bar** %B.addr, align 4
- call void @llvm.dbg.declare(metadata %struct.Bar** %B.addr, metadata !42, metadata !DIExpression()), !dbg !43
- %0 = load %struct.Bar*, %struct.Bar** %B.addr, align 4, !dbg !44
- %X = getelementptr inbounds %struct.Bar, %struct.Bar* %0, i32 0, i32 0, !dbg !45
- %1 = load i32, i32* %X, align 4, !dbg !45
- %2 = inttoptr i32 %1 to i8*, !dbg !46
- %call = call i32 @"\01?func@@YAHPAX@Z"(i8* %2), !dbg !47
+ %B.addr = alloca ptr, align 4
+ store ptr %B, ptr %B.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %B.addr, metadata !42, metadata !DIExpression()), !dbg !43
+ %0 = load ptr, ptr %B.addr, align 4, !dbg !44
+ %1 = load i32, ptr %0, align 4, !dbg !45
+ %2 = inttoptr i32 %1 to ptr, !dbg !46
+ %call = call i32 @"\01?func@@YAHPAX@Z"(ptr %2), !dbg !47
ret i32 %call, !dbg !48
}
tail call void @llvm.dbg.value(metadata i32 %call2, metadata !29, metadata !23), !dbg !35
%add.i = add nsw i32 %call2, 1, !dbg !37
tail call void @llvm.dbg.value(metadata i32 %add.i, metadata !34, metadata !23), !dbg !38
- %0 = load volatile i32, i32* @x, align 4, !dbg !39, !tbaa !40
+ %0 = load volatile i32, ptr @x, align 4, !dbg !39, !tbaa !40
%inc.i = add nsw i32 %0, 1, !dbg !39
- store volatile i32 %inc.i, i32* @x, align 4, !dbg !39, !tbaa !40
+ store volatile i32 %inc.i, ptr @x, align 4, !dbg !39, !tbaa !40
tail call void @llvm.dbg.value(metadata i32 %add.i, metadata !20, metadata !23), !dbg !44
tail call void @putint(i32 %add.i) #3, !dbg !45
br label %if.end, !dbg !46
; C++ source to regenerate:
; $ cat /tmp/a.cc
; struct S { int x; };
-; int f(void *p) {
+; int f(ptr p) {
; return static_cast<S*>(p)->x;
; }
; $ clang /tmp/a.cc -S -emit-llvm -g -gcodeview -target x86_64-windows-msvc -o t.ll
%struct.S = type { i32 }
; Function Attrs: nounwind uwtable
-define i32 @"\01?f@@YAHPEAX@Z"(i8* %p) #0 !dbg !13 {
+define i32 @"\01?f@@YAHPEAX@Z"(ptr %p) #0 !dbg !13 {
entry:
- %p.addr = alloca i8*, align 8
- store i8* %p, i8** %p.addr, align 8
- call void @llvm.dbg.declare(metadata i8** %p.addr, metadata !17, metadata !18), !dbg !19
- %0 = load i8*, i8** %p.addr, align 8, !dbg !20
- %1 = bitcast i8* %0 to %struct.S*, !dbg !21
- %x = getelementptr inbounds %struct.S, %struct.S* %1, i32 0, i32 0, !dbg !22
- %2 = load i32, i32* %x, align 4, !dbg !22
- ret i32 %2, !dbg !23
+ %p.addr = alloca ptr, align 8
+ store ptr %p, ptr %p.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %p.addr, metadata !17, metadata !18), !dbg !19
+ %0 = load ptr, ptr %p.addr, align 8, !dbg !20
+ %1 = load i32, ptr %0, align 4, !dbg !22
+ ret i32 %1, !dbg !23
}
; Function Attrs: nounwind readnone
define void @"\01?baz@bar@foo@@YAXXZ"() #0 !dbg !20 {
entry:
%l = alloca %struct.LocalRecord, align 4
- call void @llvm.dbg.declare(metadata %struct.LocalRecord* %l, metadata !23, metadata !27), !dbg !28
+ call void @llvm.dbg.declare(metadata ptr %l, metadata !23, metadata !27), !dbg !28
ret void, !dbg !29
}
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
; Function Attrs: nounwind uwtable
-define void @"\01?method@GlobalRecord@bar@foo@@QEAAXXZ"(%"struct.foo::bar::GlobalRecord"* %this) #0 align 2 !dbg !30 {
+define void @"\01?method@GlobalRecord@bar@foo@@QEAAXXZ"(ptr %this) #0 align 2 !dbg !30 {
entry:
- %this.addr = alloca %"struct.foo::bar::GlobalRecord"*, align 8
- store %"struct.foo::bar::GlobalRecord"* %this, %"struct.foo::bar::GlobalRecord"** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %"struct.foo::bar::GlobalRecord"** %this.addr, metadata !31, metadata !27), !dbg !33
- %this1 = load %"struct.foo::bar::GlobalRecord"*, %"struct.foo::bar::GlobalRecord"** %this.addr, align 8
+ %this.addr = alloca ptr, align 8
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !31, metadata !27), !dbg !33
+ %this1 = load ptr, ptr %this.addr, align 8
ret void, !dbg !34
}
%struct.A = type { i8 }
-@"\01?p@@3PAUA@@A" = global %struct.A* null, align 4, !dbg !0
-@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__sub_I_t.cpp, i8* null }]
+@"\01?p@@3PAUA@@A" = global ptr null, align 4, !dbg !0
+@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_t.cpp, ptr null }]
; Function Attrs: noinline
define internal void @"\01??__Ep@@YAXXZ"() #0 !dbg !25 {
entry:
- %call = call i8* @"\01??2@YAPAXI@Z"(i32 1) #2, !dbg !26
- %0 = bitcast i8* %call to %struct.A*, !dbg !26
- store %struct.A* %0, %struct.A** @"\01?p@@3PAUA@@A", align 4, !dbg !26
+ %call = call ptr @"\01??2@YAPAXI@Z"(i32 1) #2, !dbg !26
+ store ptr %call, ptr @"\01?p@@3PAUA@@A", align 4, !dbg !26
ret void, !dbg !27
}
; Function Attrs: nobuiltin
-declare noalias i8* @"\01??2@YAPAXI@Z"(i32) #1
+declare noalias ptr @"\01??2@YAPAXI@Z"(i32) #1
; Function Attrs: noinline
define internal void @_GLOBAL__sub_I_t.cpp() #0 !dbg !28 {
target datalayout = "e-m:w-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-windows-msvc"
-define dllexport void ()* @f() !dbg !6 {
+define dllexport ptr @f() !dbg !6 {
entry:
- ret void ()* null, !dbg !28
+ ret ptr null, !dbg !28
}
!llvm.dbg.cu = !{!0}
define void @test1() !dbg !5 {
entry:
%foo = alloca i16, align 2
- call void @llvm.dbg.declare(metadata i16* %foo, metadata !8, metadata !11), !dbg !12
+ call void @llvm.dbg.declare(metadata ptr %foo, metadata !8, metadata !11), !dbg !12
ret void, !dbg !12
}
%struct.incomplete_struct = type { i32 }
@"\01?multi_dim_arr@@3PAY146DA" = global [2 x [5 x [7 x i8]]] zeroinitializer, align 1, !dbg !0
-@"\01?p_incomplete_struct_arr@@3PAY02Uincomplete_struct@@A" = global [3 x i8]* null, align 4, !dbg !6
+@"\01?p_incomplete_struct_arr@@3PAY02Uincomplete_struct@@A" = global ptr null, align 4, !dbg !6
@"\01?incomplete_struct_arr@@3PAUincomplete_struct@@A" = global [3 x %struct.incomplete_struct] zeroinitializer, align 4, !dbg !16
@"\01?typedef_arr@@3SDHD" = constant [4 x i32] zeroinitializer, align 4, !dbg !18
define void @"\01?foo@@YAXH@Z"(i32 %x) #0 !dbg !35 {
entry:
%x.addr = alloca i32, align 4
- %saved_stack = alloca i8*, align 4
- store i32 %x, i32* %x.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %x.addr, metadata !38, metadata !39), !dbg !40
- %0 = load i32, i32* %x.addr, align 4, !dbg !41
- %1 = call i8* @llvm.stacksave(), !dbg !42
- store i8* %1, i8** %saved_stack, align 4, !dbg !42
+ %saved_stack = alloca ptr, align 4
+ store i32 %x, ptr %x.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %x.addr, metadata !38, metadata !39), !dbg !40
+ %0 = load i32, ptr %x.addr, align 4, !dbg !41
+ %1 = call ptr @llvm.stacksave(), !dbg !42
+ store ptr %1, ptr %saved_stack, align 4, !dbg !42
%vla = alloca i32, i32 %0, align 4, !dbg !42
- call void @llvm.dbg.declare(metadata i32* %vla, metadata !43, metadata !47), !dbg !48
- %arrayidx = getelementptr inbounds i32, i32* %vla, i32 0, !dbg !49
- store i32 0, i32* %arrayidx, align 4, !dbg !50
- %2 = load i8*, i8** %saved_stack, align 4, !dbg !51
- call void @llvm.stackrestore(i8* %2), !dbg !51
+ call void @llvm.dbg.declare(metadata ptr %vla, metadata !43, metadata !47), !dbg !48
+ store i32 0, ptr %vla, align 4, !dbg !50
+ %2 = load ptr, ptr %saved_stack, align 4, !dbg !51
+ call void @llvm.stackrestore(ptr %2), !dbg !51
ret void, !dbg !51
}
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
; Function Attrs: nounwind
-declare i8* @llvm.stacksave() #0
+declare ptr @llvm.stacksave() #0
; Function Attrs: nounwind
-declare void @llvm.stackrestore(i8*) #0
+declare void @llvm.stackrestore(ptr) #0
attributes #0 = { nounwind }
attributes #1 = { nounwind readnone }
define void @"\01?f@@YAXXZ"() #0 !dbg !6 {
entry:
%a = alloca [5 x i32], align 4
- call void @llvm.dbg.declare(metadata [5 x i32]* %a, metadata !9, metadata !14), !dbg !15
- %0 = bitcast [5 x i32]* %a to i8*, !dbg !15
- call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %0, i8* align 4 bitcast ([5 x i32]* @"\01?a@?1??f@@YAXXZ@3PAHA" to i8*), i32 20, i1 false), !dbg !15
- %arraydecay = getelementptr inbounds [5 x i32], [5 x i32]* %a, i32 0, i32 0, !dbg !16
- %arrayidx = getelementptr inbounds [5 x i32], [5 x i32]* %a, i32 0, i32 0, !dbg !17
- %1 = load i32, i32* %arrayidx, align 4, !dbg !17
- call void (i32, ...) @"\01?usevars@@YAXHZZ"(i32 %1, i32* %arraydecay), !dbg !18
+ call void @llvm.dbg.declare(metadata ptr %a, metadata !9, metadata !14), !dbg !15
+ call void @llvm.memcpy.p0.p0.i32(ptr align 4 %a, ptr align 4 @"\01?a@?1??f@@YAXXZ@3PAHA", i32 20, i1 false), !dbg !15
+ %0 = load i32, ptr %a, align 4, !dbg !17
+ call void (i32, ...) @"\01?usevars@@YAXHZZ"(i32 %0, ptr %a), !dbg !18
ret void, !dbg !19
}
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
; Function Attrs: argmemonly nounwind
-declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture readonly, i32, i1) #2
+declare void @llvm.memcpy.p0.p0.i32(ptr nocapture, ptr nocapture readonly, i32, i1) #2
declare void @"\01?usevars@@YAXHZZ"(i32, ...) #3
%struct.A = type { i8 }
; Function Attrs: nounwind readnone
-define x86_thiscallcc void @"\01?thiscallcc@A@@QAEXXZ"(%struct.A* nocapture %this) #0 align 2 !dbg !6 {
+define x86_thiscallcc void @"\01?thiscallcc@A@@QAEXXZ"(ptr nocapture %this) #0 align 2 !dbg !6 {
entry:
- tail call void @llvm.dbg.value(metadata %struct.A* %this, metadata !14, metadata !16), !dbg !17
+ tail call void @llvm.dbg.value(metadata ptr %this, metadata !14, metadata !16), !dbg !17
ret void, !dbg !18
}
entry:
%l1 = alloca i32, align 4
%l2 = alloca i32, align 4
- call void @llvm.dbg.declare(metadata i32* %l1, metadata !13, metadata !DIExpression()), !dbg !15
- store i32 0, i32* %l1, align 4, !dbg !15
- call void @llvm.dbg.declare(metadata i32* %l2, metadata !16, metadata !DIExpression()), !dbg !18
- store i32 0, i32* %l2, align 4, !dbg !18
- %0 = load i32, i32* %l2, align 4, !dbg !19
- %1 = load i32, i32* %l1, align 4, !dbg !19
+ call void @llvm.dbg.declare(metadata ptr %l1, metadata !13, metadata !DIExpression()), !dbg !15
+ store i32 0, ptr %l1, align 4, !dbg !15
+ call void @llvm.dbg.declare(metadata ptr %l2, metadata !16, metadata !DIExpression()), !dbg !18
+ store i32 0, ptr %l2, align 4, !dbg !18
+ %0 = load i32, ptr %l2, align 4, !dbg !19
+ %1 = load i32, ptr %l1, align 4, !dbg !19
call void (i32, ...) @"?usevars@@YAXJZZ"(i32 %1, i32 %0), !dbg !19
ret void, !dbg !20
}
; Function Attrs: noinline nounwind optnone uwtable
define dso_local void @"?foo@@YAXXZ"() #0 !dbg !10 {
entry:
- %GenericPtr = alloca %struct.A*, align 8
+ %GenericPtr = alloca ptr, align 8
%a = alloca %struct.A, align 1
- call void @llvm.dbg.declare(metadata %struct.A** %GenericPtr, metadata !13, metadata !DIExpression()), !dbg !28
- store %struct.A* null, %struct.A** %GenericPtr, align 8, !dbg !28
- call void @llvm.dbg.declare(metadata %struct.A* %a, metadata !29, metadata !DIExpression()), !dbg !30
+ call void @llvm.dbg.declare(metadata ptr %GenericPtr, metadata !13, metadata !DIExpression()), !dbg !28
+ store ptr null, ptr %GenericPtr, align 8, !dbg !28
+ call void @llvm.dbg.declare(metadata ptr %a, metadata !29, metadata !DIExpression()), !dbg !30
ret void, !dbg !31
}
entry:
%a = alloca %struct.A, align 1
%b = alloca %class.B, align 1
- call void @llvm.dbg.declare(metadata %struct.A* %a, metadata !9, metadata !19), !dbg !20
- call void @llvm.dbg.declare(metadata %class.B* %b, metadata !21, metadata !19), !dbg !36
+ call void @llvm.dbg.declare(metadata ptr %a, metadata !9, metadata !19), !dbg !20
+ call void @llvm.dbg.declare(metadata ptr %b, metadata !21, metadata !19), !dbg !36
ret void, !dbg !37
}
@"\01?pmd_b@@3PEQC@@HEQ1@" = global i32 -1, align 8, !dbg !6
@"\01?pmd_c@@3PEQD@@HEQ1@" = global { i32, i32 } { i32 0, i32 -1 }, align 8, !dbg !21
@"\01?pmd_d@@3PEQE@@HEQ1@" = global { i32, i32, i32 } { i32 0, i32 0, i32 -1 }, align 8, !dbg !25
-@"\01?pmf_a@@3P8A@@EAAXXZEQ1@" = global i8* null, align 8, !dbg !29
-@"\01?pmf_b@@3P8C@@EAAXXZEQ1@" = global { i8*, i32 } zeroinitializer, align 8, !dbg !35
-@"\01?pmf_c@@3P8D@@EAAXXZEQ1@" = global { i8*, i32, i32 } zeroinitializer, align 8, !dbg !41
-@"\01?pmf_d@@3P8E@@EAAXXZEQ1@" = global { i8*, i32, i32, i32 } zeroinitializer, align 8, !dbg !47
-@"\01?ppmd@@3PEAPEQIncomplete@@HEA" = global %0* null, align 8, !dbg !53
-@"\01?ppmf@@3PEAP8Incomplete@@EAAXXZEA" = global %1* null, align 8, !dbg !58
+@"\01?pmf_a@@3P8A@@EAAXXZEQ1@" = global ptr null, align 8, !dbg !29
+@"\01?pmf_b@@3P8C@@EAAXXZEQ1@" = global { ptr, i32 } zeroinitializer, align 8, !dbg !35
+@"\01?pmf_c@@3P8D@@EAAXXZEQ1@" = global { ptr, i32, i32 } zeroinitializer, align 8, !dbg !41
+@"\01?pmf_d@@3P8E@@EAAXXZEQ1@" = global { ptr, i32, i32, i32 } zeroinitializer, align 8, !dbg !47
+@"\01?ppmd@@3PEAPEQIncomplete@@HEA" = global ptr null, align 8, !dbg !53
+@"\01?ppmf@@3PEAP8Incomplete@@EAAXXZEA" = global ptr null, align 8, !dbg !58
!llvm.dbg.cu = !{!2}
!llvm.module.flags = !{!66, !67, !68}
target datalayout = "e-m:w-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-windows-msvc19.0.23918"
-%struct.A = type { %struct.B* }
+%struct.A = type { ptr }
%struct.B = type { %struct.A }
; Function Attrs: nounwind uwtable
entry:
%a = alloca %struct.A, align 8
%b = alloca %struct.B, align 8
- call void @llvm.dbg.declare(metadata %struct.A* %a, metadata !10, metadata !18), !dbg !19
- call void @llvm.dbg.declare(metadata %struct.B* %b, metadata !20, metadata !18), !dbg !21
+ call void @llvm.dbg.declare(metadata ptr %a, metadata !10, metadata !18), !dbg !19
+ call void @llvm.dbg.declare(metadata ptr %b, metadata !20, metadata !18), !dbg !21
ret void, !dbg !22
}
%struct.anon = type { i8 }
; Function Attrs: noinline nounwind uwtable
-define void @"\01?anchor@named_struct@@QEAAXXZ"(%struct.named_struct* %this) #0 align 2 !dbg !7 {
+define void @"\01?anchor@named_struct@@QEAAXXZ"(ptr %this) #0 align 2 !dbg !7 {
entry:
- %this.addr = alloca %struct.named_struct*, align 8
- store %struct.named_struct* %this, %struct.named_struct** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %struct.named_struct** %this.addr, metadata !21, metadata !23), !dbg !24
- %this1 = load %struct.named_struct*, %struct.named_struct** %this.addr, align 8
+ %this.addr = alloca ptr, align 8
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !21, metadata !23), !dbg !24
+ %this1 = load ptr, ptr %this.addr, align 8
ret void, !dbg !25
}
target datalayout = "e-m:w-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-windows-msvc19.15.26730"
-@"?NullPtr@@3$$TA" = dso_local global i8* null, align 8, !dbg !0
+@"?NullPtr@@3$$TA" = dso_local global ptr null, align 8, !dbg !0
!llvm.dbg.cu = !{!2}
!llvm.module.flags = !{!7, !8, !9, !10}
%class.c = type { { i32, i32, i32 } }
; Function Attrs: noinline nounwind optnone
-define dso_local %class.c* @"??0c@@AEAA@XZ"(%class.c* returned %this) unnamed_addr #0 align 2 !dbg !7 {
+define dso_local ptr @"??0c@@AEAA@XZ"(ptr returned %this) unnamed_addr #0 align 2 !dbg !7 {
entry:
- %this.addr = alloca %class.c*, align 8
- store %class.c* %this, %class.c** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %class.c** %this.addr, metadata !20, metadata !DIExpression()), !dbg !22
- %this1 = load %class.c*, %class.c** %this.addr, align 8
- ret %class.c* %this1, !dbg !23
+ %this.addr = alloca ptr, align 8
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !20, metadata !DIExpression()), !dbg !22
+ %this1 = load ptr, ptr %this.addr, align 8
+ ret ptr %this1, !dbg !23
}
; Function Attrs: nounwind readnone speculatable willreturn
; Function Attrs: noinline nounwind optnone uwtable
define void @"\01?f@@YAXXZ"() #0 !dbg !31 {
%1 = alloca i32, align 4
- call void @llvm.dbg.declare(metadata i32* %1, metadata !34, metadata !DIExpression()), !dbg !36
+ call void @llvm.dbg.declare(metadata ptr %1, metadata !34, metadata !DIExpression()), !dbg !36
ret void, !dbg !37
}
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
; Function Attrs: noinline nounwind optnone uwtable
-define float @"\01?g@@YAMPEAUS@@@Z"(%struct.S*) #0 !dbg !38 {
- %2 = alloca %struct.S*, align 8
+define float @"\01?g@@YAMPEAUS@@@Z"(ptr) #0 !dbg !38 {
+ %2 = alloca ptr, align 8
%3 = alloca %union.pun, align 4
- store %struct.S* %0, %struct.S** %2, align 8
- call void @llvm.dbg.declare(metadata %struct.S** %2, metadata !43, metadata !DIExpression()), !dbg !44
- call void @llvm.dbg.declare(metadata %union.pun* %3, metadata !45, metadata !DIExpression()), !dbg !50
- %4 = load %struct.S*, %struct.S** %2, align 8, !dbg !51
- %5 = getelementptr inbounds %struct.S, %struct.S* %4, i32 0, i32 0, !dbg !52
- %6 = load i32, i32* %5, align 4, !dbg !52
- %7 = bitcast %union.pun* %3 to i32*, !dbg !53
- store i32 %6, i32* %7, align 4, !dbg !54
- %8 = bitcast %union.pun* %3 to float*, !dbg !55
- %9 = load float, float* %8, align 4, !dbg !55
- ret float %9, !dbg !56
+ store ptr %0, ptr %2, align 8
+ call void @llvm.dbg.declare(metadata ptr %2, metadata !43, metadata !DIExpression()), !dbg !44
+ call void @llvm.dbg.declare(metadata ptr %3, metadata !45, metadata !DIExpression()), !dbg !50
+ %4 = load ptr, ptr %2, align 8, !dbg !51
+ %5 = load i32, ptr %4, align 4, !dbg !52
+ store i32 %5, ptr %3, align 4, !dbg !54
+ %6 = load float, ptr %3, align 4, !dbg !55
+ ret float %6, !dbg !56
}
attributes #0 = { noinline nounwind optnone uwtable "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "frame-pointer"="none" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
entry:
%retval = alloca i32, align 4
%local = alloca %struct.named_struct, align 4
- store i32 0, i32* %retval, align 4
- call void @llvm.dbg.declare(metadata %struct.named_struct* %local, metadata !11, metadata !25), !dbg !26
- %id = getelementptr inbounds %struct.named_struct, %struct.named_struct* %local, i32 0, i32 0, !dbg !27
- store i32 1, i32* %id, align 4, !dbg !28
- %unnamed_union = getelementptr inbounds %struct.named_struct, %struct.named_struct* %local, i32 0, i32 1, !dbg !29
- %m1 = bitcast %union.anon* %unnamed_union to i32*, !dbg !30
- store i32 65, i32* %m1, align 4, !dbg !31
- %unnamed_struct = getelementptr inbounds %struct.named_struct, %struct.named_struct* %local, i32 0, i32 2, !dbg !32
- %m3 = getelementptr inbounds %struct.anon, %struct.anon* %unnamed_struct, i32 0, i32 0, !dbg !33
- store i8 66, i8* %m3, align 4, !dbg !34
+ store i32 0, ptr %retval, align 4
+ call void @llvm.dbg.declare(metadata ptr %local, metadata !11, metadata !25), !dbg !26
+ store i32 1, ptr %local, align 4, !dbg !28
+ %unnamed_union = getelementptr inbounds %struct.named_struct, ptr %local, i32 0, i32 1, !dbg !29
+ store i32 65, ptr %unnamed_union, align 4, !dbg !31
+ %unnamed_struct = getelementptr inbounds %struct.named_struct, ptr %local, i32 0, i32 2, !dbg !32
+ store i8 66, ptr %unnamed_struct, align 4, !dbg !34
ret i32 0, !dbg !35
}
entry:
%a = alloca i32, align 4
%force_alignment = alloca double, align 8
- %0 = bitcast i32* %a to i8*, !dbg !22
- call void @llvm.dbg.declare(metadata i32* %a, metadata !14, metadata !DIExpression()), !dbg !22
+ call void @llvm.dbg.declare(metadata ptr %a, metadata !14, metadata !DIExpression()), !dbg !22
%csr1 = tail call i32 @getval() #4
%call = tail call i32 @getval() #4, !dbg !22
- store i32 %call, i32* %a, align 4, !dbg !22, !tbaa !17
- %1 = bitcast double* %force_alignment to i8*, !dbg !23
- call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %1) #4, !dbg !23
- call void @llvm.dbg.declare(metadata double* %force_alignment, metadata !15, metadata !DIExpression()), !dbg !23
- store double 4.200000e-01, double* %force_alignment, align 8, !dbg !23, !tbaa !24
- call void @usevals(i32* nonnull %a, i32* nonnull %a, double* nonnull %force_alignment) #4, !dbg !26
+ store i32 %call, ptr %a, align 4, !dbg !22, !tbaa !17
+ call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %force_alignment) #4, !dbg !23
+ call void @llvm.dbg.declare(metadata ptr %force_alignment, metadata !15, metadata !DIExpression()), !dbg !23
+ store double 4.200000e-01, ptr %force_alignment, align 8, !dbg !23, !tbaa !24
+ call void @usevals(ptr nonnull %a, ptr nonnull %a, ptr nonnull %force_alignment) #4, !dbg !26
call void @usecsrs(i32 %csr1, i32 %csr1)
ret i32 0
}
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #2
+declare void @llvm.lifetime.start.p0(i64, ptr nocapture) #2
declare dso_local i32 @getval() local_unnamed_addr #3
-declare dso_local void @usevals(i32*, i32*, double*) local_unnamed_addr #3
+declare dso_local void @usevals(ptr, ptr, ptr) local_unnamed_addr #3
declare dso_local void @usecsrs(i32, i32) local_unnamed_addr #3
; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #2
+declare void @llvm.lifetime.end.p0(i64, ptr nocapture) #2
attributes #0 = { nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "frame-pointer"="none" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="pentium4" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { nounwind readnone speculatable }
%a = alloca i32, align 4
%b = alloca i32, align 4
%c = alloca i32, align 4
- %0 = bitcast i32* %a to i8*, !dbg !16
- call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %0) #4, !dbg !16
- call void @llvm.dbg.declare(metadata i32* %a, metadata !13, metadata !DIExpression()), !dbg !16
- store i32 1, i32* %a, align 4, !dbg !16, !tbaa !17
- %1 = bitcast i32* %b to i8*, !dbg !21
- call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %1) #4, !dbg !21
- call void @llvm.dbg.declare(metadata i32* %b, metadata !14, metadata !DIExpression()), !dbg !21
- store i32 2, i32* %b, align 4, !dbg !21, !tbaa !17
- %2 = bitcast i32* %c to i8*, !dbg !22
- call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %2) #4, !dbg !22
- call void @llvm.dbg.declare(metadata i32* %c, metadata !15, metadata !DIExpression()), !dbg !22
- store i32 3, i32* %c, align 4, !dbg !22, !tbaa !17
- call void @"?f@@YAXAAH0@Z"(i32* nonnull dereferenceable(4) %a, i32* nonnull dereferenceable(4) %b) #5, !dbg !23
- call void @"?g@@YAXAAH00@Z"(i32* nonnull dereferenceable(4) %a, i32* nonnull dereferenceable(4) %b, i32* nonnull dereferenceable(4) %c) #5, !dbg !24
- %3 = load i32, i32* %a, align 4, !dbg !25, !tbaa !17
- %4 = load i32, i32* %b, align 4, !dbg !25, !tbaa !17
- %add = add nsw i32 %4, %3, !dbg !25
- %5 = load i32, i32* %c, align 4, !dbg !25, !tbaa !17
- %add1 = add nsw i32 %add, %5, !dbg !25
- call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %2) #4, !dbg !26
- call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %1) #4, !dbg !26
- call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %0) #4, !dbg !26
+ call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %a) #4, !dbg !16
+ call void @llvm.dbg.declare(metadata ptr %a, metadata !13, metadata !DIExpression()), !dbg !16
+ store i32 1, ptr %a, align 4, !dbg !16, !tbaa !17
+ call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %b) #4, !dbg !21
+ call void @llvm.dbg.declare(metadata ptr %b, metadata !14, metadata !DIExpression()), !dbg !21
+ store i32 2, ptr %b, align 4, !dbg !21, !tbaa !17
+ call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %c) #4, !dbg !22
+ call void @llvm.dbg.declare(metadata ptr %c, metadata !15, metadata !DIExpression()), !dbg !22
+ store i32 3, ptr %c, align 4, !dbg !22, !tbaa !17
+ call void @"?f@@YAXAAH0@Z"(ptr nonnull dereferenceable(4) %a, ptr nonnull dereferenceable(4) %b) #5, !dbg !23
+ call void @"?g@@YAXAAH00@Z"(ptr nonnull dereferenceable(4) %a, ptr nonnull dereferenceable(4) %b, ptr nonnull dereferenceable(4) %c) #5, !dbg !24
+ %0 = load i32, ptr %a, align 4, !dbg !25, !tbaa !17
+ %1 = load i32, ptr %b, align 4, !dbg !25, !tbaa !17
+ %add = add nsw i32 %1, %0, !dbg !25
+ %2 = load i32, ptr %c, align 4, !dbg !25, !tbaa !17
+ %add1 = add nsw i32 %add, %2, !dbg !25
+ call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %c) #4, !dbg !26
+ call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %b) #4, !dbg !26
+ call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %a) #4, !dbg !26
ret i32 %add1, !dbg !25
}
; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1
+declare void @llvm.lifetime.start.p0(i64, ptr nocapture) #1
; Function Attrs: nounwind readnone speculatable
declare void @llvm.dbg.declare(metadata, metadata, metadata) #2
; Function Attrs: optsize
-declare dso_local void @"?f@@YAXAAH0@Z"(i32* dereferenceable(4), i32* dereferenceable(4)) local_unnamed_addr #3
+declare dso_local void @"?f@@YAXAAH0@Z"(ptr dereferenceable(4), ptr dereferenceable(4)) local_unnamed_addr #3
; Function Attrs: optsize
-declare dso_local void @"?g@@YAXAAH00@Z"(i32* dereferenceable(4), i32* dereferenceable(4), i32* dereferenceable(4)) local_unnamed_addr #3
+declare dso_local void @"?g@@YAXAAH00@Z"(ptr dereferenceable(4), ptr dereferenceable(4), ptr dereferenceable(4)) local_unnamed_addr #3
; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1
+declare void @llvm.lifetime.end.p0(i64, ptr nocapture) #1
attributes #0 = { norecurse optsize "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "frame-pointer"="none" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="pentium4" "target-features"="+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { argmemonly nounwind }
%struct.C = type { %struct.B }
%struct.B = type { %struct.A }
-%struct.A = type { i32 (...)** }
+%struct.A = type { ptr }
%rtti.CompleteObjectLocator = type { i32, i32, i32, i32, i32, i32 }
-%rtti.TypeDescriptor7 = type { i8**, i8*, [8 x i8] }
+%rtti.TypeDescriptor7 = type { ptr, ptr, [8 x i8] }
%rtti.ClassHierarchyDescriptor = type { i32, i32, i32, i32 }
%rtti.BaseClassDescriptor = type { i32, i32, i32, i32, i32, i32, i32 }
$"\01??_R4A@@6B@" = comdat any
-@"\01?p@@3PEAUC@@EA" = global %struct.C* null, align 8, !dbg !0
-@0 = private unnamed_addr constant [3 x i8*] [i8* bitcast (%rtti.CompleteObjectLocator* @"\01??_R4C@@6B@" to i8*), i8* bitcast (void (%struct.C*)* @"\01?f@C@@UEAAXXZ" to i8*), i8* bitcast (void (%struct.C*)* @"\01?g@C@@UEAAXXZ" to i8*)], comdat($"\01??_7C@@6B@")
-@"\01??_R4C@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 0, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"\01??_R0?AUC@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3C@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"\01??_R4C@@6B@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-@"\01??_7type_info@@6B@" = external constant i8*
-@"\01??_R0?AUC@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"\01??_7type_info@@6B@", i8* null, [8 x i8] c".?AUC@@\00" }, comdat
+@"\01?p@@3PEAUC@@EA" = global ptr null, align 8, !dbg !0
+@0 = private unnamed_addr constant [3 x ptr] [ptr @"\01??_R4C@@6B@", ptr @"\01?f@C@@UEAAXXZ", ptr @"\01?g@C@@UEAAXXZ"], comdat($"\01??_7C@@6B@")
+@"\01??_R4C@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 0, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (ptr @"\01??_R0?AUC@@@8" to i64), i64 ptrtoint (ptr @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (ptr @"\01??_R3C@@8" to i64), i64 ptrtoint (ptr @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (ptr @"\01??_R4C@@6B@" to i64), i64 ptrtoint (ptr @__ImageBase to i64)) to i32) }, comdat
+@"\01??_7type_info@@6B@" = external constant ptr
+@"\01??_R0?AUC@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { ptr @"\01??_7type_info@@6B@", ptr null, [8 x i8] c".?AUC@@\00" }, comdat
@__ImageBase = external constant i8
-@"\01??_R3C@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 3, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([4 x i32]* @"\01??_R2C@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-@"\01??_R2C@@8" = linkonce_odr constant [4 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A@?0A@EA@C@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A@?0A@EA@B@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A@?0A@EA@A@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
-@"\01??_R1A@?0A@EA@C@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"\01??_R0?AUC@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 2, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3C@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-@"\01??_R1A@?0A@EA@B@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"\01??_R0?AUB@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 1, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3B@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-@"\01??_R0?AUB@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"\01??_7type_info@@6B@", i8* null, [8 x i8] c".?AUB@@\00" }, comdat
-@"\01??_R3B@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 2, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([3 x i32]* @"\01??_R2B@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-@"\01??_R2B@@8" = linkonce_odr constant [3 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A@?0A@EA@B@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A@?0A@EA@A@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
-@"\01??_R1A@?0A@EA@A@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"\01??_R0?AUA@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3A@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-@"\01??_R0?AUA@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { i8** @"\01??_7type_info@@6B@", i8* null, [8 x i8] c".?AUA@@\00" }, comdat
-@"\01??_R3A@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 1, i32 trunc (i64 sub nuw nsw (i64 ptrtoint ([2 x i32]* @"\01??_R2A@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-@"\01??_R2A@@8" = linkonce_odr constant [2 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.BaseClassDescriptor* @"\01??_R1A@?0A@EA@A@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 0], comdat
-@1 = private unnamed_addr constant [3 x i8*] [i8* bitcast (%rtti.CompleteObjectLocator* @"\01??_R4B@@6B@" to i8*), i8* bitcast (void ()* @_purecall to i8*), i8* bitcast (void (%struct.B*)* @"\01?g@B@@UEAAXXZ" to i8*)], comdat($"\01??_7B@@6B@")
-@"\01??_R4B@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 0, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"\01??_R0?AUB@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3B@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"\01??_R4B@@6B@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-@2 = private unnamed_addr constant [3 x i8*] [i8* bitcast (%rtti.CompleteObjectLocator* @"\01??_R4A@@6B@" to i8*), i8* bitcast (void (%struct.A*)* @"\01?f@A@@UEAAXXZ" to i8*), i8* bitcast (void ()* @_purecall to i8*)], comdat($"\01??_7A@@6B@")
-@"\01??_R4A@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 0, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.TypeDescriptor7* @"\01??_R0?AUA@@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.ClassHierarchyDescriptor* @"\01??_R3A@@8" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (%rtti.CompleteObjectLocator* @"\01??_R4A@@6B@" to i64), i64 ptrtoint (i8* @__ImageBase to i64)) to i32) }, comdat
-@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__sub_I_t.cpp, i8* null }]
-
-@"\01??_7C@@6B@" = unnamed_addr alias i8*, getelementptr inbounds ([3 x i8*], [3 x i8*]* @0, i32 0, i32 1)
-@"\01??_7B@@6B@" = unnamed_addr alias i8*, getelementptr inbounds ([3 x i8*], [3 x i8*]* @1, i32 0, i32 1)
-@"\01??_7A@@6B@" = unnamed_addr alias i8*, getelementptr inbounds ([3 x i8*], [3 x i8*]* @2, i32 0, i32 1)
+@"\01??_R3C@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 3, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (ptr @"\01??_R2C@@8" to i64), i64 ptrtoint (ptr @__ImageBase to i64)) to i32) }, comdat
+@"\01??_R2C@@8" = linkonce_odr constant [4 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (ptr @"\01??_R1A@?0A@EA@C@@8" to i64), i64 ptrtoint (ptr @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (ptr @"\01??_R1A@?0A@EA@B@@8" to i64), i64 ptrtoint (ptr @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (ptr @"\01??_R1A@?0A@EA@A@@8" to i64), i64 ptrtoint (ptr @__ImageBase to i64)) to i32), i32 0], comdat
+@"\01??_R1A@?0A@EA@C@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (ptr @"\01??_R0?AUC@@@8" to i64), i64 ptrtoint (ptr @__ImageBase to i64)) to i32), i32 2, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (ptr @"\01??_R3C@@8" to i64), i64 ptrtoint (ptr @__ImageBase to i64)) to i32) }, comdat
+@"\01??_R1A@?0A@EA@B@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (ptr @"\01??_R0?AUB@@@8" to i64), i64 ptrtoint (ptr @__ImageBase to i64)) to i32), i32 1, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (ptr @"\01??_R3B@@8" to i64), i64 ptrtoint (ptr @__ImageBase to i64)) to i32) }, comdat
+@"\01??_R0?AUB@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { ptr @"\01??_7type_info@@6B@", ptr null, [8 x i8] c".?AUB@@\00" }, comdat
+@"\01??_R3B@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 2, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (ptr @"\01??_R2B@@8" to i64), i64 ptrtoint (ptr @__ImageBase to i64)) to i32) }, comdat
+@"\01??_R2B@@8" = linkonce_odr constant [3 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (ptr @"\01??_R1A@?0A@EA@B@@8" to i64), i64 ptrtoint (ptr @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (ptr @"\01??_R1A@?0A@EA@A@@8" to i64), i64 ptrtoint (ptr @__ImageBase to i64)) to i32), i32 0], comdat
+@"\01??_R1A@?0A@EA@A@@8" = linkonce_odr constant %rtti.BaseClassDescriptor { i32 trunc (i64 sub nuw nsw (i64 ptrtoint (ptr @"\01??_R0?AUA@@@8" to i64), i64 ptrtoint (ptr @__ImageBase to i64)) to i32), i32 0, i32 0, i32 -1, i32 0, i32 64, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (ptr @"\01??_R3A@@8" to i64), i64 ptrtoint (ptr @__ImageBase to i64)) to i32) }, comdat
+@"\01??_R0?AUA@@@8" = linkonce_odr global %rtti.TypeDescriptor7 { ptr @"\01??_7type_info@@6B@", ptr null, [8 x i8] c".?AUA@@\00" }, comdat
+@"\01??_R3A@@8" = linkonce_odr constant %rtti.ClassHierarchyDescriptor { i32 0, i32 0, i32 1, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (ptr @"\01??_R2A@@8" to i64), i64 ptrtoint (ptr @__ImageBase to i64)) to i32) }, comdat
+@"\01??_R2A@@8" = linkonce_odr constant [2 x i32] [i32 trunc (i64 sub nuw nsw (i64 ptrtoint (ptr @"\01??_R1A@?0A@EA@A@@8" to i64), i64 ptrtoint (ptr @__ImageBase to i64)) to i32), i32 0], comdat
+@1 = private unnamed_addr constant [3 x ptr] [ptr @"\01??_R4B@@6B@", ptr @_purecall, ptr @"\01?g@B@@UEAAXXZ"], comdat($"\01??_7B@@6B@")
+@"\01??_R4B@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 0, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (ptr @"\01??_R0?AUB@@@8" to i64), i64 ptrtoint (ptr @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (ptr @"\01??_R3B@@8" to i64), i64 ptrtoint (ptr @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (ptr @"\01??_R4B@@6B@" to i64), i64 ptrtoint (ptr @__ImageBase to i64)) to i32) }, comdat
+@2 = private unnamed_addr constant [3 x ptr] [ptr @"\01??_R4A@@6B@", ptr @"\01?f@A@@UEAAXXZ", ptr @_purecall], comdat($"\01??_7A@@6B@")
+@"\01??_R4A@@6B@" = linkonce_odr constant %rtti.CompleteObjectLocator { i32 1, i32 0, i32 0, i32 trunc (i64 sub nuw nsw (i64 ptrtoint (ptr @"\01??_R0?AUA@@@8" to i64), i64 ptrtoint (ptr @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (ptr @"\01??_R3A@@8" to i64), i64 ptrtoint (ptr @__ImageBase to i64)) to i32), i32 trunc (i64 sub nuw nsw (i64 ptrtoint (ptr @"\01??_R4A@@6B@" to i64), i64 ptrtoint (ptr @__ImageBase to i64)) to i32) }, comdat
+@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_t.cpp, ptr null }]
+
+@"\01??_7C@@6B@" = unnamed_addr alias ptr, getelementptr inbounds ([3 x ptr], ptr @0, i32 0, i32 1)
+@"\01??_7B@@6B@" = unnamed_addr alias ptr, getelementptr inbounds ([3 x ptr], ptr @1, i32 0, i32 1)
+@"\01??_7A@@6B@" = unnamed_addr alias ptr, getelementptr inbounds ([3 x ptr], ptr @2, i32 0, i32 1)
; Function Attrs: uwtable
define internal void @"\01??__Ep@@YAXXZ"() #0 !dbg !40 {
entry:
- %call = call i8* @"\01??2@YAPEAX_K@Z"(i64 8) #5, !dbg !43
- %0 = bitcast i8* %call to %struct.C*, !dbg !43
- %call1 = call %struct.C* @"\01??0C@@QEAA@XZ"(%struct.C* %0) #6, !dbg !44
- store %struct.C* %0, %struct.C** @"\01?p@@3PEAUC@@EA", align 8, !dbg !43
+ %call = call ptr @"\01??2@YAPEAX_K@Z"(i64 8) #5, !dbg !43
+ %call1 = call ptr @"\01??0C@@QEAA@XZ"(ptr %call) #6, !dbg !44
+ store ptr %call, ptr @"\01?p@@3PEAUC@@EA", align 8, !dbg !43
ret void, !dbg !44
}
; Function Attrs: nobuiltin
-declare noalias i8* @"\01??2@YAPEAX_K@Z"(i64) #1
+declare noalias ptr @"\01??2@YAPEAX_K@Z"(i64) #1
; Function Attrs: inlinehint nounwind uwtable
-define linkonce_odr %struct.C* @"\01??0C@@QEAA@XZ"(%struct.C* returned %this) unnamed_addr #2 comdat align 2 !dbg !45 {
+define linkonce_odr ptr @"\01??0C@@QEAA@XZ"(ptr returned %this) unnamed_addr #2 comdat align 2 !dbg !45 {
entry:
- %this.addr = alloca %struct.C*, align 8
- store %struct.C* %this, %struct.C** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %struct.C** %this.addr, metadata !47, metadata !48), !dbg !49
- %this1 = load %struct.C*, %struct.C** %this.addr, align 8
- %0 = bitcast %struct.C* %this1 to %struct.B*, !dbg !50
- %call = call %struct.B* @"\01??0B@@QEAA@XZ"(%struct.B* %0) #6, !dbg !50
- %1 = bitcast %struct.C* %this1 to i32 (...)***, !dbg !50
- store i32 (...)** bitcast (i8** @"\01??_7C@@6B@" to i32 (...)**), i32 (...)*** %1, align 8, !dbg !50
- ret %struct.C* %this1, !dbg !50
+ %this.addr = alloca ptr, align 8
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !47, metadata !48), !dbg !49
+ %this1 = load ptr, ptr %this.addr, align 8
+ %call = call ptr @"\01??0B@@QEAA@XZ"(ptr %this1) #6, !dbg !50
+ store ptr @"\01??_7C@@6B@", ptr %this1, align 8, !dbg !50
+ ret ptr %this1, !dbg !50
}
; Function Attrs: nounwind readnone
declare void @llvm.dbg.declare(metadata, metadata, metadata) #3
; Function Attrs: inlinehint nounwind uwtable
-define linkonce_odr %struct.B* @"\01??0B@@QEAA@XZ"(%struct.B* returned %this) unnamed_addr #2 comdat align 2 !dbg !51 {
+define linkonce_odr ptr @"\01??0B@@QEAA@XZ"(ptr returned %this) unnamed_addr #2 comdat align 2 !dbg !51 {
entry:
- %this.addr = alloca %struct.B*, align 8
- store %struct.B* %this, %struct.B** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %struct.B** %this.addr, metadata !53, metadata !48), !dbg !55
- %this1 = load %struct.B*, %struct.B** %this.addr, align 8
- %0 = bitcast %struct.B* %this1 to %struct.A*, !dbg !56
- %call = call %struct.A* @"\01??0A@@QEAA@XZ"(%struct.A* %0) #6, !dbg !56
- %1 = bitcast %struct.B* %this1 to i32 (...)***, !dbg !56
- store i32 (...)** bitcast (i8** @"\01??_7B@@6B@" to i32 (...)**), i32 (...)*** %1, align 8, !dbg !56
- ret %struct.B* %this1, !dbg !56
+ %this.addr = alloca ptr, align 8
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !53, metadata !48), !dbg !55
+ %this1 = load ptr, ptr %this.addr, align 8
+ %call = call ptr @"\01??0A@@QEAA@XZ"(ptr %this1) #6, !dbg !56
+ store ptr @"\01??_7B@@6B@", ptr %this1, align 8, !dbg !56
+ ret ptr %this1, !dbg !56
}
-declare void @"\01?f@C@@UEAAXXZ"(%struct.C*) unnamed_addr #4
+declare void @"\01?f@C@@UEAAXXZ"(ptr) unnamed_addr #4
-declare void @"\01?g@C@@UEAAXXZ"(%struct.C*) unnamed_addr #4
+declare void @"\01?g@C@@UEAAXXZ"(ptr) unnamed_addr #4
; Function Attrs: inlinehint nounwind uwtable
-define linkonce_odr %struct.A* @"\01??0A@@QEAA@XZ"(%struct.A* returned %this) unnamed_addr #2 comdat align 2 !dbg !57 {
+define linkonce_odr ptr @"\01??0A@@QEAA@XZ"(ptr returned %this) unnamed_addr #2 comdat align 2 !dbg !57 {
entry:
- %this.addr = alloca %struct.A*, align 8
- store %struct.A* %this, %struct.A** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %struct.A** %this.addr, metadata !59, metadata !48), !dbg !61
- %this1 = load %struct.A*, %struct.A** %this.addr, align 8
- %0 = bitcast %struct.A* %this1 to i32 (...)***, !dbg !62
- store i32 (...)** bitcast (i8** @"\01??_7A@@6B@" to i32 (...)**), i32 (...)*** %0, align 8, !dbg !62
- ret %struct.A* %this1, !dbg !62
+ %this.addr = alloca ptr, align 8
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !59, metadata !48), !dbg !61
+ %this1 = load ptr, ptr %this.addr, align 8
+ store ptr @"\01??_7A@@6B@", ptr %this1, align 8, !dbg !62
+ ret ptr %this1, !dbg !62
}
declare void @_purecall() unnamed_addr
-declare void @"\01?g@B@@UEAAXXZ"(%struct.B*) unnamed_addr #4
+declare void @"\01?g@B@@UEAAXXZ"(ptr) unnamed_addr #4
-declare void @"\01?f@A@@UEAAXXZ"(%struct.A*) unnamed_addr #4
+declare void @"\01?f@A@@UEAAXXZ"(ptr) unnamed_addr #4
; Function Attrs: uwtable
define internal void @_GLOBAL__sub_I_t.cpp() #0 !dbg !63 {
%struct.GetFwdDecl = type { i8 }
%struct.UseCompleteType = type { [1 x %struct.UnicodeString] }
-%struct.UnicodeString = type { i32 (...)** }
+%struct.UnicodeString = type { ptr }
$"\01??_DUseCompleteType@@QEAA@XZ" = comdat any
@"\01?force_fwd_decl@@3UGetFwdDecl@@A" = global %struct.GetFwdDecl zeroinitializer, align 1, !dbg !0
@"\01?require_complete@@3UUseCompleteType@@A" = global %struct.UseCompleteType zeroinitializer, align 8, !dbg !6
-@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__sub_I_t.cpp, i8* null }]
+@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_t.cpp, ptr null }]
; Function Attrs: nounwind
define internal void @"\01??__Erequire_complete@@YAXXZ"() #0 !dbg !27 {
entry:
- %call = call %struct.UseCompleteType* @"\01??0UseCompleteType@@QEAA@XZ"(%struct.UseCompleteType* @"\01?require_complete@@3UUseCompleteType@@A"), !dbg !30
- %0 = call i32 @atexit(void ()* @"\01??__Frequire_complete@@YAXXZ") #2, !dbg !30
+ %call = call ptr @"\01??0UseCompleteType@@QEAA@XZ"(ptr @"\01?require_complete@@3UUseCompleteType@@A"), !dbg !30
+ %0 = call i32 @atexit(ptr @"\01??__Frequire_complete@@YAXXZ") #2, !dbg !30
ret void, !dbg !30
}
-declare %struct.UseCompleteType* @"\01??0UseCompleteType@@QEAA@XZ"(%struct.UseCompleteType* returned) unnamed_addr #1
+declare ptr @"\01??0UseCompleteType@@QEAA@XZ"(ptr returned) unnamed_addr #1
; Function Attrs: nounwind
-define linkonce_odr void @"\01??_DUseCompleteType@@QEAA@XZ"(%struct.UseCompleteType* %this) unnamed_addr #0 comdat align 2 !dbg !31 {
+define linkonce_odr void @"\01??_DUseCompleteType@@QEAA@XZ"(ptr %this) unnamed_addr #0 comdat align 2 !dbg !31 {
entry:
- %this.addr = alloca %struct.UseCompleteType*, align 8
- store %struct.UseCompleteType* %this, %struct.UseCompleteType** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %struct.UseCompleteType** %this.addr, metadata !32, metadata !34), !dbg !35
- %this1 = load %struct.UseCompleteType*, %struct.UseCompleteType** %this.addr, align 8
- call void @"\01??1UseCompleteType@@QEAA@XZ"(%struct.UseCompleteType* %this1), !dbg !36
+ %this.addr = alloca ptr, align 8
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !32, metadata !34), !dbg !35
+ %this1 = load ptr, ptr %this.addr, align 8
+ call void @"\01??1UseCompleteType@@QEAA@XZ"(ptr %this1), !dbg !36
ret void, !dbg !36
}
define internal void @"\01??__Frequire_complete@@YAXXZ"() #0 !dbg !37 {
entry:
- call void @"\01??_DUseCompleteType@@QEAA@XZ"(%struct.UseCompleteType* @"\01?require_complete@@3UUseCompleteType@@A"), !dbg !38
+ call void @"\01??_DUseCompleteType@@QEAA@XZ"(ptr @"\01?require_complete@@3UUseCompleteType@@A"), !dbg !38
ret void, !dbg !39
}
; Function Attrs: nounwind
-declare i32 @atexit(void ()*) #2
+declare i32 @atexit(ptr) #2
; Function Attrs: nounwind readnone
declare void @llvm.dbg.declare(metadata, metadata, metadata) #3
-declare void @"\01??1UseCompleteType@@QEAA@XZ"(%struct.UseCompleteType*) unnamed_addr #1
+declare void @"\01??1UseCompleteType@@QEAA@XZ"(ptr) unnamed_addr #1
; Function Attrs: nounwind
define internal void @_GLOBAL__sub_I_t.cpp() #0 !dbg !41 {
define i32 @a() !dbg !8 {
entry:
- call void @llvm.dbg.declare(metadata [6 x i8]* undef, metadata !13, metadata !DIExpression(DW_OP_LLVM_fragment, 80, 48)), !dbg !15
+ call void @llvm.dbg.declare(metadata ptr undef, metadata !13, metadata !DIExpression(DW_OP_LLVM_fragment, 80, 48)), !dbg !15
%0 = tail call x86_fp80 asm sideeffect "", "={st},~{dirflag},~{fpsr},~{flags}"(), !dbg !16, !srcloc !17
call void @llvm.dbg.value(metadata x86_fp80 %0, metadata !13, metadata !DIExpression()), !dbg !18
ret i32 undef, !dbg !19
; Radar 7937664
%struct.AppleEvent = type opaque
-define void @DisposeDMNotificationUPP(void (%struct.AppleEvent*)* %userUPP) "frame-pointer"="non-leaf" nounwind ssp {
+define void @DisposeDMNotificationUPP(ptr %userUPP) "frame-pointer"="non-leaf" nounwind ssp {
entry:
- %userUPP_addr = alloca void (%struct.AppleEvent*)* ; <void (%struct.AppleEvent*)**> [#uses=1]
+ %userUPP_addr = alloca ptr ; <ptr> [#uses=1]
%"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0]
- call void @llvm.dbg.declare(metadata void (%struct.AppleEvent*)** %userUPP_addr, metadata !0, metadata !DIExpression(DW_OP_deref)), !dbg !13
- store void (%struct.AppleEvent*)* %userUPP, void (%struct.AppleEvent*)** %userUPP_addr
+ call void @llvm.dbg.declare(metadata ptr %userUPP_addr, metadata !0, metadata !DIExpression(DW_OP_deref)), !dbg !13
+ store ptr %userUPP, ptr %userUPP_addr
br label %return, !dbg !14
return: ; preds = %entry
;XFAIL: target=xcore{{.*}}
%struct.anon = type { i64, i32, i32, i32, [1 x i32] }
-%struct.gpm_t = type { i32, i8*, [16 x i8], i32, i64, i64, i64, i64, i64, i64, i32, i16, i16, [8 x %struct.gpmr_t] }
+%struct.gpm_t = type { i32, ptr, [16 x i8], i32, i64, i64, i64, i64, i64, i64, i32, i16, i16, [8 x %struct.gpmr_t] }
%struct.gpmr_t = type { [48 x i8], [48 x i8], [16 x i8], i64, i64, i64, i64, i16 }
%struct.gpt_t = type { [8 x i8], i32, i32, i32, i32, i64, i64, i64, i64, [16 x i8], %struct.anon }
-@llvm.used = appending global [1 x i8*] [i8* bitcast (void (%struct.gpm_t*, %struct.gpt_t*)* @gpt2gpm to i8*)], section "llvm.metadata" ; <[1 x i8*]*> [#uses=0]
+@llvm.used = appending global [1 x ptr] [ptr @gpt2gpm], section "llvm.metadata" ; <ptr> [#uses=0]
-define fastcc void @gpt2gpm(%struct.gpm_t* %gpm, %struct.gpt_t* %gpt) nounwind optsize ssp {
+define fastcc void @gpt2gpm(ptr %gpm, ptr %gpt) nounwind optsize ssp {
entry:
- %data_addr.i18 = alloca i64, align 8 ; <i64*> [#uses=1]
- %data_addr.i17 = alloca i64, align 8 ; <i64*> [#uses=2]
- %data_addr.i16 = alloca i64, align 8 ; <i64*> [#uses=0]
- %data_addr.i15 = alloca i32, align 4 ; <i32*> [#uses=0]
- %data_addr.i = alloca i64, align 8 ; <i64*> [#uses=0]
- %0 = getelementptr inbounds %struct.gpm_t, %struct.gpm_t* %gpm, i32 0, i32 2, i32 0 ; <i8*> [#uses=1]
- %1 = getelementptr inbounds %struct.gpt_t, %struct.gpt_t* %gpt, i32 0, i32 9, i32 0 ; <i8*> [#uses=1]
- call void @uuid_LtoB(i8* %0, i8* %1) nounwind, !dbg !0
- %a9 = load volatile i64, i64* %data_addr.i18, align 8 ; <i64> [#uses=1]
+ %data_addr.i18 = alloca i64, align 8 ; <ptr> [#uses=1]
+ %data_addr.i17 = alloca i64, align 8 ; <ptr> [#uses=2]
+ %data_addr.i16 = alloca i64, align 8 ; <ptr> [#uses=0]
+ %data_addr.i15 = alloca i32, align 4 ; <ptr> [#uses=0]
+ %data_addr.i = alloca i64, align 8 ; <ptr> [#uses=0]
+ %0 = getelementptr inbounds %struct.gpm_t, ptr %gpm, i32 0, i32 2, i32 0 ; <ptr> [#uses=1]
+ %1 = getelementptr inbounds %struct.gpt_t, ptr %gpt, i32 0, i32 9, i32 0 ; <ptr> [#uses=1]
+ call void @uuid_LtoB(ptr %0, ptr %1) nounwind, !dbg !0
+ %a9 = load volatile i64, ptr %data_addr.i18, align 8 ; <i64> [#uses=1]
%a10 = call i64 @llvm.bswap.i64(i64 %a9) nounwind ; <i64> [#uses=1]
- %a11 = getelementptr inbounds %struct.gpt_t, %struct.gpt_t* %gpt, i32 0, i32 8, !dbg !7 ; <i64*> [#uses=1]
- %a12 = load i64, i64* %a11, align 4, !dbg !7 ; <i64> [#uses=1]
- call void @llvm.dbg.declare(metadata i64* %data_addr.i17, metadata !8, metadata !DIExpression()) nounwind, !dbg !14
- store i64 %a12, i64* %data_addr.i17, align 8
+ %a11 = getelementptr inbounds %struct.gpt_t, ptr %gpt, i32 0, i32 8, !dbg !7 ; <ptr> [#uses=1]
+ %a12 = load i64, ptr %a11, align 4, !dbg !7 ; <i64> [#uses=1]
+ call void @llvm.dbg.declare(metadata ptr %data_addr.i17, metadata !8, metadata !DIExpression()) nounwind, !dbg !14
+ store i64 %a12, ptr %data_addr.i17, align 8
call void @llvm.dbg.value(metadata !6, metadata !15, metadata !DIExpression()) nounwind, !dbg !DILocation(scope: !16)
call void @llvm.dbg.value(metadata i32 0, metadata !19, metadata !DIExpression()) nounwind, !dbg !DILocation(scope: !16)
call void @llvm.dbg.declare(metadata !6, metadata !23, metadata !DIExpression()) nounwind, !dbg !DILocation(scope: !24)
- call void @llvm.dbg.value(metadata i64* %data_addr.i17, metadata !34, metadata !DIExpression(DW_OP_deref)) nounwind, !dbg !DILocation(scope: !24)
- %a13 = load volatile i64, i64* %data_addr.i17, align 8 ; <i64> [#uses=1]
+ call void @llvm.dbg.value(metadata ptr %data_addr.i17, metadata !34, metadata !DIExpression(DW_OP_deref)) nounwind, !dbg !DILocation(scope: !24)
+ %a13 = load volatile i64, ptr %data_addr.i17, align 8 ; <i64> [#uses=1]
%a14 = call i64 @llvm.bswap.i64(i64 %a13) nounwind ; <i64> [#uses=2]
%a15 = add i64 %a10, %a14, !dbg !7 ; <i64> [#uses=1]
%a16 = sub i64 %a15, %a14 ; <i64> [#uses=1]
- %a17 = getelementptr inbounds %struct.gpm_t, %struct.gpm_t* %gpm, i32 0, i32 5, !dbg !7 ; <i64*> [#uses=1]
- store i64 %a16, i64* %a17, align 4, !dbg !7
+ %a17 = getelementptr inbounds %struct.gpm_t, ptr %gpm, i32 0, i32 5, !dbg !7 ; <ptr> [#uses=1]
+ store i64 %a16, ptr %a17, align 4, !dbg !7
ret void, !dbg !7
}
declare i64 @llvm.bswap.i64(i64) nounwind readnone
-declare void @uuid_LtoB(i8*, i8*)
+declare void @uuid_LtoB(ptr, ptr)
!llvm.dbg.cu = !{!4}
!llvm.module.flags = !{!41}
; Function Attrs: nounwind ssp
define i32 @bar() #1 !dbg !8 {
entry:
- %0 = load i32, i32* @i, align 4, !dbg !11
+ %0 = load i32, ptr @i, align 4, !dbg !11
tail call void @llvm.dbg.value(metadata i32 %0, metadata !13, metadata !24), !dbg !25
tail call void @llvm.dbg.declare(metadata !5, metadata !18, metadata !24), !dbg !26
%1 = mul nsw i32 %0, %0, !dbg !27
- store i32 %1, i32* @i, align 4, !dbg !11
+ store i32 %1, ptr @i, align 4, !dbg !11
ret i32 %1, !dbg !28
}
; RUN: llc -O0 %s -o /dev/null
-define void @CGRectStandardize(i32* sret(i32) %agg.result, i32* byval(i32) %rect) nounwind ssp !dbg !0 {
+define void @CGRectStandardize(ptr sret(i32) %agg.result, ptr byval(i32) %rect) nounwind ssp !dbg !0 {
entry:
- call void @llvm.dbg.declare(metadata i32* %rect, metadata !23, metadata !DIExpression()), !dbg !24
+ call void @llvm.dbg.declare(metadata ptr %rect, metadata !23, metadata !DIExpression()), !dbg !24
ret void
}
declare void @llvm.dbg.declare(metadata, metadata, metadata) nounwind readnone
-declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture, i32, i1) nounwind
+declare void @llvm.memcpy.p0.p0.i32(ptr nocapture, ptr nocapture, i32, i1) nounwind
!llvm.dbg.cu = !{!2}
@common_a = common global [32 x i8] zeroinitializer, align 8, !dbg !13, !dbg !15
define i32 @subr() !dbg !9 {
- %1 = getelementptr inbounds [32 x i8], [32 x i8]* @common_a, i64 0, i32 8
- %2 = bitcast i8* %1 to i32*
- %3 = load i32, i32* %2
- ret i32 %3
+ %1 = getelementptr inbounds [32 x i8], ptr @common_a, i64 0, i32 8
+ %2 = load i32, ptr %1
+ ret i32 %2
}
!llvm.dbg.cu = !{!0}
;; There are currently no plans to support DIArgLists for the address component.
; CHECK-LABEL: @fun5
; CHECK: %local = alloca i32, align 4, !DIAssignID ![[ID5:[0-9]+]]
-; CHECK-NEXT: llvm.dbg.assign(metadata i32 %v, metadata ![[VAR5:[0-9]+]], metadata !DIExpression(), metadata ![[ID5]], metadata i32* %local, metadata !DIExpression()), !dbg ![[DBG5:[0-9]+]]
-; CHECK-NEXT: llvm.dbg.assign(metadata !DIArgList(i32 %v, i32 1), metadata ![[VAR5]], metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_arg, 1, DW_OP_minus, DW_OP_stack_value), metadata ![[ID5]], metadata i32* %local, metadata !DIExpression()), !dbg ![[DBG5]]
+; CHECK-NEXT: llvm.dbg.assign(metadata i32 %v, metadata ![[VAR5:[0-9]+]], metadata !DIExpression(), metadata ![[ID5]], metadata ptr %local, metadata !DIExpression()), !dbg ![[DBG5:[0-9]+]]
+; CHECK-NEXT: llvm.dbg.assign(metadata !DIArgList(i32 %v, i32 1), metadata ![[VAR5]], metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_arg, 1, DW_OP_minus, DW_OP_stack_value), metadata ![[ID5]], metadata ptr %local, metadata !DIExpression()), !dbg ![[DBG5]]
define dso_local void @fun5(i32 %v) !dbg !27 {
entry:
%local = alloca i32, align 4, !DIAssignID !30
- call void @llvm.dbg.assign(metadata i32 %v, metadata !28, metadata !DIExpression(), metadata !30, metadata i32* %local, metadata !DIExpression()), !dbg !29
- call void @llvm.dbg.assign(metadata !DIArgList(i32 %v, i32 1), metadata !28, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_arg, 1, DW_OP_minus, DW_OP_stack_value), metadata !30, metadata i32* %local, metadata !DIExpression()), !dbg !29
+ call void @llvm.dbg.assign(metadata i32 %v, metadata !28, metadata !DIExpression(), metadata !30, metadata ptr %local, metadata !DIExpression()), !dbg !29
+ call void @llvm.dbg.assign(metadata !DIArgList(i32 %v, i32 1), metadata !28, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_arg, 1, DW_OP_minus, DW_OP_stack_value), metadata !30, metadata ptr %local, metadata !DIExpression()), !dbg !29
ret void
}
;; Each following dbg.assign has an argument of the incorrect type.
; CHECK: invalid llvm.dbg.assign intrinsic address/value
- call void @llvm.dbg.assign(metadata !3, metadata !10, metadata !DIExpression(), metadata !14, metadata i32* undef, metadata !DIExpression()), !dbg !13
+ call void @llvm.dbg.assign(metadata !3, metadata !10, metadata !DIExpression(), metadata !14, metadata ptr undef, metadata !DIExpression()), !dbg !13
; CHECK: invalid llvm.dbg.assign intrinsic variable
- call void @llvm.dbg.assign(metadata i32 0, metadata !2, metadata !DIExpression(), metadata !14, metadata i32* undef, metadata !DIExpression()), !dbg !13
+ call void @llvm.dbg.assign(metadata i32 0, metadata !2, metadata !DIExpression(), metadata !14, metadata ptr undef, metadata !DIExpression()), !dbg !13
; CHECK: invalid llvm.dbg.assign intrinsic expression
- call void @llvm.dbg.assign(metadata !14, metadata !10, metadata !2, metadata !14, metadata i32* undef, metadata !DIExpression()), !dbg !13
+ call void @llvm.dbg.assign(metadata !14, metadata !10, metadata !2, metadata !14, metadata ptr undef, metadata !DIExpression()), !dbg !13
; CHECK: invalid llvm.dbg.assign intrinsic DIAssignID
- call void @llvm.dbg.assign(metadata !14, metadata !10, metadata !DIExpression(), metadata !2, metadata i32* undef, metadata !DIExpression()), !dbg !13
+ call void @llvm.dbg.assign(metadata !14, metadata !10, metadata !DIExpression(), metadata !2, metadata ptr undef, metadata !DIExpression()), !dbg !13
; CHECK: invalid llvm.dbg.assign intrinsic address
call void @llvm.dbg.assign(metadata !14, metadata !10, metadata !DIExpression(), metadata !14, metadata !3, metadata !DIExpression()), !dbg !13
; CHECK: invalid llvm.dbg.assign intrinsic address expression
- call void @llvm.dbg.assign(metadata !14, metadata !10, metadata !DIExpression(), metadata !14, metadata i32* undef, metadata !2), !dbg !13
+ call void @llvm.dbg.assign(metadata !14, metadata !10, metadata !DIExpression(), metadata !14, metadata ptr undef, metadata !2), !dbg !13
ret void
}
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
-%struct.__block_byref_x = type { i8*, %struct.__block_byref_x*, i32, i32, i32 }
+%struct.__block_byref_x = type { ptr, ptr, i32, i32, i32 }
; Function Attrs: nounwind ssp uwtable
define void @foo() #0 !dbg !4 {
entry:
%x = alloca %struct.__block_byref_x, align 8
- call void @llvm.dbg.declare(metadata %struct.__block_byref_x* %x, metadata !12, metadata !22), !dbg !23
- %byref.isa = getelementptr inbounds %struct.__block_byref_x, %struct.__block_byref_x* %x, i32 0, i32 0, !dbg !24
- store i8* null, i8** %byref.isa, !dbg !24
- %byref.forwarding = getelementptr inbounds %struct.__block_byref_x, %struct.__block_byref_x* %x, i32 0, i32 1, !dbg !24
- store %struct.__block_byref_x* %x, %struct.__block_byref_x** %byref.forwarding, !dbg !24
- %byref.flags = getelementptr inbounds %struct.__block_byref_x, %struct.__block_byref_x* %x, i32 0, i32 2, !dbg !24
- store i32 0, i32* %byref.flags, !dbg !24
- %byref.size = getelementptr inbounds %struct.__block_byref_x, %struct.__block_byref_x* %x, i32 0, i32 3, !dbg !24
- store i32 32, i32* %byref.size, !dbg !24
- %forwarding = getelementptr inbounds %struct.__block_byref_x, %struct.__block_byref_x* %x, i32 0, i32 1, !dbg !25
- %0 = load %struct.__block_byref_x*, %struct.__block_byref_x** %forwarding, !dbg !25
- %x1 = getelementptr inbounds %struct.__block_byref_x, %struct.__block_byref_x* %0, i32 0, i32 4, !dbg !25
- %1 = load i32, i32* %x1, align 4, !dbg !25
+ call void @llvm.dbg.declare(metadata ptr %x, metadata !12, metadata !22), !dbg !23
+ store ptr null, ptr %x, !dbg !24
+ %byref.forwarding = getelementptr inbounds %struct.__block_byref_x, ptr %x, i32 0, i32 1, !dbg !24
+ store ptr %x, ptr %byref.forwarding, !dbg !24
+ %byref.flags = getelementptr inbounds %struct.__block_byref_x, ptr %x, i32 0, i32 2, !dbg !24
+ store i32 0, ptr %byref.flags, !dbg !24
+ %byref.size = getelementptr inbounds %struct.__block_byref_x, ptr %x, i32 0, i32 3, !dbg !24
+ store i32 32, ptr %byref.size, !dbg !24
+ %forwarding = getelementptr inbounds %struct.__block_byref_x, ptr %x, i32 0, i32 1, !dbg !25
+ %0 = load ptr, ptr %forwarding, !dbg !25
+ %x1 = getelementptr inbounds %struct.__block_byref_x, ptr %0, i32 0, i32 4, !dbg !25
+ %1 = load i32, ptr %x1, align 4, !dbg !25
call void @bar(i32 %1), !dbg !25
- %2 = bitcast %struct.__block_byref_x* %x to i8*, !dbg !26
- call void @_Block_object_dispose(i8* %2, i32 8) #3, !dbg !26
+ call void @_Block_object_dispose(ptr %x, i32 8) #3, !dbg !26
ret void, !dbg !26
}
declare void @bar(i32) #2
-declare void @_Block_object_dispose(i8*, i32)
+declare void @_Block_object_dispose(ptr, i32)
attributes #0 = { nounwind ssp uwtable sanitize_address "less-precise-fpmad"="false" "frame-pointer"="all" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { nounwind readnone }
define void @_Z3foov() !dbg !8 {
entry:
%x = alloca %struct.A, align 1
- call void @llvm.dbg.declare(metadata %struct.A* %x, metadata !12, metadata !DIExpression()), !dbg !19
- call void @_ZN1AD1Ev(%struct.A* %x) #3, !dbg !20
+ call void @llvm.dbg.declare(metadata ptr %x, metadata !12, metadata !DIExpression()), !dbg !19
+ call void @_ZN1AD1Ev(ptr %x) #3, !dbg !20
ret void, !dbg !20
}
declare void @llvm.dbg.declare(metadata, metadata, metadata)
-declare void @_ZN1AD1Ev(%struct.A*)
+declare void @_ZN1AD1Ev(ptr)
!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!3, !4, !5, !6}
; these could be signless data (dataN).
; Built with Clang from:
-; template <void *V, void (*F)(), int i>
+; template <ptr V, void (*F)(), int i>
; void func() {}
; template void func<nullptr, nullptr, 42>();
define i32 @main() #0 !dbg !4 {
entry:
%retval = alloca i32, align 4
- store i32 0, i32* %retval
+ store i32 0, ptr %retval
ret i32 0, !dbg !10
}
ret void, !dbg !9
}
-define void @bar(i32* %0) !dbg !15 {
- store i32 1, i32* %0, align 4, !dbg !16
- store i32 1, i32* %0, align 4, !dbg !21
+define void @bar(ptr %0) !dbg !15 {
+ store i32 1, ptr %0, align 4, !dbg !16
+ store i32 1, ptr %0, align 4, !dbg !21
ret void, !dbg !16
}
entry:
%x.addr.i = alloca i32, align 4
%retval = alloca i32, align 4
- store i32 0, i32* %retval
- %0 = load i32, i32* @i, align 4, !dbg !19
- %1 = bitcast i32* %x.addr.i to i8*
- call void @llvm.lifetime.start(i64 4, i8* %1)
- store i32 %0, i32* %x.addr.i, align 4
- call void @llvm.dbg.declare(metadata i32* %x.addr.i, metadata !120, metadata !DIExpression()), !dbg !21
- %2 = load i32, i32* %x.addr.i, align 4, !dbg !22
- %mul.i = mul nsw i32 %2, 2, !dbg !22
- %3 = bitcast i32* %x.addr.i to i8*, !dbg !22
- call void @llvm.lifetime.end(i64 4, i8* %3), !dbg !22
+ store i32 0, ptr %retval
+ %0 = load i32, ptr @i, align 4, !dbg !19
+ call void @llvm.lifetime.start(i64 4, ptr %x.addr.i)
+ store i32 %0, ptr %x.addr.i, align 4
+ call void @llvm.dbg.declare(metadata ptr %x.addr.i, metadata !120, metadata !DIExpression()), !dbg !21
+ %1 = load i32, ptr %x.addr.i, align 4, !dbg !22
+ %mul.i = mul nsw i32 %1, 2, !dbg !22
+ call void @llvm.lifetime.end(i64 4, ptr %x.addr.i), !dbg !22
ret i32 %mul.i, !dbg !19
}
define i32 @_Z4funci(i32 %x) #1 !dbg !12 {
entry:
%x.addr = alloca i32, align 4
- store i32 %x, i32* %x.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %x.addr, metadata !20, metadata !DIExpression()), !dbg !23
- %0 = load i32, i32* %x.addr, align 4, !dbg !24
+ store i32 %x, ptr %x.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %x.addr, metadata !20, metadata !DIExpression()), !dbg !23
+ %0 = load i32, ptr %x.addr, align 4, !dbg !24
%mul = mul nsw i32 %0, 2, !dbg !24
ret i32 %mul, !dbg !24
}
declare void @llvm.dbg.declare(metadata, metadata, metadata) #2
; Function Attrs: nounwind
-declare void @llvm.lifetime.start(i64, i8* nocapture) #3
+declare void @llvm.lifetime.start(i64, ptr nocapture) #3
; Function Attrs: nounwind
-declare void @llvm.lifetime.end(i64, i8* nocapture) #3
+declare void @llvm.lifetime.end(i64, ptr nocapture) #3
attributes #0 = { uwtable "less-precise-fpmad"="false" "frame-pointer"="all" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { alwaysinline nounwind uwtable "less-precise-fpmad"="false" "frame-pointer"="all" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
source_filename = "test/DebugInfo/Generic/cross-cu-linkonce-distinct.ll"
-@x = global i32 (i32)* @_Z4funci, align 8, !dbg !0
-@y = global i32 (i32)* @_Z4funci, align 8, !dbg !7
+@x = global ptr @_Z4funci, align 8, !dbg !0
+@y = global ptr @_Z4funci, align 8, !dbg !7
; Function Attrs: inlinehint nounwind uwtable
define linkonce_odr i32 @_Z4funci(i32 %i) #0 !dbg !18 {
%1 = alloca i32, align 4
- store i32 %i, i32* %1, align 4
- call void @llvm.dbg.declare(metadata i32* %1, metadata !19, metadata !20), !dbg !21
- %2 = load i32, i32* %1, align 4, !dbg !22
+ store i32 %i, ptr %1, align 4
+ call void @llvm.dbg.declare(metadata ptr %1, metadata !19, metadata !20), !dbg !21
+ %2 = load i32, ptr %1, align 4, !dbg !22
%3 = mul nsw i32 %2, 2, !dbg !22
ret i32 %3, !dbg !22
}
source_filename = "test/DebugInfo/Generic/cross-cu-linkonce.ll"
-@x = global i32 (i32)* @_Z4funci, align 8, !dbg !0
-@y = global i32 (i32)* @_Z4funci, align 8, !dbg !7
+@x = global ptr @_Z4funci, align 8, !dbg !0
+@y = global ptr @_Z4funci, align 8, !dbg !7
; Function Attrs: inlinehint nounwind uwtable
define linkonce_odr i32 @_Z4funci(i32 %i) #0 !dbg !19 {
%1 = alloca i32, align 4
- store i32 %i, i32* %1, align 4
- call void @llvm.dbg.declare(metadata i32* %1, metadata !20, metadata !21), !dbg !22
- %2 = load i32, i32* %1, align 4, !dbg !23
+ store i32 %i, ptr %1, align 4
+ call void @llvm.dbg.declare(metadata ptr %1, metadata !20, metadata !21), !dbg !22
+ %2 = load i32, ptr %1, align 4, !dbg !23
%3 = mul nsw i32 %2, 2, !dbg !23
ret i32 %3, !dbg !23
}
define i32 @b(i32 %c) #0 !dbg !5 {
entry:
%c.addr = alloca i32, align 4
- store i32 %c, i32* %c.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %c.addr, metadata !13, metadata !DIExpression()), !dbg !14
- %0 = load i32, i32* %c.addr, align 4, !dbg !14
+ store i32 %c, ptr %c.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %c.addr, metadata !13, metadata !DIExpression()), !dbg !14
+ %0 = load i32, ptr %c.addr, align 4, !dbg !14
%add = add nsw i32 %0, 1, !dbg !14
ret i32 %add, !dbg !14
}
define i32 @a(i32 %b) #0 {
entry:
%b.addr = alloca i32, align 4
- store i32 %b, i32* %b.addr, align 4
- %0 = load i32, i32* %b.addr, align 4
+ store i32 %b, ptr %b.addr, align 4
+ %0 = load i32, ptr %b.addr, align 4
%add = add nsw i32 %0, 1
ret i32 %add
}
define i32 @d(i32 %e) #0 !dbg !10 {
entry:
%e.addr = alloca i32, align 4
- store i32 %e, i32* %e.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %e.addr, metadata !15, metadata !DIExpression()), !dbg !16
- %0 = load i32, i32* %e.addr, align 4, !dbg !16
+ store i32 %e, ptr %e.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %e.addr, metadata !15, metadata !DIExpression()), !dbg !16
+ %0 = load i32, ptr %e.addr, align 4, !dbg !16
%add = add nsw i32 %0, 1, !dbg !16
ret i32 %add, !dbg !16
}
define i32 @foo(i32 %a) #0 section "__TEXT,__foo" !dbg !4 {
entry:
%a.addr = alloca i32, align 4
- store i32 %a, i32* %a.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %a.addr, metadata !13, metadata !DIExpression()), !dbg !14
- %0 = load i32, i32* %a.addr, align 4, !dbg !15
+ store i32 %a, ptr %a.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %a.addr, metadata !13, metadata !DIExpression()), !dbg !14
+ %0 = load i32, ptr %a.addr, align 4, !dbg !15
%add = add nsw i32 %0, 5, !dbg !15
ret i32 %add, !dbg !15
}
define i32 @bar(i32 %a) #0 !dbg !9 {
entry:
%a.addr = alloca i32, align 4
- store i32 %a, i32* %a.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %a.addr, metadata !16, metadata !DIExpression()), !dbg !17
- %0 = load i32, i32* %a.addr, align 4, !dbg !18
+ store i32 %a, ptr %a.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %a.addr, metadata !16, metadata !DIExpression()), !dbg !17
+ %0 = load i32, ptr %a.addr, align 4, !dbg !18
%add = add nsw i32 %0, 5, !dbg !18
ret i32 %add, !dbg !18
}
; CHECK-NEXT: dbg.value(metadata i32 %toret, {{.*}}), !dbg ![[UNKNOWN]]
; CHECK-NEXT: ret i32 %toret
-define i32 @foo(i32 *%bees, i32 *%output) {
+define i32 @foo(ptr %bees, ptr %output) {
entry:
%bar = alloca i32
- call void @llvm.dbg.declare(metadata i32 *%bar, metadata !7, metadata !DIExpression()), !dbg !6
- store i32 0, i32 *%bar
+ call void @llvm.dbg.declare(metadata ptr %bar, metadata !7, metadata !DIExpression()), !dbg !6
+ store i32 0, ptr %bar
br label %bb1, !dbg !6
bb1:
- %totest = load i32, i32 *%bees, !dbg !8
- %load1 = load i32, i32 *%bar, !dbg !9
+ %totest = load i32, ptr %bees, !dbg !8
+ %load1 = load i32, ptr %bar, !dbg !9
%add = add i32 %load1, 1, !dbg !10
- store i32 %add, i32 *%bar, !dbg !11
+ store i32 %add, ptr %bar, !dbg !11
%toret = add i32 %add, 2, !dbg !12
%cond = icmp ult i32 %totest, %load1, !dbg !13
br i1 %cond, label %bb1, label %bb2, !dbg !14
bb2:
- store i32 %toret, i32 *%bar, !dbg !16
+ store i32 %toret, ptr %bar, !dbg !16
ret i32 %toret
}
; CHECK: dbg.value(metadata i32 %map, metadata ![[MAPVAR:[0-9]+]],{{.*}}),
; CHECK-SAME: !dbg ![[UNKNOWN2:[0-9]+]]
; CHECK-NEXT: store
-; CHECK-NEXT: dbg.value(metadata i32* %map.addr, metadata ![[MAPVAR]],
+; CHECK-NEXT: dbg.value(metadata ptr %map.addr, metadata ![[MAPVAR]],
; CHECK-SAME: metadata !DIExpression(DW_OP_deref)),
; CHECK-SAME: !dbg ![[UNKNOWN2]]
; CHECK-NEXT: call
define void @bar(i32 %map) !dbg !20 {
entry:
%map.addr = alloca i32, align 4
- store i32 %map, i32* %map.addr, align 4, !dbg !27
- call void @llvm.dbg.declare(metadata i32* %map.addr, metadata !21, metadata !DIExpression()), !dbg !22
- %call = call i32 (i32*, ...) bitcast (i32 (...)* @lookup to i32 (i32*, ...)*)(i32* %map.addr), !dbg !23
-%0 = load i32, i32* %map.addr, align 4, !dbg !24
- %call1 = call i32 (i32, ...) bitcast (i32 (...)* @verify to i32 (i32, ...)*)(i32 %0), !dbg !25
+ store i32 %map, ptr %map.addr, align 4, !dbg !27
+ call void @llvm.dbg.declare(metadata ptr %map.addr, metadata !21, metadata !DIExpression()), !dbg !22
+ %call = call i32 (ptr, ...) @lookup(ptr %map.addr), !dbg !23
+%0 = load i32, ptr %map.addr, align 4, !dbg !24
+ %call1 = call i32 (i32, ...) @verify(i32 %0), !dbg !25
ret void, !dbg !26
}
; Function Attrs: nounwind readnone uwtable
define i32 @_Z8function1Si(i32 %s.coerce, i32 %i) #0 !dbg !9 {
entry:
- tail call void @llvm.dbg.declare(metadata %struct.S* undef, metadata !14, metadata !DIExpression()), !dbg !20
+ tail call void @llvm.dbg.declare(metadata ptr undef, metadata !14, metadata !DIExpression()), !dbg !20
tail call void @llvm.dbg.value(metadata i32 %i, metadata !15, metadata !DIExpression()), !dbg !20
%add = add nsw i32 %i, %s.coerce, !dbg !20
ret i32 %add, !dbg !20
!16 = !{i32 2, !"Dwarf Version", i32 4}
!17 = !{i32 2, !"Debug Info Version", i32 3}
!18 = !{!"clang version 3.5.0 "}
-!19 = !{%struct.S* undef}
+!19 = !{ptr undef}
!20 = !DILocation(line: 2, scope: !9)
entry:
%arr = alloca [10 x i32], align 16
%sum = alloca i32, align 4
- call void @llvm.dbg.declare(metadata [10 x i32]* %arr, metadata !14), !dbg !18
- %arrayidx = getelementptr inbounds [10 x i32], [10 x i32]* %arr, i32 0, i64 0, !dbg !19
- store i32 5, i32* %arrayidx, align 4, !dbg !19
- call void @llvm.dbg.declare(metadata i32* %sum, metadata !20), !dbg !21
- store i32 4, i32* %sum, align 4, !dbg !21
- %0 = load i32, i32* %sum, align 4, !dbg !22
+ call void @llvm.dbg.declare(metadata ptr %arr, metadata !14), !dbg !18
+ store i32 5, ptr %arr, align 4, !dbg !19
+ call void @llvm.dbg.declare(metadata ptr %sum, metadata !20), !dbg !21
+ store i32 4, ptr %sum, align 4, !dbg !21
+ %0 = load i32, ptr %sum, align 4, !dbg !22
ret i32 %0, !dbg !22
}
entry:
%retval = alloca i32, align 4
%i = alloca i32, align 4
- store i32 0, i32* %retval
+ store i32 0, ptr %retval
call void @_Z3barv(), !dbg !23
- call void @llvm.dbg.declare(metadata i32* %i, metadata !24), !dbg !25
+ call void @llvm.dbg.declare(metadata ptr %i, metadata !24), !dbg !25
%call = call i32 @_Z3foov(), !dbg !25
- store i32 %call, i32* %i, align 4, !dbg !25
- %0 = load i32, i32* %i, align 4, !dbg !26
+ store i32 %call, ptr %i, align 4, !dbg !25
+ %0 = load i32, ptr %i, align 4, !dbg !26
ret i32 %0, !dbg !26
}
!1 = !{!"<stdin>", !"/home/user/test"}
!2 = !{}
!3 = !{!4, !10}
-!4 = !{i32 786478, !5, !6, !"foo", !"foo", !"_Z3foov", i32 1, !7, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 false, i32 ()* @_Z3foov, null, null, !2, i32 2} ; [ DW_TAG_subprogram ] [line 1] [def] [scope 2] [foo]
+!4 = !{i32 786478, !5, !6, !"foo", !"foo", !"_Z3foov", i32 1, !7, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 false, ptr @_Z3foov, null, null, !2, i32 2} ; [ DW_TAG_subprogram ] [line 1] [def] [scope 2] [foo]
!5 = !{!"test.cpp", !"/home/user/test"}
!6 = !{i32 786473, !5} ; [ DW_TAG_file_type ] [/home/user/test/test.cpp]
!7 = !{i32 786453, i32 0, null, !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, !8, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
!8 = !{!9}
!9 = !{i32 786468, null, null, !"int", i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ] [int] [line 0, size 32, align 32, offset 0, enc DW_ATE_signed]
-!10 = !{i32 786478, !5, !6, !"main", !"main", !"", i32 11, !7, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 false, i32 ()* @main, null, null, !2, i32 12} ; [ DW_TAG_subprogram ] [line 11] [def] [scope 12] [main]
+!10 = !{i32 786478, !5, !6, !"main", !"main", !"", i32 11, !7, i1 false, i1 true, i32 0, i32 0, null, i32 256, i1 false, ptr @main, null, null, !2, i32 12} ; [ DW_TAG_subprogram ] [line 11] [def] [scope 12] [main]
!11 = !{i32 2, !"Dwarf Version", i32 4}
!12 = !{i32 2, !"Debug Info Version", i32 1}
!13 = !{!"clang version 3.6.0 (217844)"}
%a = alloca %class.A, align 1
%pl = alloca { i64, i64 }, align 8
%pr = alloca { i64, i64 }, align 8
- call void @llvm.dbg.declare(metadata %class.A* %a, metadata !24, metadata !DIExpression()), !dbg !25
- call void @llvm.dbg.declare(metadata { i64, i64 }* %pl, metadata !26, metadata !DIExpression()), !dbg !31
- store { i64, i64 } { i64 ptrtoint (void (%class.A*)* @_ZNKR1A1lEv to i64), i64 0 }, { i64, i64 }* %pl, align 8, !dbg !31
- call void @llvm.dbg.declare(metadata { i64, i64 }* %pr, metadata !32, metadata !DIExpression()), !dbg !35
- store { i64, i64 } { i64 ptrtoint (void (%class.A*)* @_ZNKO1A1rEv to i64), i64 0 }, { i64, i64 }* %pr, align 8, !dbg !35
+ call void @llvm.dbg.declare(metadata ptr %a, metadata !24, metadata !DIExpression()), !dbg !25
+ call void @llvm.dbg.declare(metadata ptr %pl, metadata !26, metadata !DIExpression()), !dbg !31
+ store { i64, i64 } { i64 ptrtoint (ptr @_ZNKR1A1lEv to i64), i64 0 }, ptr %pl, align 8, !dbg !31
+ call void @llvm.dbg.declare(metadata ptr %pr, metadata !32, metadata !DIExpression()), !dbg !35
+ store { i64, i64 } { i64 ptrtoint (ptr @_ZNKO1A1rEv to i64), i64 0 }, ptr %pr, align 8, !dbg !35
ret void, !dbg !36
}
; Function Attrs: nounwind readnone
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
-declare void @_ZNKR1A1lEv(%class.A*)
+declare void @_ZNKR1A1lEv(ptr)
-declare void @_ZNKO1A1rEv(%class.A*)
+declare void @_ZNKO1A1rEv(ptr)
attributes #0 = { nounwind }
attributes #1 = { nounwind readnone }
define i32 @f2() local_unnamed_addr #0 !dbg !4 {
entry:
- %0 = load i32, i32* @ga, align 4, !dbg !1
- %1 = load i32, i32* @gb, align 4, !dbg !1
+ %0 = load i32, ptr @ga, align 4, !dbg !1
+ %1 = load i32, ptr @gb, align 4, !dbg !1
call void @llvm.dbg.label(metadata !15), !dbg !17
%add.i = add nsw i32 %1, %0, !dbg !18
ret i32 %add.i, !dbg !1
%a.addr = alloca i32, align 4
%b.addr = alloca i32, align 4
%sum = alloca i32, align 4
- store i32 %a, i32* %a.addr, align 4
- store i32 %b, i32* %b.addr, align 4
+ store i32 %a, ptr %a.addr, align 4
+ store i32 %b, ptr %b.addr, align 4
br label %top
top: ; preds = %entry
call void @llvm.dbg.label(metadata !8), !dbg !9
- %0 = load i32, i32* %a.addr, align 4
- %1 = load i32, i32* %b.addr, align 4
+ %0 = load i32, ptr %a.addr, align 4
+ %1 = load i32, ptr %b.addr, align 4
%add = add nsw i32 %0, %1
- store i32 %add, i32* %sum, align 4
+ store i32 %add, ptr %sum, align 4
br label %done
done: ; preds = %top
call void @llvm.dbg.label(metadata !10), !dbg !11
- %2 = load i32, i32* %sum, align 4
+ %2 = load i32, ptr %sum, align 4
ret i32 %2
}
; CHECKMI: DBG_LABEL "end", debug-location !19
source_filename = "debug-label-opt.c"
-define i32 @foo(i32* nocapture readonly %a, i32 %n) local_unnamed_addr !dbg !7 {
+define i32 @foo(ptr nocapture readonly %a, i32 %n) local_unnamed_addr !dbg !7 {
entry:
- call void @llvm.dbg.value(metadata i32* %a, metadata !13, metadata !DIExpression()), !dbg !6
+ call void @llvm.dbg.value(metadata ptr %a, metadata !13, metadata !DIExpression()), !dbg !6
call void @llvm.dbg.value(metadata i32 %n, metadata !14, metadata !DIExpression()), !dbg !6
switch i32 %n, label %end_sum [
i32 2, label %end_sum.sink.split
], !dbg !6
if.then3: ; preds = %entry
- %arrayidx4 = getelementptr inbounds i32, i32* %a, i64 1, !dbg !6
+ %arrayidx4 = getelementptr inbounds i32, ptr %a, i64 1, !dbg !6
br label %end_sum.sink.split, !dbg !6
end_sum.sink.split: ; preds = %entry, %if.then3
- %a.sink = phi i32* [ %arrayidx4, %if.then3 ], [ %a, %entry ]
+ %a.sink = phi ptr [ %arrayidx4, %if.then3 ], [ %a, %entry ]
%.sink = phi i64 [ 2, %if.then3 ], [ 1, %entry ]
- %0 = load i32, i32* %a.sink, align 4
- %arrayidx1 = getelementptr inbounds i32, i32* %a, i64 %.sink
- %1 = load i32, i32* %arrayidx1, align 4
+ %0 = load i32, ptr %a.sink, align 4
+ %arrayidx1 = getelementptr inbounds i32, ptr %a, i64 %.sink
+ %1 = load i32, ptr %arrayidx1, align 4
%add = add nsw i32 %1, %0
br label %end_sum, !dbg !6
end_sum: ; preds = %end_sum.sink.split, %entry
%sum.0 = phi i32 [ 0, %entry ], [ %add, %end_sum.sink.split ]
call void @llvm.dbg.label(metadata !15), !dbg !17
- %2 = load i32, i32* %a, align 4, !dbg !6
+ %2 = load i32, ptr %a, align 4, !dbg !6
%mul = mul nsw i32 %2, %sum.0, !dbg !18
call void @llvm.dbg.label(metadata !16), !dbg !19
ret i32 %mul, !dbg !6
%a.addr = alloca i32, align 4
%b.addr = alloca i32, align 4
%sum = alloca i32, align 4
- store i32 %a, i32* %a.addr, align 4
- store i32 %b, i32* %b.addr, align 4
+ store i32 %a, ptr %a.addr, align 4
+ store i32 %b, ptr %b.addr, align 4
br label %top
top:
call void @llvm.dbg.label(metadata !10), !dbg !11
- %0 = load i32, i32* %a.addr, align 4
- %1 = load i32, i32* %b.addr, align 4
+ %0 = load i32, ptr %a.addr, align 4
+ %1 = load i32, ptr %b.addr, align 4
%add = add nsw i32 %0, %1
- store i32 %add, i32* %sum, align 4
+ store i32 %add, ptr %sum, align 4
br label %done
done:
call void @llvm.dbg.label(metadata !12), !dbg !13
- %2 = load i32, i32* %sum, align 4
+ %2 = load i32, ptr %sum, align 4
ret i32 %2, !dbg !14
}
; DWARF v5 hash function: A copy constructor and an assignment operator for a
; class will always hash to the same value.
;
-; typedef void *_ZN4lldb7SBBlockaSERKS0_;
+; typedef ptr_ZN4lldb7SBBlockaSERKS0_;
; _ZN4lldb7SBBlockaSERKS0_ _ZN4lldb7SBBlockC1ERKS0_;
-; typedef void *_ZN4lldb7SBErroraSERKS0_;
+; typedef ptr_ZN4lldb7SBErroraSERKS0_;
; _ZN4lldb7SBErroraSERKS0_ _ZN4lldb7SBErrorC1ERKS0_;
-; typedef void *_ZN4lldb7SBValueaSERKS0_;
+; typedef ptr_ZN4lldb7SBValueaSERKS0_;
; _ZN4lldb7SBValueaSERKS0_ _ZN4lldb7SBValueC1ERKS0_;
-; typedef void *_ZL11numCommutes;
+; typedef ptr_ZL11numCommutes;
; _ZL11numCommutes _ZL11NumCommutes;
-; typedef void *_ZL9NumRemats;
+; typedef ptr_ZL9NumRemats;
; _ZL9NumRemats _ZL9NumReMats;
; Check that we have the right amount of hashes and names.
; VERIFY: No errors.
-@_ZN4lldb7SBBlockC1ERKS0_ = common dso_local global i8* null, align 8, !dbg !0
-@_ZN4lldb7SBErrorC1ERKS0_ = common dso_local global i8* null, align 8, !dbg !6
-@_ZN4lldb7SBValueC1ERKS0_ = common dso_local global i8* null, align 8, !dbg !10
-@_ZL11NumCommutes = common dso_local global i8* null, align 8, !dbg !13
-@_ZL9NumReMats = common dso_local global i8* null, align 8, !dbg !16
+@_ZN4lldb7SBBlockC1ERKS0_ = common dso_local global ptr null, align 8, !dbg !0
+@_ZN4lldb7SBErrorC1ERKS0_ = common dso_local global ptr null, align 8, !dbg !6
+@_ZN4lldb7SBValueC1ERKS0_ = common dso_local global ptr null, align 8, !dbg !10
+@_ZL11NumCommutes = common dso_local global ptr null, align 8, !dbg !13
+@_ZL9NumReMats = common dso_local global ptr null, align 8, !dbg !16
!llvm.dbg.cu = !{!2}
!llvm.module.flags = !{!20, !21, !22}
!6 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64)
!3 = !DIFile(filename: "/tmp/cu2.c", directory: "/tmp")
-@foobar1 = common dso_local global i8* null, align 8, !dbg !10
+@foobar1 = common dso_local global ptr null, align 8, !dbg !10
!10 = !DIGlobalVariableExpression(var: !11, expr: !DIExpression())
!11 = distinct !DIGlobalVariable(name: "foobar1", scope: !12, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!12 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !15)
!15 = !{!10}
-@foobar2 = common dso_local global i8* null, align 8, !dbg !20
+@foobar2 = common dso_local global ptr null, align 8, !dbg !20
!20 = !DIGlobalVariableExpression(var: !21, expr: !DIExpression())
!21 = distinct !DIGlobalVariable(name: "foobar2", scope: !22, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!22 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !25)
!25 = !{!20}
-@foobar3 = common dso_local global i8* null, align 8, !dbg !30
+@foobar3 = common dso_local global ptr null, align 8, !dbg !30
!30 = !DIGlobalVariableExpression(var: !31, expr: !DIExpression())
!31 = distinct !DIGlobalVariable(name: "foobar3", scope: !32, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!32 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !35)
!35 = !{!30}
-@foobar4 = common dso_local global i8* null, align 8, !dbg !40
+@foobar4 = common dso_local global ptr null, align 8, !dbg !40
!40 = !DIGlobalVariableExpression(var: !41, expr: !DIExpression())
!41 = distinct !DIGlobalVariable(name: "foobar4", scope: !42, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!42 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !45)
!45 = !{!40}
-@foobar5 = common dso_local global i8* null, align 8, !dbg !50
+@foobar5 = common dso_local global ptr null, align 8, !dbg !50
!50 = !DIGlobalVariableExpression(var: !51, expr: !DIExpression())
!51 = distinct !DIGlobalVariable(name: "foobar5", scope: !52, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!52 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !55)
!55 = !{!50}
-@foobar6 = common dso_local global i8* null, align 8, !dbg !60
+@foobar6 = common dso_local global ptr null, align 8, !dbg !60
!60 = !DIGlobalVariableExpression(var: !61, expr: !DIExpression())
!61 = distinct !DIGlobalVariable(name: "foobar6", scope: !62, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!62 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !65)
!65 = !{!60}
-@foobar7 = common dso_local global i8* null, align 8, !dbg !70
+@foobar7 = common dso_local global ptr null, align 8, !dbg !70
!70 = !DIGlobalVariableExpression(var: !71, expr: !DIExpression())
!71 = distinct !DIGlobalVariable(name: "foobar7", scope: !72, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!72 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !75)
!75 = !{!70}
-@foobar8 = common dso_local global i8* null, align 8, !dbg !80
+@foobar8 = common dso_local global ptr null, align 8, !dbg !80
!80 = !DIGlobalVariableExpression(var: !81, expr: !DIExpression())
!81 = distinct !DIGlobalVariable(name: "foobar8", scope: !82, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!82 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !85)
!85 = !{!80}
-@foobar9 = common dso_local global i8* null, align 8, !dbg !90
+@foobar9 = common dso_local global ptr null, align 8, !dbg !90
!90 = !DIGlobalVariableExpression(var: !91, expr: !DIExpression())
!91 = distinct !DIGlobalVariable(name: "foobar9", scope: !92, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!92 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !95)
!95 = !{!90}
-@foobar10 = common dso_local global i8* null, align 8, !dbg !100
+@foobar10 = common dso_local global ptr null, align 8, !dbg !100
!100 = !DIGlobalVariableExpression(var: !101, expr: !DIExpression())
!101 = distinct !DIGlobalVariable(name: "foobar10", scope: !102, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!102 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !105)
!105 = !{!100}
-@foobar11 = common dso_local global i8* null, align 8, !dbg !110
+@foobar11 = common dso_local global ptr null, align 8, !dbg !110
!110 = !DIGlobalVariableExpression(var: !111, expr: !DIExpression())
!111 = distinct !DIGlobalVariable(name: "foobar11", scope: !112, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!112 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !115)
!115 = !{!110}
-@foobar12 = common dso_local global i8* null, align 8, !dbg !120
+@foobar12 = common dso_local global ptr null, align 8, !dbg !120
!120 = !DIGlobalVariableExpression(var: !121, expr: !DIExpression())
!121 = distinct !DIGlobalVariable(name: "foobar12", scope: !122, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!122 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !125)
!125 = !{!120}
-@foobar13 = common dso_local global i8* null, align 8, !dbg !130
+@foobar13 = common dso_local global ptr null, align 8, !dbg !130
!130 = !DIGlobalVariableExpression(var: !131, expr: !DIExpression())
!131 = distinct !DIGlobalVariable(name: "foobar13", scope: !132, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!132 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !135)
!135 = !{!130}
-@foobar14 = common dso_local global i8* null, align 8, !dbg !140
+@foobar14 = common dso_local global ptr null, align 8, !dbg !140
!140 = !DIGlobalVariableExpression(var: !141, expr: !DIExpression())
!141 = distinct !DIGlobalVariable(name: "foobar14", scope: !142, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!142 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !145)
!145 = !{!140}
-@foobar15 = common dso_local global i8* null, align 8, !dbg !150
+@foobar15 = common dso_local global ptr null, align 8, !dbg !150
!150 = !DIGlobalVariableExpression(var: !151, expr: !DIExpression())
!151 = distinct !DIGlobalVariable(name: "foobar15", scope: !152, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!152 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !155)
!155 = !{!150}
-@foobar16 = common dso_local global i8* null, align 8, !dbg !160
+@foobar16 = common dso_local global ptr null, align 8, !dbg !160
!160 = !DIGlobalVariableExpression(var: !161, expr: !DIExpression())
!161 = distinct !DIGlobalVariable(name: "foobar16", scope: !162, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!162 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !165)
!165 = !{!160}
-@foobar17 = common dso_local global i8* null, align 8, !dbg !170
+@foobar17 = common dso_local global ptr null, align 8, !dbg !170
!170 = !DIGlobalVariableExpression(var: !171, expr: !DIExpression())
!171 = distinct !DIGlobalVariable(name: "foobar17", scope: !172, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!172 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !175)
!175 = !{!170}
-@foobar18 = common dso_local global i8* null, align 8, !dbg !180
+@foobar18 = common dso_local global ptr null, align 8, !dbg !180
!180 = !DIGlobalVariableExpression(var: !181, expr: !DIExpression())
!181 = distinct !DIGlobalVariable(name: "foobar18", scope: !182, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!182 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !185)
!185 = !{!180}
-@foobar19 = common dso_local global i8* null, align 8, !dbg !190
+@foobar19 = common dso_local global ptr null, align 8, !dbg !190
!190 = !DIGlobalVariableExpression(var: !191, expr: !DIExpression())
!191 = distinct !DIGlobalVariable(name: "foobar19", scope: !192, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!192 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !195)
!195 = !{!190}
-@foobar20 = common dso_local global i8* null, align 8, !dbg !200
+@foobar20 = common dso_local global ptr null, align 8, !dbg !200
!200 = !DIGlobalVariableExpression(var: !201, expr: !DIExpression())
!201 = distinct !DIGlobalVariable(name: "foobar20", scope: !202, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!202 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !205)
!205 = !{!200}
-@foobar21 = common dso_local global i8* null, align 8, !dbg !210
+@foobar21 = common dso_local global ptr null, align 8, !dbg !210
!210 = !DIGlobalVariableExpression(var: !211, expr: !DIExpression())
!211 = distinct !DIGlobalVariable(name: "foobar21", scope: !212, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!212 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !215)
!215 = !{!210}
-@foobar22 = common dso_local global i8* null, align 8, !dbg !220
+@foobar22 = common dso_local global ptr null, align 8, !dbg !220
!220 = !DIGlobalVariableExpression(var: !221, expr: !DIExpression())
!221 = distinct !DIGlobalVariable(name: "foobar22", scope: !222, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!222 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !225)
!225 = !{!220}
-@foobar23 = common dso_local global i8* null, align 8, !dbg !230
+@foobar23 = common dso_local global ptr null, align 8, !dbg !230
!230 = !DIGlobalVariableExpression(var: !231, expr: !DIExpression())
!231 = distinct !DIGlobalVariable(name: "foobar23", scope: !232, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!232 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !235)
!235 = !{!230}
-@foobar24 = common dso_local global i8* null, align 8, !dbg !240
+@foobar24 = common dso_local global ptr null, align 8, !dbg !240
!240 = !DIGlobalVariableExpression(var: !241, expr: !DIExpression())
!241 = distinct !DIGlobalVariable(name: "foobar24", scope: !242, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!242 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !245)
!245 = !{!240}
-@foobar25 = common dso_local global i8* null, align 8, !dbg !250
+@foobar25 = common dso_local global ptr null, align 8, !dbg !250
!250 = !DIGlobalVariableExpression(var: !251, expr: !DIExpression())
!251 = distinct !DIGlobalVariable(name: "foobar25", scope: !252, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!252 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !255)
!255 = !{!250}
-@foobar26 = common dso_local global i8* null, align 8, !dbg !260
+@foobar26 = common dso_local global ptr null, align 8, !dbg !260
!260 = !DIGlobalVariableExpression(var: !261, expr: !DIExpression())
!261 = distinct !DIGlobalVariable(name: "foobar26", scope: !262, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!262 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !265)
!265 = !{!260}
-@foobar27 = common dso_local global i8* null, align 8, !dbg !270
+@foobar27 = common dso_local global ptr null, align 8, !dbg !270
!270 = !DIGlobalVariableExpression(var: !271, expr: !DIExpression())
!271 = distinct !DIGlobalVariable(name: "foobar27", scope: !272, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!272 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !275)
!275 = !{!270}
-@foobar28 = common dso_local global i8* null, align 8, !dbg !280
+@foobar28 = common dso_local global ptr null, align 8, !dbg !280
!280 = !DIGlobalVariableExpression(var: !281, expr: !DIExpression())
!281 = distinct !DIGlobalVariable(name: "foobar28", scope: !282, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!282 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !285)
!285 = !{!280}
-@foobar29 = common dso_local global i8* null, align 8, !dbg !290
+@foobar29 = common dso_local global ptr null, align 8, !dbg !290
!290 = !DIGlobalVariableExpression(var: !291, expr: !DIExpression())
!291 = distinct !DIGlobalVariable(name: "foobar29", scope: !292, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!292 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !295)
!295 = !{!290}
-@foobar30 = common dso_local global i8* null, align 8, !dbg !300
+@foobar30 = common dso_local global ptr null, align 8, !dbg !300
!300 = !DIGlobalVariableExpression(var: !301, expr: !DIExpression())
!301 = distinct !DIGlobalVariable(name: "foobar30", scope: !302, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!302 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !305)
!305 = !{!300}
-@foobar31 = common dso_local global i8* null, align 8, !dbg !310
+@foobar31 = common dso_local global ptr null, align 8, !dbg !310
!310 = !DIGlobalVariableExpression(var: !311, expr: !DIExpression())
!311 = distinct !DIGlobalVariable(name: "foobar31", scope: !312, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!312 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !315)
!315 = !{!310}
-@foobar32 = common dso_local global i8* null, align 8, !dbg !320
+@foobar32 = common dso_local global ptr null, align 8, !dbg !320
!320 = !DIGlobalVariableExpression(var: !321, expr: !DIExpression())
!321 = distinct !DIGlobalVariable(name: "foobar32", scope: !322, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!322 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !325)
!325 = !{!320}
-@foobar33 = common dso_local global i8* null, align 8, !dbg !330
+@foobar33 = common dso_local global ptr null, align 8, !dbg !330
!330 = !DIGlobalVariableExpression(var: !331, expr: !DIExpression())
!331 = distinct !DIGlobalVariable(name: "foobar33", scope: !332, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!332 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !335)
!335 = !{!330}
-@foobar34 = common dso_local global i8* null, align 8, !dbg !340
+@foobar34 = common dso_local global ptr null, align 8, !dbg !340
!340 = !DIGlobalVariableExpression(var: !341, expr: !DIExpression())
!341 = distinct !DIGlobalVariable(name: "foobar34", scope: !342, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!342 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !345)
!345 = !{!340}
-@foobar35 = common dso_local global i8* null, align 8, !dbg !350
+@foobar35 = common dso_local global ptr null, align 8, !dbg !350
!350 = !DIGlobalVariableExpression(var: !351, expr: !DIExpression())
!351 = distinct !DIGlobalVariable(name: "foobar35", scope: !352, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!352 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !355)
!355 = !{!350}
-@foobar36 = common dso_local global i8* null, align 8, !dbg !360
+@foobar36 = common dso_local global ptr null, align 8, !dbg !360
!360 = !DIGlobalVariableExpression(var: !361, expr: !DIExpression())
!361 = distinct !DIGlobalVariable(name: "foobar36", scope: !362, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!362 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !365)
!365 = !{!360}
-@foobar37 = common dso_local global i8* null, align 8, !dbg !370
+@foobar37 = common dso_local global ptr null, align 8, !dbg !370
!370 = !DIGlobalVariableExpression(var: !371, expr: !DIExpression())
!371 = distinct !DIGlobalVariable(name: "foobar37", scope: !372, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!372 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !375)
!375 = !{!370}
-@foobar38 = common dso_local global i8* null, align 8, !dbg !380
+@foobar38 = common dso_local global ptr null, align 8, !dbg !380
!380 = !DIGlobalVariableExpression(var: !381, expr: !DIExpression())
!381 = distinct !DIGlobalVariable(name: "foobar38", scope: !382, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!382 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !385)
!385 = !{!380}
-@foobar39 = common dso_local global i8* null, align 8, !dbg !390
+@foobar39 = common dso_local global ptr null, align 8, !dbg !390
!390 = !DIGlobalVariableExpression(var: !391, expr: !DIExpression())
!391 = distinct !DIGlobalVariable(name: "foobar39", scope: !392, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!392 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !395)
!395 = !{!390}
-@foobar40 = common dso_local global i8* null, align 8, !dbg !400
+@foobar40 = common dso_local global ptr null, align 8, !dbg !400
!400 = !DIGlobalVariableExpression(var: !401, expr: !DIExpression())
!401 = distinct !DIGlobalVariable(name: "foobar40", scope: !402, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!402 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !405)
!405 = !{!400}
-@foobar41 = common dso_local global i8* null, align 8, !dbg !410
+@foobar41 = common dso_local global ptr null, align 8, !dbg !410
!410 = !DIGlobalVariableExpression(var: !411, expr: !DIExpression())
!411 = distinct !DIGlobalVariable(name: "foobar41", scope: !412, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!412 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !415)
!415 = !{!410}
-@foobar42 = common dso_local global i8* null, align 8, !dbg !420
+@foobar42 = common dso_local global ptr null, align 8, !dbg !420
!420 = !DIGlobalVariableExpression(var: !421, expr: !DIExpression())
!421 = distinct !DIGlobalVariable(name: "foobar42", scope: !422, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!422 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !425)
!425 = !{!420}
-@foobar43 = common dso_local global i8* null, align 8, !dbg !430
+@foobar43 = common dso_local global ptr null, align 8, !dbg !430
!430 = !DIGlobalVariableExpression(var: !431, expr: !DIExpression())
!431 = distinct !DIGlobalVariable(name: "foobar43", scope: !432, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!432 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !435)
!435 = !{!430}
-@foobar44 = common dso_local global i8* null, align 8, !dbg !440
+@foobar44 = common dso_local global ptr null, align 8, !dbg !440
!440 = !DIGlobalVariableExpression(var: !441, expr: !DIExpression())
!441 = distinct !DIGlobalVariable(name: "foobar44", scope: !442, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!442 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !445)
!445 = !{!440}
-@foobar45 = common dso_local global i8* null, align 8, !dbg !450
+@foobar45 = common dso_local global ptr null, align 8, !dbg !450
!450 = !DIGlobalVariableExpression(var: !451, expr: !DIExpression())
!451 = distinct !DIGlobalVariable(name: "foobar45", scope: !452, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!452 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !455)
!455 = !{!450}
-@foobar46 = common dso_local global i8* null, align 8, !dbg !460
+@foobar46 = common dso_local global ptr null, align 8, !dbg !460
!460 = !DIGlobalVariableExpression(var: !461, expr: !DIExpression())
!461 = distinct !DIGlobalVariable(name: "foobar46", scope: !462, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!462 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !465)
!465 = !{!460}
-@foobar47 = common dso_local global i8* null, align 8, !dbg !470
+@foobar47 = common dso_local global ptr null, align 8, !dbg !470
!470 = !DIGlobalVariableExpression(var: !471, expr: !DIExpression())
!471 = distinct !DIGlobalVariable(name: "foobar47", scope: !472, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!472 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !475)
!475 = !{!470}
-@foobar48 = common dso_local global i8* null, align 8, !dbg !480
+@foobar48 = common dso_local global ptr null, align 8, !dbg !480
!480 = !DIGlobalVariableExpression(var: !481, expr: !DIExpression())
!481 = distinct !DIGlobalVariable(name: "foobar48", scope: !482, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!482 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !485)
!485 = !{!480}
-@foobar49 = common dso_local global i8* null, align 8, !dbg !490
+@foobar49 = common dso_local global ptr null, align 8, !dbg !490
!490 = !DIGlobalVariableExpression(var: !491, expr: !DIExpression())
!491 = distinct !DIGlobalVariable(name: "foobar49", scope: !492, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!492 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !495)
!495 = !{!490}
-@foobar50 = common dso_local global i8* null, align 8, !dbg !500
+@foobar50 = common dso_local global ptr null, align 8, !dbg !500
!500 = !DIGlobalVariableExpression(var: !501, expr: !DIExpression())
!501 = distinct !DIGlobalVariable(name: "foobar50", scope: !502, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!502 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !505)
!505 = !{!500}
-@foobar51 = common dso_local global i8* null, align 8, !dbg !510
+@foobar51 = common dso_local global ptr null, align 8, !dbg !510
!510 = !DIGlobalVariableExpression(var: !511, expr: !DIExpression())
!511 = distinct !DIGlobalVariable(name: "foobar51", scope: !512, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!512 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !515)
!515 = !{!510}
-@foobar52 = common dso_local global i8* null, align 8, !dbg !520
+@foobar52 = common dso_local global ptr null, align 8, !dbg !520
!520 = !DIGlobalVariableExpression(var: !521, expr: !DIExpression())
!521 = distinct !DIGlobalVariable(name: "foobar52", scope: !522, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!522 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !525)
!525 = !{!520}
-@foobar53 = common dso_local global i8* null, align 8, !dbg !530
+@foobar53 = common dso_local global ptr null, align 8, !dbg !530
!530 = !DIGlobalVariableExpression(var: !531, expr: !DIExpression())
!531 = distinct !DIGlobalVariable(name: "foobar53", scope: !532, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!532 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !535)
!535 = !{!530}
-@foobar54 = common dso_local global i8* null, align 8, !dbg !540
+@foobar54 = common dso_local global ptr null, align 8, !dbg !540
!540 = !DIGlobalVariableExpression(var: !541, expr: !DIExpression())
!541 = distinct !DIGlobalVariable(name: "foobar54", scope: !542, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!542 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !545)
!545 = !{!540}
-@foobar55 = common dso_local global i8* null, align 8, !dbg !550
+@foobar55 = common dso_local global ptr null, align 8, !dbg !550
!550 = !DIGlobalVariableExpression(var: !551, expr: !DIExpression())
!551 = distinct !DIGlobalVariable(name: "foobar55", scope: !552, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!552 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !555)
!555 = !{!550}
-@foobar56 = common dso_local global i8* null, align 8, !dbg !560
+@foobar56 = common dso_local global ptr null, align 8, !dbg !560
!560 = !DIGlobalVariableExpression(var: !561, expr: !DIExpression())
!561 = distinct !DIGlobalVariable(name: "foobar56", scope: !562, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!562 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !565)
!565 = !{!560}
-@foobar57 = common dso_local global i8* null, align 8, !dbg !570
+@foobar57 = common dso_local global ptr null, align 8, !dbg !570
!570 = !DIGlobalVariableExpression(var: !571, expr: !DIExpression())
!571 = distinct !DIGlobalVariable(name: "foobar57", scope: !572, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!572 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !575)
!575 = !{!570}
-@foobar58 = common dso_local global i8* null, align 8, !dbg !580
+@foobar58 = common dso_local global ptr null, align 8, !dbg !580
!580 = !DIGlobalVariableExpression(var: !581, expr: !DIExpression())
!581 = distinct !DIGlobalVariable(name: "foobar58", scope: !582, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!582 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !585)
!585 = !{!580}
-@foobar59 = common dso_local global i8* null, align 8, !dbg !590
+@foobar59 = common dso_local global ptr null, align 8, !dbg !590
!590 = !DIGlobalVariableExpression(var: !591, expr: !DIExpression())
!591 = distinct !DIGlobalVariable(name: "foobar59", scope: !592, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!592 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !595)
!595 = !{!590}
-@foobar60 = common dso_local global i8* null, align 8, !dbg !600
+@foobar60 = common dso_local global ptr null, align 8, !dbg !600
!600 = !DIGlobalVariableExpression(var: !601, expr: !DIExpression())
!601 = distinct !DIGlobalVariable(name: "foobar60", scope: !602, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!602 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !605)
!605 = !{!600}
-@foobar61 = common dso_local global i8* null, align 8, !dbg !610
+@foobar61 = common dso_local global ptr null, align 8, !dbg !610
!610 = !DIGlobalVariableExpression(var: !611, expr: !DIExpression())
!611 = distinct !DIGlobalVariable(name: "foobar61", scope: !612, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!612 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !615)
!615 = !{!610}
-@foobar62 = common dso_local global i8* null, align 8, !dbg !620
+@foobar62 = common dso_local global ptr null, align 8, !dbg !620
!620 = !DIGlobalVariableExpression(var: !621, expr: !DIExpression())
!621 = distinct !DIGlobalVariable(name: "foobar62", scope: !622, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!622 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !625)
!625 = !{!620}
-@foobar63 = common dso_local global i8* null, align 8, !dbg !630
+@foobar63 = common dso_local global ptr null, align 8, !dbg !630
!630 = !DIGlobalVariableExpression(var: !631, expr: !DIExpression())
!631 = distinct !DIGlobalVariable(name: "foobar63", scope: !632, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!632 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !635)
!635 = !{!630}
-@foobar64 = common dso_local global i8* null, align 8, !dbg !640
+@foobar64 = common dso_local global ptr null, align 8, !dbg !640
!640 = !DIGlobalVariableExpression(var: !641, expr: !DIExpression())
!641 = distinct !DIGlobalVariable(name: "foobar64", scope: !642, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!642 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !645)
!645 = !{!640}
-@foobar65 = common dso_local global i8* null, align 8, !dbg !650
+@foobar65 = common dso_local global ptr null, align 8, !dbg !650
!650 = !DIGlobalVariableExpression(var: !651, expr: !DIExpression())
!651 = distinct !DIGlobalVariable(name: "foobar65", scope: !652, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!652 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !655)
!655 = !{!650}
-@foobar66 = common dso_local global i8* null, align 8, !dbg !660
+@foobar66 = common dso_local global ptr null, align 8, !dbg !660
!660 = !DIGlobalVariableExpression(var: !661, expr: !DIExpression())
!661 = distinct !DIGlobalVariable(name: "foobar66", scope: !662, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!662 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !665)
!665 = !{!660}
-@foobar67 = common dso_local global i8* null, align 8, !dbg !670
+@foobar67 = common dso_local global ptr null, align 8, !dbg !670
!670 = !DIGlobalVariableExpression(var: !671, expr: !DIExpression())
!671 = distinct !DIGlobalVariable(name: "foobar67", scope: !672, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!672 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !675)
!675 = !{!670}
-@foobar68 = common dso_local global i8* null, align 8, !dbg !680
+@foobar68 = common dso_local global ptr null, align 8, !dbg !680
!680 = !DIGlobalVariableExpression(var: !681, expr: !DIExpression())
!681 = distinct !DIGlobalVariable(name: "foobar68", scope: !682, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!682 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !685)
!685 = !{!680}
-@foobar69 = common dso_local global i8* null, align 8, !dbg !690
+@foobar69 = common dso_local global ptr null, align 8, !dbg !690
!690 = !DIGlobalVariableExpression(var: !691, expr: !DIExpression())
!691 = distinct !DIGlobalVariable(name: "foobar69", scope: !692, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!692 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !695)
!695 = !{!690}
-@foobar70 = common dso_local global i8* null, align 8, !dbg !700
+@foobar70 = common dso_local global ptr null, align 8, !dbg !700
!700 = !DIGlobalVariableExpression(var: !701, expr: !DIExpression())
!701 = distinct !DIGlobalVariable(name: "foobar70", scope: !702, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!702 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !705)
!705 = !{!700}
-@foobar71 = common dso_local global i8* null, align 8, !dbg !710
+@foobar71 = common dso_local global ptr null, align 8, !dbg !710
!710 = !DIGlobalVariableExpression(var: !711, expr: !DIExpression())
!711 = distinct !DIGlobalVariable(name: "foobar71", scope: !712, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!712 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !715)
!715 = !{!710}
-@foobar72 = common dso_local global i8* null, align 8, !dbg !720
+@foobar72 = common dso_local global ptr null, align 8, !dbg !720
!720 = !DIGlobalVariableExpression(var: !721, expr: !DIExpression())
!721 = distinct !DIGlobalVariable(name: "foobar72", scope: !722, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!722 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !725)
!725 = !{!720}
-@foobar73 = common dso_local global i8* null, align 8, !dbg !730
+@foobar73 = common dso_local global ptr null, align 8, !dbg !730
!730 = !DIGlobalVariableExpression(var: !731, expr: !DIExpression())
!731 = distinct !DIGlobalVariable(name: "foobar73", scope: !732, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!732 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !735)
!735 = !{!730}
-@foobar74 = common dso_local global i8* null, align 8, !dbg !740
+@foobar74 = common dso_local global ptr null, align 8, !dbg !740
!740 = !DIGlobalVariableExpression(var: !741, expr: !DIExpression())
!741 = distinct !DIGlobalVariable(name: "foobar74", scope: !742, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!742 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !745)
!745 = !{!740}
-@foobar75 = common dso_local global i8* null, align 8, !dbg !750
+@foobar75 = common dso_local global ptr null, align 8, !dbg !750
!750 = !DIGlobalVariableExpression(var: !751, expr: !DIExpression())
!751 = distinct !DIGlobalVariable(name: "foobar75", scope: !752, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!752 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !755)
!755 = !{!750}
-@foobar76 = common dso_local global i8* null, align 8, !dbg !760
+@foobar76 = common dso_local global ptr null, align 8, !dbg !760
!760 = !DIGlobalVariableExpression(var: !761, expr: !DIExpression())
!761 = distinct !DIGlobalVariable(name: "foobar76", scope: !762, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!762 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !765)
!765 = !{!760}
-@foobar77 = common dso_local global i8* null, align 8, !dbg !770
+@foobar77 = common dso_local global ptr null, align 8, !dbg !770
!770 = !DIGlobalVariableExpression(var: !771, expr: !DIExpression())
!771 = distinct !DIGlobalVariable(name: "foobar77", scope: !772, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!772 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !775)
!775 = !{!770}
-@foobar78 = common dso_local global i8* null, align 8, !dbg !780
+@foobar78 = common dso_local global ptr null, align 8, !dbg !780
!780 = !DIGlobalVariableExpression(var: !781, expr: !DIExpression())
!781 = distinct !DIGlobalVariable(name: "foobar78", scope: !782, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!782 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !785)
!785 = !{!780}
-@foobar79 = common dso_local global i8* null, align 8, !dbg !790
+@foobar79 = common dso_local global ptr null, align 8, !dbg !790
!790 = !DIGlobalVariableExpression(var: !791, expr: !DIExpression())
!791 = distinct !DIGlobalVariable(name: "foobar79", scope: !792, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!792 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !795)
!795 = !{!790}
-@foobar80 = common dso_local global i8* null, align 8, !dbg !800
+@foobar80 = common dso_local global ptr null, align 8, !dbg !800
!800 = !DIGlobalVariableExpression(var: !801, expr: !DIExpression())
!801 = distinct !DIGlobalVariable(name: "foobar80", scope: !802, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!802 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !805)
!805 = !{!800}
-@foobar81 = common dso_local global i8* null, align 8, !dbg !810
+@foobar81 = common dso_local global ptr null, align 8, !dbg !810
!810 = !DIGlobalVariableExpression(var: !811, expr: !DIExpression())
!811 = distinct !DIGlobalVariable(name: "foobar81", scope: !812, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!812 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !815)
!815 = !{!810}
-@foobar82 = common dso_local global i8* null, align 8, !dbg !820
+@foobar82 = common dso_local global ptr null, align 8, !dbg !820
!820 = !DIGlobalVariableExpression(var: !821, expr: !DIExpression())
!821 = distinct !DIGlobalVariable(name: "foobar82", scope: !822, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!822 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !825)
!825 = !{!820}
-@foobar83 = common dso_local global i8* null, align 8, !dbg !830
+@foobar83 = common dso_local global ptr null, align 8, !dbg !830
!830 = !DIGlobalVariableExpression(var: !831, expr: !DIExpression())
!831 = distinct !DIGlobalVariable(name: "foobar83", scope: !832, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!832 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !835)
!835 = !{!830}
-@foobar84 = common dso_local global i8* null, align 8, !dbg !840
+@foobar84 = common dso_local global ptr null, align 8, !dbg !840
!840 = !DIGlobalVariableExpression(var: !841, expr: !DIExpression())
!841 = distinct !DIGlobalVariable(name: "foobar84", scope: !842, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!842 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !845)
!845 = !{!840}
-@foobar85 = common dso_local global i8* null, align 8, !dbg !850
+@foobar85 = common dso_local global ptr null, align 8, !dbg !850
!850 = !DIGlobalVariableExpression(var: !851, expr: !DIExpression())
!851 = distinct !DIGlobalVariable(name: "foobar85", scope: !852, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!852 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !855)
!855 = !{!850}
-@foobar86 = common dso_local global i8* null, align 8, !dbg !860
+@foobar86 = common dso_local global ptr null, align 8, !dbg !860
!860 = !DIGlobalVariableExpression(var: !861, expr: !DIExpression())
!861 = distinct !DIGlobalVariable(name: "foobar86", scope: !862, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!862 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !865)
!865 = !{!860}
-@foobar87 = common dso_local global i8* null, align 8, !dbg !870
+@foobar87 = common dso_local global ptr null, align 8, !dbg !870
!870 = !DIGlobalVariableExpression(var: !871, expr: !DIExpression())
!871 = distinct !DIGlobalVariable(name: "foobar87", scope: !872, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!872 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !875)
!875 = !{!870}
-@foobar88 = common dso_local global i8* null, align 8, !dbg !880
+@foobar88 = common dso_local global ptr null, align 8, !dbg !880
!880 = !DIGlobalVariableExpression(var: !881, expr: !DIExpression())
!881 = distinct !DIGlobalVariable(name: "foobar88", scope: !882, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!882 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !885)
!885 = !{!880}
-@foobar89 = common dso_local global i8* null, align 8, !dbg !890
+@foobar89 = common dso_local global ptr null, align 8, !dbg !890
!890 = !DIGlobalVariableExpression(var: !891, expr: !DIExpression())
!891 = distinct !DIGlobalVariable(name: "foobar89", scope: !892, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!892 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !895)
!895 = !{!890}
-@foobar90 = common dso_local global i8* null, align 8, !dbg !900
+@foobar90 = common dso_local global ptr null, align 8, !dbg !900
!900 = !DIGlobalVariableExpression(var: !901, expr: !DIExpression())
!901 = distinct !DIGlobalVariable(name: "foobar90", scope: !902, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!902 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !905)
!905 = !{!900}
-@foobar91 = common dso_local global i8* null, align 8, !dbg !910
+@foobar91 = common dso_local global ptr null, align 8, !dbg !910
!910 = !DIGlobalVariableExpression(var: !911, expr: !DIExpression())
!911 = distinct !DIGlobalVariable(name: "foobar91", scope: !912, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!912 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !915)
!915 = !{!910}
-@foobar92 = common dso_local global i8* null, align 8, !dbg !920
+@foobar92 = common dso_local global ptr null, align 8, !dbg !920
!920 = !DIGlobalVariableExpression(var: !921, expr: !DIExpression())
!921 = distinct !DIGlobalVariable(name: "foobar92", scope: !922, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!922 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !925)
!925 = !{!920}
-@foobar93 = common dso_local global i8* null, align 8, !dbg !930
+@foobar93 = common dso_local global ptr null, align 8, !dbg !930
!930 = !DIGlobalVariableExpression(var: !931, expr: !DIExpression())
!931 = distinct !DIGlobalVariable(name: "foobar93", scope: !932, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!932 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !935)
!935 = !{!930}
-@foobar94 = common dso_local global i8* null, align 8, !dbg !940
+@foobar94 = common dso_local global ptr null, align 8, !dbg !940
!940 = !DIGlobalVariableExpression(var: !941, expr: !DIExpression())
!941 = distinct !DIGlobalVariable(name: "foobar94", scope: !942, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!942 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !945)
!945 = !{!940}
-@foobar95 = common dso_local global i8* null, align 8, !dbg !950
+@foobar95 = common dso_local global ptr null, align 8, !dbg !950
!950 = !DIGlobalVariableExpression(var: !951, expr: !DIExpression())
!951 = distinct !DIGlobalVariable(name: "foobar95", scope: !952, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!952 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !955)
!955 = !{!950}
-@foobar96 = common dso_local global i8* null, align 8, !dbg !960
+@foobar96 = common dso_local global ptr null, align 8, !dbg !960
!960 = !DIGlobalVariableExpression(var: !961, expr: !DIExpression())
!961 = distinct !DIGlobalVariable(name: "foobar96", scope: !962, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!962 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !965)
!965 = !{!960}
-@foobar97 = common dso_local global i8* null, align 8, !dbg !970
+@foobar97 = common dso_local global ptr null, align 8, !dbg !970
!970 = !DIGlobalVariableExpression(var: !971, expr: !DIExpression())
!971 = distinct !DIGlobalVariable(name: "foobar97", scope: !972, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!972 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !975)
!975 = !{!970}
-@foobar98 = common dso_local global i8* null, align 8, !dbg !980
+@foobar98 = common dso_local global ptr null, align 8, !dbg !980
!980 = !DIGlobalVariableExpression(var: !981, expr: !DIExpression())
!981 = distinct !DIGlobalVariable(name: "foobar98", scope: !982, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!982 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !985)
!985 = !{!980}
-@foobar99 = common dso_local global i8* null, align 8, !dbg !990
+@foobar99 = common dso_local global ptr null, align 8, !dbg !990
!990 = !DIGlobalVariableExpression(var: !991, expr: !DIExpression())
!991 = distinct !DIGlobalVariable(name: "foobar99", scope: !992, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!992 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !995)
!995 = !{!990}
-@foobar100 = common dso_local global i8* null, align 8, !dbg !1000
+@foobar100 = common dso_local global ptr null, align 8, !dbg !1000
!1000 = !DIGlobalVariableExpression(var: !1001, expr: !DIExpression())
!1001 = distinct !DIGlobalVariable(name: "foobar100", scope: !1002, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1002 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1005)
!1005 = !{!1000}
-@foobar101 = common dso_local global i8* null, align 8, !dbg !1010
+@foobar101 = common dso_local global ptr null, align 8, !dbg !1010
!1010 = !DIGlobalVariableExpression(var: !1011, expr: !DIExpression())
!1011 = distinct !DIGlobalVariable(name: "foobar101", scope: !1012, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1012 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1015)
!1015 = !{!1010}
-@foobar102 = common dso_local global i8* null, align 8, !dbg !1020
+@foobar102 = common dso_local global ptr null, align 8, !dbg !1020
!1020 = !DIGlobalVariableExpression(var: !1021, expr: !DIExpression())
!1021 = distinct !DIGlobalVariable(name: "foobar102", scope: !1022, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1022 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1025)
!1025 = !{!1020}
-@foobar103 = common dso_local global i8* null, align 8, !dbg !1030
+@foobar103 = common dso_local global ptr null, align 8, !dbg !1030
!1030 = !DIGlobalVariableExpression(var: !1031, expr: !DIExpression())
!1031 = distinct !DIGlobalVariable(name: "foobar103", scope: !1032, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1032 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1035)
!1035 = !{!1030}
-@foobar104 = common dso_local global i8* null, align 8, !dbg !1040
+@foobar104 = common dso_local global ptr null, align 8, !dbg !1040
!1040 = !DIGlobalVariableExpression(var: !1041, expr: !DIExpression())
!1041 = distinct !DIGlobalVariable(name: "foobar104", scope: !1042, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1042 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1045)
!1045 = !{!1040}
-@foobar105 = common dso_local global i8* null, align 8, !dbg !1050
+@foobar105 = common dso_local global ptr null, align 8, !dbg !1050
!1050 = !DIGlobalVariableExpression(var: !1051, expr: !DIExpression())
!1051 = distinct !DIGlobalVariable(name: "foobar105", scope: !1052, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1052 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1055)
!1055 = !{!1050}
-@foobar106 = common dso_local global i8* null, align 8, !dbg !1060
+@foobar106 = common dso_local global ptr null, align 8, !dbg !1060
!1060 = !DIGlobalVariableExpression(var: !1061, expr: !DIExpression())
!1061 = distinct !DIGlobalVariable(name: "foobar106", scope: !1062, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1062 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1065)
!1065 = !{!1060}
-@foobar107 = common dso_local global i8* null, align 8, !dbg !1070
+@foobar107 = common dso_local global ptr null, align 8, !dbg !1070
!1070 = !DIGlobalVariableExpression(var: !1071, expr: !DIExpression())
!1071 = distinct !DIGlobalVariable(name: "foobar107", scope: !1072, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1072 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1075)
!1075 = !{!1070}
-@foobar108 = common dso_local global i8* null, align 8, !dbg !1080
+@foobar108 = common dso_local global ptr null, align 8, !dbg !1080
!1080 = !DIGlobalVariableExpression(var: !1081, expr: !DIExpression())
!1081 = distinct !DIGlobalVariable(name: "foobar108", scope: !1082, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1082 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1085)
!1085 = !{!1080}
-@foobar109 = common dso_local global i8* null, align 8, !dbg !1090
+@foobar109 = common dso_local global ptr null, align 8, !dbg !1090
!1090 = !DIGlobalVariableExpression(var: !1091, expr: !DIExpression())
!1091 = distinct !DIGlobalVariable(name: "foobar109", scope: !1092, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1092 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1095)
!1095 = !{!1090}
-@foobar110 = common dso_local global i8* null, align 8, !dbg !1100
+@foobar110 = common dso_local global ptr null, align 8, !dbg !1100
!1100 = !DIGlobalVariableExpression(var: !1101, expr: !DIExpression())
!1101 = distinct !DIGlobalVariable(name: "foobar110", scope: !1102, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1102 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1105)
!1105 = !{!1100}
-@foobar111 = common dso_local global i8* null, align 8, !dbg !1110
+@foobar111 = common dso_local global ptr null, align 8, !dbg !1110
!1110 = !DIGlobalVariableExpression(var: !1111, expr: !DIExpression())
!1111 = distinct !DIGlobalVariable(name: "foobar111", scope: !1112, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1112 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1115)
!1115 = !{!1110}
-@foobar112 = common dso_local global i8* null, align 8, !dbg !1120
+@foobar112 = common dso_local global ptr null, align 8, !dbg !1120
!1120 = !DIGlobalVariableExpression(var: !1121, expr: !DIExpression())
!1121 = distinct !DIGlobalVariable(name: "foobar112", scope: !1122, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1122 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1125)
!1125 = !{!1120}
-@foobar113 = common dso_local global i8* null, align 8, !dbg !1130
+@foobar113 = common dso_local global ptr null, align 8, !dbg !1130
!1130 = !DIGlobalVariableExpression(var: !1131, expr: !DIExpression())
!1131 = distinct !DIGlobalVariable(name: "foobar113", scope: !1132, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1132 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1135)
!1135 = !{!1130}
-@foobar114 = common dso_local global i8* null, align 8, !dbg !1140
+@foobar114 = common dso_local global ptr null, align 8, !dbg !1140
!1140 = !DIGlobalVariableExpression(var: !1141, expr: !DIExpression())
!1141 = distinct !DIGlobalVariable(name: "foobar114", scope: !1142, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1142 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1145)
!1145 = !{!1140}
-@foobar115 = common dso_local global i8* null, align 8, !dbg !1150
+@foobar115 = common dso_local global ptr null, align 8, !dbg !1150
!1150 = !DIGlobalVariableExpression(var: !1151, expr: !DIExpression())
!1151 = distinct !DIGlobalVariable(name: "foobar115", scope: !1152, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1152 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1155)
!1155 = !{!1150}
-@foobar116 = common dso_local global i8* null, align 8, !dbg !1160
+@foobar116 = common dso_local global ptr null, align 8, !dbg !1160
!1160 = !DIGlobalVariableExpression(var: !1161, expr: !DIExpression())
!1161 = distinct !DIGlobalVariable(name: "foobar116", scope: !1162, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1162 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1165)
!1165 = !{!1160}
-@foobar117 = common dso_local global i8* null, align 8, !dbg !1170
+@foobar117 = common dso_local global ptr null, align 8, !dbg !1170
!1170 = !DIGlobalVariableExpression(var: !1171, expr: !DIExpression())
!1171 = distinct !DIGlobalVariable(name: "foobar117", scope: !1172, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1172 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1175)
!1175 = !{!1170}
-@foobar118 = common dso_local global i8* null, align 8, !dbg !1180
+@foobar118 = common dso_local global ptr null, align 8, !dbg !1180
!1180 = !DIGlobalVariableExpression(var: !1181, expr: !DIExpression())
!1181 = distinct !DIGlobalVariable(name: "foobar118", scope: !1182, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1182 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1185)
!1185 = !{!1180}
-@foobar119 = common dso_local global i8* null, align 8, !dbg !1190
+@foobar119 = common dso_local global ptr null, align 8, !dbg !1190
!1190 = !DIGlobalVariableExpression(var: !1191, expr: !DIExpression())
!1191 = distinct !DIGlobalVariable(name: "foobar119", scope: !1192, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1192 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1195)
!1195 = !{!1190}
-@foobar120 = common dso_local global i8* null, align 8, !dbg !1200
+@foobar120 = common dso_local global ptr null, align 8, !dbg !1200
!1200 = !DIGlobalVariableExpression(var: !1201, expr: !DIExpression())
!1201 = distinct !DIGlobalVariable(name: "foobar120", scope: !1202, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1202 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1205)
!1205 = !{!1200}
-@foobar121 = common dso_local global i8* null, align 8, !dbg !1210
+@foobar121 = common dso_local global ptr null, align 8, !dbg !1210
!1210 = !DIGlobalVariableExpression(var: !1211, expr: !DIExpression())
!1211 = distinct !DIGlobalVariable(name: "foobar121", scope: !1212, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1212 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1215)
!1215 = !{!1210}
-@foobar122 = common dso_local global i8* null, align 8, !dbg !1220
+@foobar122 = common dso_local global ptr null, align 8, !dbg !1220
!1220 = !DIGlobalVariableExpression(var: !1221, expr: !DIExpression())
!1221 = distinct !DIGlobalVariable(name: "foobar122", scope: !1222, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1222 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1225)
!1225 = !{!1220}
-@foobar123 = common dso_local global i8* null, align 8, !dbg !1230
+@foobar123 = common dso_local global ptr null, align 8, !dbg !1230
!1230 = !DIGlobalVariableExpression(var: !1231, expr: !DIExpression())
!1231 = distinct !DIGlobalVariable(name: "foobar123", scope: !1232, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1232 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1235)
!1235 = !{!1230}
-@foobar124 = common dso_local global i8* null, align 8, !dbg !1240
+@foobar124 = common dso_local global ptr null, align 8, !dbg !1240
!1240 = !DIGlobalVariableExpression(var: !1241, expr: !DIExpression())
!1241 = distinct !DIGlobalVariable(name: "foobar124", scope: !1242, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1242 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1245)
!1245 = !{!1240}
-@foobar125 = common dso_local global i8* null, align 8, !dbg !1250
+@foobar125 = common dso_local global ptr null, align 8, !dbg !1250
!1250 = !DIGlobalVariableExpression(var: !1251, expr: !DIExpression())
!1251 = distinct !DIGlobalVariable(name: "foobar125", scope: !1252, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1252 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1255)
!1255 = !{!1250}
-@foobar126 = common dso_local global i8* null, align 8, !dbg !1260
+@foobar126 = common dso_local global ptr null, align 8, !dbg !1260
!1260 = !DIGlobalVariableExpression(var: !1261, expr: !DIExpression())
!1261 = distinct !DIGlobalVariable(name: "foobar126", scope: !1262, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1262 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1265)
!1265 = !{!1260}
-@foobar127 = common dso_local global i8* null, align 8, !dbg !1270
+@foobar127 = common dso_local global ptr null, align 8, !dbg !1270
!1270 = !DIGlobalVariableExpression(var: !1271, expr: !DIExpression())
!1271 = distinct !DIGlobalVariable(name: "foobar127", scope: !1272, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1272 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1275)
!1275 = !{!1270}
-@foobar128 = common dso_local global i8* null, align 8, !dbg !1280
+@foobar128 = common dso_local global ptr null, align 8, !dbg !1280
!1280 = !DIGlobalVariableExpression(var: !1281, expr: !DIExpression())
!1281 = distinct !DIGlobalVariable(name: "foobar128", scope: !1282, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1282 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1285)
!1285 = !{!1280}
-@foobar129 = common dso_local global i8* null, align 8, !dbg !1290
+@foobar129 = common dso_local global ptr null, align 8, !dbg !1290
!1290 = !DIGlobalVariableExpression(var: !1291, expr: !DIExpression())
!1291 = distinct !DIGlobalVariable(name: "foobar129", scope: !1292, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1292 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1295)
!1295 = !{!1290}
-@foobar130 = common dso_local global i8* null, align 8, !dbg !1300
+@foobar130 = common dso_local global ptr null, align 8, !dbg !1300
!1300 = !DIGlobalVariableExpression(var: !1301, expr: !DIExpression())
!1301 = distinct !DIGlobalVariable(name: "foobar130", scope: !1302, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1302 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1305)
!1305 = !{!1300}
-@foobar131 = common dso_local global i8* null, align 8, !dbg !1310
+@foobar131 = common dso_local global ptr null, align 8, !dbg !1310
!1310 = !DIGlobalVariableExpression(var: !1311, expr: !DIExpression())
!1311 = distinct !DIGlobalVariable(name: "foobar131", scope: !1312, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1312 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1315)
!1315 = !{!1310}
-@foobar132 = common dso_local global i8* null, align 8, !dbg !1320
+@foobar132 = common dso_local global ptr null, align 8, !dbg !1320
!1320 = !DIGlobalVariableExpression(var: !1321, expr: !DIExpression())
!1321 = distinct !DIGlobalVariable(name: "foobar132", scope: !1322, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1322 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1325)
!1325 = !{!1320}
-@foobar133 = common dso_local global i8* null, align 8, !dbg !1330
+@foobar133 = common dso_local global ptr null, align 8, !dbg !1330
!1330 = !DIGlobalVariableExpression(var: !1331, expr: !DIExpression())
!1331 = distinct !DIGlobalVariable(name: "foobar133", scope: !1332, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1332 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1335)
!1335 = !{!1330}
-@foobar134 = common dso_local global i8* null, align 8, !dbg !1340
+@foobar134 = common dso_local global ptr null, align 8, !dbg !1340
!1340 = !DIGlobalVariableExpression(var: !1341, expr: !DIExpression())
!1341 = distinct !DIGlobalVariable(name: "foobar134", scope: !1342, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1342 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1345)
!1345 = !{!1340}
-@foobar135 = common dso_local global i8* null, align 8, !dbg !1350
+@foobar135 = common dso_local global ptr null, align 8, !dbg !1350
!1350 = !DIGlobalVariableExpression(var: !1351, expr: !DIExpression())
!1351 = distinct !DIGlobalVariable(name: "foobar135", scope: !1352, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1352 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1355)
!1355 = !{!1350}
-@foobar136 = common dso_local global i8* null, align 8, !dbg !1360
+@foobar136 = common dso_local global ptr null, align 8, !dbg !1360
!1360 = !DIGlobalVariableExpression(var: !1361, expr: !DIExpression())
!1361 = distinct !DIGlobalVariable(name: "foobar136", scope: !1362, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1362 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1365)
!1365 = !{!1360}
-@foobar137 = common dso_local global i8* null, align 8, !dbg !1370
+@foobar137 = common dso_local global ptr null, align 8, !dbg !1370
!1370 = !DIGlobalVariableExpression(var: !1371, expr: !DIExpression())
!1371 = distinct !DIGlobalVariable(name: "foobar137", scope: !1372, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1372 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1375)
!1375 = !{!1370}
-@foobar138 = common dso_local global i8* null, align 8, !dbg !1380
+@foobar138 = common dso_local global ptr null, align 8, !dbg !1380
!1380 = !DIGlobalVariableExpression(var: !1381, expr: !DIExpression())
!1381 = distinct !DIGlobalVariable(name: "foobar138", scope: !1382, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1382 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1385)
!1385 = !{!1380}
-@foobar139 = common dso_local global i8* null, align 8, !dbg !1390
+@foobar139 = common dso_local global ptr null, align 8, !dbg !1390
!1390 = !DIGlobalVariableExpression(var: !1391, expr: !DIExpression())
!1391 = distinct !DIGlobalVariable(name: "foobar139", scope: !1392, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1392 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1395)
!1395 = !{!1390}
-@foobar140 = common dso_local global i8* null, align 8, !dbg !1400
+@foobar140 = common dso_local global ptr null, align 8, !dbg !1400
!1400 = !DIGlobalVariableExpression(var: !1401, expr: !DIExpression())
!1401 = distinct !DIGlobalVariable(name: "foobar140", scope: !1402, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1402 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1405)
!1405 = !{!1400}
-@foobar141 = common dso_local global i8* null, align 8, !dbg !1410
+@foobar141 = common dso_local global ptr null, align 8, !dbg !1410
!1410 = !DIGlobalVariableExpression(var: !1411, expr: !DIExpression())
!1411 = distinct !DIGlobalVariable(name: "foobar141", scope: !1412, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1412 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1415)
!1415 = !{!1410}
-@foobar142 = common dso_local global i8* null, align 8, !dbg !1420
+@foobar142 = common dso_local global ptr null, align 8, !dbg !1420
!1420 = !DIGlobalVariableExpression(var: !1421, expr: !DIExpression())
!1421 = distinct !DIGlobalVariable(name: "foobar142", scope: !1422, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1422 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1425)
!1425 = !{!1420}
-@foobar143 = common dso_local global i8* null, align 8, !dbg !1430
+@foobar143 = common dso_local global ptr null, align 8, !dbg !1430
!1430 = !DIGlobalVariableExpression(var: !1431, expr: !DIExpression())
!1431 = distinct !DIGlobalVariable(name: "foobar143", scope: !1432, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1432 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1435)
!1435 = !{!1430}
-@foobar144 = common dso_local global i8* null, align 8, !dbg !1440
+@foobar144 = common dso_local global ptr null, align 8, !dbg !1440
!1440 = !DIGlobalVariableExpression(var: !1441, expr: !DIExpression())
!1441 = distinct !DIGlobalVariable(name: "foobar144", scope: !1442, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1442 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1445)
!1445 = !{!1440}
-@foobar145 = common dso_local global i8* null, align 8, !dbg !1450
+@foobar145 = common dso_local global ptr null, align 8, !dbg !1450
!1450 = !DIGlobalVariableExpression(var: !1451, expr: !DIExpression())
!1451 = distinct !DIGlobalVariable(name: "foobar145", scope: !1452, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1452 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1455)
!1455 = !{!1450}
-@foobar146 = common dso_local global i8* null, align 8, !dbg !1460
+@foobar146 = common dso_local global ptr null, align 8, !dbg !1460
!1460 = !DIGlobalVariableExpression(var: !1461, expr: !DIExpression())
!1461 = distinct !DIGlobalVariable(name: "foobar146", scope: !1462, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1462 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1465)
!1465 = !{!1460}
-@foobar147 = common dso_local global i8* null, align 8, !dbg !1470
+@foobar147 = common dso_local global ptr null, align 8, !dbg !1470
!1470 = !DIGlobalVariableExpression(var: !1471, expr: !DIExpression())
!1471 = distinct !DIGlobalVariable(name: "foobar147", scope: !1472, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1472 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1475)
!1475 = !{!1470}
-@foobar148 = common dso_local global i8* null, align 8, !dbg !1480
+@foobar148 = common dso_local global ptr null, align 8, !dbg !1480
!1480 = !DIGlobalVariableExpression(var: !1481, expr: !DIExpression())
!1481 = distinct !DIGlobalVariable(name: "foobar148", scope: !1482, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1482 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1485)
!1485 = !{!1480}
-@foobar149 = common dso_local global i8* null, align 8, !dbg !1490
+@foobar149 = common dso_local global ptr null, align 8, !dbg !1490
!1490 = !DIGlobalVariableExpression(var: !1491, expr: !DIExpression())
!1491 = distinct !DIGlobalVariable(name: "foobar149", scope: !1492, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1492 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1495)
!1495 = !{!1490}
-@foobar150 = common dso_local global i8* null, align 8, !dbg !1500
+@foobar150 = common dso_local global ptr null, align 8, !dbg !1500
!1500 = !DIGlobalVariableExpression(var: !1501, expr: !DIExpression())
!1501 = distinct !DIGlobalVariable(name: "foobar150", scope: !1502, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1502 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1505)
!1505 = !{!1500}
-@foobar151 = common dso_local global i8* null, align 8, !dbg !1510
+@foobar151 = common dso_local global ptr null, align 8, !dbg !1510
!1510 = !DIGlobalVariableExpression(var: !1511, expr: !DIExpression())
!1511 = distinct !DIGlobalVariable(name: "foobar151", scope: !1512, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1512 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1515)
!1515 = !{!1510}
-@foobar152 = common dso_local global i8* null, align 8, !dbg !1520
+@foobar152 = common dso_local global ptr null, align 8, !dbg !1520
!1520 = !DIGlobalVariableExpression(var: !1521, expr: !DIExpression())
!1521 = distinct !DIGlobalVariable(name: "foobar152", scope: !1522, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1522 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1525)
!1525 = !{!1520}
-@foobar153 = common dso_local global i8* null, align 8, !dbg !1530
+@foobar153 = common dso_local global ptr null, align 8, !dbg !1530
!1530 = !DIGlobalVariableExpression(var: !1531, expr: !DIExpression())
!1531 = distinct !DIGlobalVariable(name: "foobar153", scope: !1532, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1532 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1535)
!1535 = !{!1530}
-@foobar154 = common dso_local global i8* null, align 8, !dbg !1540
+@foobar154 = common dso_local global ptr null, align 8, !dbg !1540
!1540 = !DIGlobalVariableExpression(var: !1541, expr: !DIExpression())
!1541 = distinct !DIGlobalVariable(name: "foobar154", scope: !1542, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1542 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1545)
!1545 = !{!1540}
-@foobar155 = common dso_local global i8* null, align 8, !dbg !1550
+@foobar155 = common dso_local global ptr null, align 8, !dbg !1550
!1550 = !DIGlobalVariableExpression(var: !1551, expr: !DIExpression())
!1551 = distinct !DIGlobalVariable(name: "foobar155", scope: !1552, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1552 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1555)
!1555 = !{!1550}
-@foobar156 = common dso_local global i8* null, align 8, !dbg !1560
+@foobar156 = common dso_local global ptr null, align 8, !dbg !1560
!1560 = !DIGlobalVariableExpression(var: !1561, expr: !DIExpression())
!1561 = distinct !DIGlobalVariable(name: "foobar156", scope: !1562, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1562 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1565)
!1565 = !{!1560}
-@foobar157 = common dso_local global i8* null, align 8, !dbg !1570
+@foobar157 = common dso_local global ptr null, align 8, !dbg !1570
!1570 = !DIGlobalVariableExpression(var: !1571, expr: !DIExpression())
!1571 = distinct !DIGlobalVariable(name: "foobar157", scope: !1572, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1572 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1575)
!1575 = !{!1570}
-@foobar158 = common dso_local global i8* null, align 8, !dbg !1580
+@foobar158 = common dso_local global ptr null, align 8, !dbg !1580
!1580 = !DIGlobalVariableExpression(var: !1581, expr: !DIExpression())
!1581 = distinct !DIGlobalVariable(name: "foobar158", scope: !1582, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1582 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1585)
!1585 = !{!1580}
-@foobar159 = common dso_local global i8* null, align 8, !dbg !1590
+@foobar159 = common dso_local global ptr null, align 8, !dbg !1590
!1590 = !DIGlobalVariableExpression(var: !1591, expr: !DIExpression())
!1591 = distinct !DIGlobalVariable(name: "foobar159", scope: !1592, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1592 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1595)
!1595 = !{!1590}
-@foobar160 = common dso_local global i8* null, align 8, !dbg !1600
+@foobar160 = common dso_local global ptr null, align 8, !dbg !1600
!1600 = !DIGlobalVariableExpression(var: !1601, expr: !DIExpression())
!1601 = distinct !DIGlobalVariable(name: "foobar160", scope: !1602, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1602 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1605)
!1605 = !{!1600}
-@foobar161 = common dso_local global i8* null, align 8, !dbg !1610
+@foobar161 = common dso_local global ptr null, align 8, !dbg !1610
!1610 = !DIGlobalVariableExpression(var: !1611, expr: !DIExpression())
!1611 = distinct !DIGlobalVariable(name: "foobar161", scope: !1612, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1612 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1615)
!1615 = !{!1610}
-@foobar162 = common dso_local global i8* null, align 8, !dbg !1620
+@foobar162 = common dso_local global ptr null, align 8, !dbg !1620
!1620 = !DIGlobalVariableExpression(var: !1621, expr: !DIExpression())
!1621 = distinct !DIGlobalVariable(name: "foobar162", scope: !1622, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1622 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1625)
!1625 = !{!1620}
-@foobar163 = common dso_local global i8* null, align 8, !dbg !1630
+@foobar163 = common dso_local global ptr null, align 8, !dbg !1630
!1630 = !DIGlobalVariableExpression(var: !1631, expr: !DIExpression())
!1631 = distinct !DIGlobalVariable(name: "foobar163", scope: !1632, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1632 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1635)
!1635 = !{!1630}
-@foobar164 = common dso_local global i8* null, align 8, !dbg !1640
+@foobar164 = common dso_local global ptr null, align 8, !dbg !1640
!1640 = !DIGlobalVariableExpression(var: !1641, expr: !DIExpression())
!1641 = distinct !DIGlobalVariable(name: "foobar164", scope: !1642, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1642 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1645)
!1645 = !{!1640}
-@foobar165 = common dso_local global i8* null, align 8, !dbg !1650
+@foobar165 = common dso_local global ptr null, align 8, !dbg !1650
!1650 = !DIGlobalVariableExpression(var: !1651, expr: !DIExpression())
!1651 = distinct !DIGlobalVariable(name: "foobar165", scope: !1652, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1652 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1655)
!1655 = !{!1650}
-@foobar166 = common dso_local global i8* null, align 8, !dbg !1660
+@foobar166 = common dso_local global ptr null, align 8, !dbg !1660
!1660 = !DIGlobalVariableExpression(var: !1661, expr: !DIExpression())
!1661 = distinct !DIGlobalVariable(name: "foobar166", scope: !1662, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1662 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1665)
!1665 = !{!1660}
-@foobar167 = common dso_local global i8* null, align 8, !dbg !1670
+@foobar167 = common dso_local global ptr null, align 8, !dbg !1670
!1670 = !DIGlobalVariableExpression(var: !1671, expr: !DIExpression())
!1671 = distinct !DIGlobalVariable(name: "foobar167", scope: !1672, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1672 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1675)
!1675 = !{!1670}
-@foobar168 = common dso_local global i8* null, align 8, !dbg !1680
+@foobar168 = common dso_local global ptr null, align 8, !dbg !1680
!1680 = !DIGlobalVariableExpression(var: !1681, expr: !DIExpression())
!1681 = distinct !DIGlobalVariable(name: "foobar168", scope: !1682, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1682 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1685)
!1685 = !{!1680}
-@foobar169 = common dso_local global i8* null, align 8, !dbg !1690
+@foobar169 = common dso_local global ptr null, align 8, !dbg !1690
!1690 = !DIGlobalVariableExpression(var: !1691, expr: !DIExpression())
!1691 = distinct !DIGlobalVariable(name: "foobar169", scope: !1692, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1692 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1695)
!1695 = !{!1690}
-@foobar170 = common dso_local global i8* null, align 8, !dbg !1700
+@foobar170 = common dso_local global ptr null, align 8, !dbg !1700
!1700 = !DIGlobalVariableExpression(var: !1701, expr: !DIExpression())
!1701 = distinct !DIGlobalVariable(name: "foobar170", scope: !1702, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1702 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1705)
!1705 = !{!1700}
-@foobar171 = common dso_local global i8* null, align 8, !dbg !1710
+@foobar171 = common dso_local global ptr null, align 8, !dbg !1710
!1710 = !DIGlobalVariableExpression(var: !1711, expr: !DIExpression())
!1711 = distinct !DIGlobalVariable(name: "foobar171", scope: !1712, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1712 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1715)
!1715 = !{!1710}
-@foobar172 = common dso_local global i8* null, align 8, !dbg !1720
+@foobar172 = common dso_local global ptr null, align 8, !dbg !1720
!1720 = !DIGlobalVariableExpression(var: !1721, expr: !DIExpression())
!1721 = distinct !DIGlobalVariable(name: "foobar172", scope: !1722, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1722 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1725)
!1725 = !{!1720}
-@foobar173 = common dso_local global i8* null, align 8, !dbg !1730
+@foobar173 = common dso_local global ptr null, align 8, !dbg !1730
!1730 = !DIGlobalVariableExpression(var: !1731, expr: !DIExpression())
!1731 = distinct !DIGlobalVariable(name: "foobar173", scope: !1732, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1732 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1735)
!1735 = !{!1730}
-@foobar174 = common dso_local global i8* null, align 8, !dbg !1740
+@foobar174 = common dso_local global ptr null, align 8, !dbg !1740
!1740 = !DIGlobalVariableExpression(var: !1741, expr: !DIExpression())
!1741 = distinct !DIGlobalVariable(name: "foobar174", scope: !1742, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1742 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1745)
!1745 = !{!1740}
-@foobar175 = common dso_local global i8* null, align 8, !dbg !1750
+@foobar175 = common dso_local global ptr null, align 8, !dbg !1750
!1750 = !DIGlobalVariableExpression(var: !1751, expr: !DIExpression())
!1751 = distinct !DIGlobalVariable(name: "foobar175", scope: !1752, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1752 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1755)
!1755 = !{!1750}
-@foobar176 = common dso_local global i8* null, align 8, !dbg !1760
+@foobar176 = common dso_local global ptr null, align 8, !dbg !1760
!1760 = !DIGlobalVariableExpression(var: !1761, expr: !DIExpression())
!1761 = distinct !DIGlobalVariable(name: "foobar176", scope: !1762, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1762 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1765)
!1765 = !{!1760}
-@foobar177 = common dso_local global i8* null, align 8, !dbg !1770
+@foobar177 = common dso_local global ptr null, align 8, !dbg !1770
!1770 = !DIGlobalVariableExpression(var: !1771, expr: !DIExpression())
!1771 = distinct !DIGlobalVariable(name: "foobar177", scope: !1772, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1772 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1775)
!1775 = !{!1770}
-@foobar178 = common dso_local global i8* null, align 8, !dbg !1780
+@foobar178 = common dso_local global ptr null, align 8, !dbg !1780
!1780 = !DIGlobalVariableExpression(var: !1781, expr: !DIExpression())
!1781 = distinct !DIGlobalVariable(name: "foobar178", scope: !1782, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1782 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1785)
!1785 = !{!1780}
-@foobar179 = common dso_local global i8* null, align 8, !dbg !1790
+@foobar179 = common dso_local global ptr null, align 8, !dbg !1790
!1790 = !DIGlobalVariableExpression(var: !1791, expr: !DIExpression())
!1791 = distinct !DIGlobalVariable(name: "foobar179", scope: !1792, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1792 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1795)
!1795 = !{!1790}
-@foobar180 = common dso_local global i8* null, align 8, !dbg !1800
+@foobar180 = common dso_local global ptr null, align 8, !dbg !1800
!1800 = !DIGlobalVariableExpression(var: !1801, expr: !DIExpression())
!1801 = distinct !DIGlobalVariable(name: "foobar180", scope: !1802, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1802 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1805)
!1805 = !{!1800}
-@foobar181 = common dso_local global i8* null, align 8, !dbg !1810
+@foobar181 = common dso_local global ptr null, align 8, !dbg !1810
!1810 = !DIGlobalVariableExpression(var: !1811, expr: !DIExpression())
!1811 = distinct !DIGlobalVariable(name: "foobar181", scope: !1812, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1812 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1815)
!1815 = !{!1810}
-@foobar182 = common dso_local global i8* null, align 8, !dbg !1820
+@foobar182 = common dso_local global ptr null, align 8, !dbg !1820
!1820 = !DIGlobalVariableExpression(var: !1821, expr: !DIExpression())
!1821 = distinct !DIGlobalVariable(name: "foobar182", scope: !1822, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1822 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1825)
!1825 = !{!1820}
-@foobar183 = common dso_local global i8* null, align 8, !dbg !1830
+@foobar183 = common dso_local global ptr null, align 8, !dbg !1830
!1830 = !DIGlobalVariableExpression(var: !1831, expr: !DIExpression())
!1831 = distinct !DIGlobalVariable(name: "foobar183", scope: !1832, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1832 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1835)
!1835 = !{!1830}
-@foobar184 = common dso_local global i8* null, align 8, !dbg !1840
+@foobar184 = common dso_local global ptr null, align 8, !dbg !1840
!1840 = !DIGlobalVariableExpression(var: !1841, expr: !DIExpression())
!1841 = distinct !DIGlobalVariable(name: "foobar184", scope: !1842, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1842 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1845)
!1845 = !{!1840}
-@foobar185 = common dso_local global i8* null, align 8, !dbg !1850
+@foobar185 = common dso_local global ptr null, align 8, !dbg !1850
!1850 = !DIGlobalVariableExpression(var: !1851, expr: !DIExpression())
!1851 = distinct !DIGlobalVariable(name: "foobar185", scope: !1852, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1852 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1855)
!1855 = !{!1850}
-@foobar186 = common dso_local global i8* null, align 8, !dbg !1860
+@foobar186 = common dso_local global ptr null, align 8, !dbg !1860
!1860 = !DIGlobalVariableExpression(var: !1861, expr: !DIExpression())
!1861 = distinct !DIGlobalVariable(name: "foobar186", scope: !1862, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1862 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1865)
!1865 = !{!1860}
-@foobar187 = common dso_local global i8* null, align 8, !dbg !1870
+@foobar187 = common dso_local global ptr null, align 8, !dbg !1870
!1870 = !DIGlobalVariableExpression(var: !1871, expr: !DIExpression())
!1871 = distinct !DIGlobalVariable(name: "foobar187", scope: !1872, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1872 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1875)
!1875 = !{!1870}
-@foobar188 = common dso_local global i8* null, align 8, !dbg !1880
+@foobar188 = common dso_local global ptr null, align 8, !dbg !1880
!1880 = !DIGlobalVariableExpression(var: !1881, expr: !DIExpression())
!1881 = distinct !DIGlobalVariable(name: "foobar188", scope: !1882, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1882 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1885)
!1885 = !{!1880}
-@foobar189 = common dso_local global i8* null, align 8, !dbg !1890
+@foobar189 = common dso_local global ptr null, align 8, !dbg !1890
!1890 = !DIGlobalVariableExpression(var: !1891, expr: !DIExpression())
!1891 = distinct !DIGlobalVariable(name: "foobar189", scope: !1892, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1892 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1895)
!1895 = !{!1890}
-@foobar190 = common dso_local global i8* null, align 8, !dbg !1900
+@foobar190 = common dso_local global ptr null, align 8, !dbg !1900
!1900 = !DIGlobalVariableExpression(var: !1901, expr: !DIExpression())
!1901 = distinct !DIGlobalVariable(name: "foobar190", scope: !1902, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1902 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1905)
!1905 = !{!1900}
-@foobar191 = common dso_local global i8* null, align 8, !dbg !1910
+@foobar191 = common dso_local global ptr null, align 8, !dbg !1910
!1910 = !DIGlobalVariableExpression(var: !1911, expr: !DIExpression())
!1911 = distinct !DIGlobalVariable(name: "foobar191", scope: !1912, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1912 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1915)
!1915 = !{!1910}
-@foobar192 = common dso_local global i8* null, align 8, !dbg !1920
+@foobar192 = common dso_local global ptr null, align 8, !dbg !1920
!1920 = !DIGlobalVariableExpression(var: !1921, expr: !DIExpression())
!1921 = distinct !DIGlobalVariable(name: "foobar192", scope: !1922, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1922 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1925)
!1925 = !{!1920}
-@foobar193 = common dso_local global i8* null, align 8, !dbg !1930
+@foobar193 = common dso_local global ptr null, align 8, !dbg !1930
!1930 = !DIGlobalVariableExpression(var: !1931, expr: !DIExpression())
!1931 = distinct !DIGlobalVariable(name: "foobar193", scope: !1932, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1932 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1935)
!1935 = !{!1930}
-@foobar194 = common dso_local global i8* null, align 8, !dbg !1940
+@foobar194 = common dso_local global ptr null, align 8, !dbg !1940
!1940 = !DIGlobalVariableExpression(var: !1941, expr: !DIExpression())
!1941 = distinct !DIGlobalVariable(name: "foobar194", scope: !1942, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1942 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1945)
!1945 = !{!1940}
-@foobar195 = common dso_local global i8* null, align 8, !dbg !1950
+@foobar195 = common dso_local global ptr null, align 8, !dbg !1950
!1950 = !DIGlobalVariableExpression(var: !1951, expr: !DIExpression())
!1951 = distinct !DIGlobalVariable(name: "foobar195", scope: !1952, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1952 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1955)
!1955 = !{!1950}
-@foobar196 = common dso_local global i8* null, align 8, !dbg !1960
+@foobar196 = common dso_local global ptr null, align 8, !dbg !1960
!1960 = !DIGlobalVariableExpression(var: !1961, expr: !DIExpression())
!1961 = distinct !DIGlobalVariable(name: "foobar196", scope: !1962, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1962 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1965)
!1965 = !{!1960}
-@foobar197 = common dso_local global i8* null, align 8, !dbg !1970
+@foobar197 = common dso_local global ptr null, align 8, !dbg !1970
!1970 = !DIGlobalVariableExpression(var: !1971, expr: !DIExpression())
!1971 = distinct !DIGlobalVariable(name: "foobar197", scope: !1972, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1972 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1975)
!1975 = !{!1970}
-@foobar198 = common dso_local global i8* null, align 8, !dbg !1980
+@foobar198 = common dso_local global ptr null, align 8, !dbg !1980
!1980 = !DIGlobalVariableExpression(var: !1981, expr: !DIExpression())
!1981 = distinct !DIGlobalVariable(name: "foobar198", scope: !1982, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1982 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1985)
!1985 = !{!1980}
-@foobar199 = common dso_local global i8* null, align 8, !dbg !1990
+@foobar199 = common dso_local global ptr null, align 8, !dbg !1990
!1990 = !DIGlobalVariableExpression(var: !1991, expr: !DIExpression())
!1991 = distinct !DIGlobalVariable(name: "foobar199", scope: !1992, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!1992 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !1995)
!1995 = !{!1990}
-@foobar200 = common dso_local global i8* null, align 8, !dbg !2000
+@foobar200 = common dso_local global ptr null, align 8, !dbg !2000
!2000 = !DIGlobalVariableExpression(var: !2001, expr: !DIExpression())
!2001 = distinct !DIGlobalVariable(name: "foobar200", scope: !2002, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2002 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2005)
!2005 = !{!2000}
-@foobar201 = common dso_local global i8* null, align 8, !dbg !2010
+@foobar201 = common dso_local global ptr null, align 8, !dbg !2010
!2010 = !DIGlobalVariableExpression(var: !2011, expr: !DIExpression())
!2011 = distinct !DIGlobalVariable(name: "foobar201", scope: !2012, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2012 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2015)
!2015 = !{!2010}
-@foobar202 = common dso_local global i8* null, align 8, !dbg !2020
+@foobar202 = common dso_local global ptr null, align 8, !dbg !2020
!2020 = !DIGlobalVariableExpression(var: !2021, expr: !DIExpression())
!2021 = distinct !DIGlobalVariable(name: "foobar202", scope: !2022, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2022 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2025)
!2025 = !{!2020}
-@foobar203 = common dso_local global i8* null, align 8, !dbg !2030
+@foobar203 = common dso_local global ptr null, align 8, !dbg !2030
!2030 = !DIGlobalVariableExpression(var: !2031, expr: !DIExpression())
!2031 = distinct !DIGlobalVariable(name: "foobar203", scope: !2032, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2032 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2035)
!2035 = !{!2030}
-@foobar204 = common dso_local global i8* null, align 8, !dbg !2040
+@foobar204 = common dso_local global ptr null, align 8, !dbg !2040
!2040 = !DIGlobalVariableExpression(var: !2041, expr: !DIExpression())
!2041 = distinct !DIGlobalVariable(name: "foobar204", scope: !2042, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2042 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2045)
!2045 = !{!2040}
-@foobar205 = common dso_local global i8* null, align 8, !dbg !2050
+@foobar205 = common dso_local global ptr null, align 8, !dbg !2050
!2050 = !DIGlobalVariableExpression(var: !2051, expr: !DIExpression())
!2051 = distinct !DIGlobalVariable(name: "foobar205", scope: !2052, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2052 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2055)
!2055 = !{!2050}
-@foobar206 = common dso_local global i8* null, align 8, !dbg !2060
+@foobar206 = common dso_local global ptr null, align 8, !dbg !2060
!2060 = !DIGlobalVariableExpression(var: !2061, expr: !DIExpression())
!2061 = distinct !DIGlobalVariable(name: "foobar206", scope: !2062, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2062 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2065)
!2065 = !{!2060}
-@foobar207 = common dso_local global i8* null, align 8, !dbg !2070
+@foobar207 = common dso_local global ptr null, align 8, !dbg !2070
!2070 = !DIGlobalVariableExpression(var: !2071, expr: !DIExpression())
!2071 = distinct !DIGlobalVariable(name: "foobar207", scope: !2072, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2072 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2075)
!2075 = !{!2070}
-@foobar208 = common dso_local global i8* null, align 8, !dbg !2080
+@foobar208 = common dso_local global ptr null, align 8, !dbg !2080
!2080 = !DIGlobalVariableExpression(var: !2081, expr: !DIExpression())
!2081 = distinct !DIGlobalVariable(name: "foobar208", scope: !2082, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2082 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2085)
!2085 = !{!2080}
-@foobar209 = common dso_local global i8* null, align 8, !dbg !2090
+@foobar209 = common dso_local global ptr null, align 8, !dbg !2090
!2090 = !DIGlobalVariableExpression(var: !2091, expr: !DIExpression())
!2091 = distinct !DIGlobalVariable(name: "foobar209", scope: !2092, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2092 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2095)
!2095 = !{!2090}
-@foobar210 = common dso_local global i8* null, align 8, !dbg !2100
+@foobar210 = common dso_local global ptr null, align 8, !dbg !2100
!2100 = !DIGlobalVariableExpression(var: !2101, expr: !DIExpression())
!2101 = distinct !DIGlobalVariable(name: "foobar210", scope: !2102, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2102 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2105)
!2105 = !{!2100}
-@foobar211 = common dso_local global i8* null, align 8, !dbg !2110
+@foobar211 = common dso_local global ptr null, align 8, !dbg !2110
!2110 = !DIGlobalVariableExpression(var: !2111, expr: !DIExpression())
!2111 = distinct !DIGlobalVariable(name: "foobar211", scope: !2112, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2112 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2115)
!2115 = !{!2110}
-@foobar212 = common dso_local global i8* null, align 8, !dbg !2120
+@foobar212 = common dso_local global ptr null, align 8, !dbg !2120
!2120 = !DIGlobalVariableExpression(var: !2121, expr: !DIExpression())
!2121 = distinct !DIGlobalVariable(name: "foobar212", scope: !2122, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2122 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2125)
!2125 = !{!2120}
-@foobar213 = common dso_local global i8* null, align 8, !dbg !2130
+@foobar213 = common dso_local global ptr null, align 8, !dbg !2130
!2130 = !DIGlobalVariableExpression(var: !2131, expr: !DIExpression())
!2131 = distinct !DIGlobalVariable(name: "foobar213", scope: !2132, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2132 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2135)
!2135 = !{!2130}
-@foobar214 = common dso_local global i8* null, align 8, !dbg !2140
+@foobar214 = common dso_local global ptr null, align 8, !dbg !2140
!2140 = !DIGlobalVariableExpression(var: !2141, expr: !DIExpression())
!2141 = distinct !DIGlobalVariable(name: "foobar214", scope: !2142, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2142 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2145)
!2145 = !{!2140}
-@foobar215 = common dso_local global i8* null, align 8, !dbg !2150
+@foobar215 = common dso_local global ptr null, align 8, !dbg !2150
!2150 = !DIGlobalVariableExpression(var: !2151, expr: !DIExpression())
!2151 = distinct !DIGlobalVariable(name: "foobar215", scope: !2152, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2152 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2155)
!2155 = !{!2150}
-@foobar216 = common dso_local global i8* null, align 8, !dbg !2160
+@foobar216 = common dso_local global ptr null, align 8, !dbg !2160
!2160 = !DIGlobalVariableExpression(var: !2161, expr: !DIExpression())
!2161 = distinct !DIGlobalVariable(name: "foobar216", scope: !2162, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2162 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2165)
!2165 = !{!2160}
-@foobar217 = common dso_local global i8* null, align 8, !dbg !2170
+@foobar217 = common dso_local global ptr null, align 8, !dbg !2170
!2170 = !DIGlobalVariableExpression(var: !2171, expr: !DIExpression())
!2171 = distinct !DIGlobalVariable(name: "foobar217", scope: !2172, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2172 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2175)
!2175 = !{!2170}
-@foobar218 = common dso_local global i8* null, align 8, !dbg !2180
+@foobar218 = common dso_local global ptr null, align 8, !dbg !2180
!2180 = !DIGlobalVariableExpression(var: !2181, expr: !DIExpression())
!2181 = distinct !DIGlobalVariable(name: "foobar218", scope: !2182, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2182 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2185)
!2185 = !{!2180}
-@foobar219 = common dso_local global i8* null, align 8, !dbg !2190
+@foobar219 = common dso_local global ptr null, align 8, !dbg !2190
!2190 = !DIGlobalVariableExpression(var: !2191, expr: !DIExpression())
!2191 = distinct !DIGlobalVariable(name: "foobar219", scope: !2192, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2192 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2195)
!2195 = !{!2190}
-@foobar220 = common dso_local global i8* null, align 8, !dbg !2200
+@foobar220 = common dso_local global ptr null, align 8, !dbg !2200
!2200 = !DIGlobalVariableExpression(var: !2201, expr: !DIExpression())
!2201 = distinct !DIGlobalVariable(name: "foobar220", scope: !2202, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2202 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2205)
!2205 = !{!2200}
-@foobar221 = common dso_local global i8* null, align 8, !dbg !2210
+@foobar221 = common dso_local global ptr null, align 8, !dbg !2210
!2210 = !DIGlobalVariableExpression(var: !2211, expr: !DIExpression())
!2211 = distinct !DIGlobalVariable(name: "foobar221", scope: !2212, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2212 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2215)
!2215 = !{!2210}
-@foobar222 = common dso_local global i8* null, align 8, !dbg !2220
+@foobar222 = common dso_local global ptr null, align 8, !dbg !2220
!2220 = !DIGlobalVariableExpression(var: !2221, expr: !DIExpression())
!2221 = distinct !DIGlobalVariable(name: "foobar222", scope: !2222, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2222 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2225)
!2225 = !{!2220}
-@foobar223 = common dso_local global i8* null, align 8, !dbg !2230
+@foobar223 = common dso_local global ptr null, align 8, !dbg !2230
!2230 = !DIGlobalVariableExpression(var: !2231, expr: !DIExpression())
!2231 = distinct !DIGlobalVariable(name: "foobar223", scope: !2232, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2232 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2235)
!2235 = !{!2230}
-@foobar224 = common dso_local global i8* null, align 8, !dbg !2240
+@foobar224 = common dso_local global ptr null, align 8, !dbg !2240
!2240 = !DIGlobalVariableExpression(var: !2241, expr: !DIExpression())
!2241 = distinct !DIGlobalVariable(name: "foobar224", scope: !2242, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2242 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2245)
!2245 = !{!2240}
-@foobar225 = common dso_local global i8* null, align 8, !dbg !2250
+@foobar225 = common dso_local global ptr null, align 8, !dbg !2250
!2250 = !DIGlobalVariableExpression(var: !2251, expr: !DIExpression())
!2251 = distinct !DIGlobalVariable(name: "foobar225", scope: !2252, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2252 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2255)
!2255 = !{!2250}
-@foobar226 = common dso_local global i8* null, align 8, !dbg !2260
+@foobar226 = common dso_local global ptr null, align 8, !dbg !2260
!2260 = !DIGlobalVariableExpression(var: !2261, expr: !DIExpression())
!2261 = distinct !DIGlobalVariable(name: "foobar226", scope: !2262, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2262 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2265)
!2265 = !{!2260}
-@foobar227 = common dso_local global i8* null, align 8, !dbg !2270
+@foobar227 = common dso_local global ptr null, align 8, !dbg !2270
!2270 = !DIGlobalVariableExpression(var: !2271, expr: !DIExpression())
!2271 = distinct !DIGlobalVariable(name: "foobar227", scope: !2272, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2272 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2275)
!2275 = !{!2270}
-@foobar228 = common dso_local global i8* null, align 8, !dbg !2280
+@foobar228 = common dso_local global ptr null, align 8, !dbg !2280
!2280 = !DIGlobalVariableExpression(var: !2281, expr: !DIExpression())
!2281 = distinct !DIGlobalVariable(name: "foobar228", scope: !2282, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2282 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2285)
!2285 = !{!2280}
-@foobar229 = common dso_local global i8* null, align 8, !dbg !2290
+@foobar229 = common dso_local global ptr null, align 8, !dbg !2290
!2290 = !DIGlobalVariableExpression(var: !2291, expr: !DIExpression())
!2291 = distinct !DIGlobalVariable(name: "foobar229", scope: !2292, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2292 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2295)
!2295 = !{!2290}
-@foobar230 = common dso_local global i8* null, align 8, !dbg !2300
+@foobar230 = common dso_local global ptr null, align 8, !dbg !2300
!2300 = !DIGlobalVariableExpression(var: !2301, expr: !DIExpression())
!2301 = distinct !DIGlobalVariable(name: "foobar230", scope: !2302, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2302 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2305)
!2305 = !{!2300}
-@foobar231 = common dso_local global i8* null, align 8, !dbg !2310
+@foobar231 = common dso_local global ptr null, align 8, !dbg !2310
!2310 = !DIGlobalVariableExpression(var: !2311, expr: !DIExpression())
!2311 = distinct !DIGlobalVariable(name: "foobar231", scope: !2312, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2312 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2315)
!2315 = !{!2310}
-@foobar232 = common dso_local global i8* null, align 8, !dbg !2320
+@foobar232 = common dso_local global ptr null, align 8, !dbg !2320
!2320 = !DIGlobalVariableExpression(var: !2321, expr: !DIExpression())
!2321 = distinct !DIGlobalVariable(name: "foobar232", scope: !2322, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2322 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2325)
!2325 = !{!2320}
-@foobar233 = common dso_local global i8* null, align 8, !dbg !2330
+@foobar233 = common dso_local global ptr null, align 8, !dbg !2330
!2330 = !DIGlobalVariableExpression(var: !2331, expr: !DIExpression())
!2331 = distinct !DIGlobalVariable(name: "foobar233", scope: !2332, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2332 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2335)
!2335 = !{!2330}
-@foobar234 = common dso_local global i8* null, align 8, !dbg !2340
+@foobar234 = common dso_local global ptr null, align 8, !dbg !2340
!2340 = !DIGlobalVariableExpression(var: !2341, expr: !DIExpression())
!2341 = distinct !DIGlobalVariable(name: "foobar234", scope: !2342, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2342 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2345)
!2345 = !{!2340}
-@foobar235 = common dso_local global i8* null, align 8, !dbg !2350
+@foobar235 = common dso_local global ptr null, align 8, !dbg !2350
!2350 = !DIGlobalVariableExpression(var: !2351, expr: !DIExpression())
!2351 = distinct !DIGlobalVariable(name: "foobar235", scope: !2352, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2352 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2355)
!2355 = !{!2350}
-@foobar236 = common dso_local global i8* null, align 8, !dbg !2360
+@foobar236 = common dso_local global ptr null, align 8, !dbg !2360
!2360 = !DIGlobalVariableExpression(var: !2361, expr: !DIExpression())
!2361 = distinct !DIGlobalVariable(name: "foobar236", scope: !2362, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2362 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2365)
!2365 = !{!2360}
-@foobar237 = common dso_local global i8* null, align 8, !dbg !2370
+@foobar237 = common dso_local global ptr null, align 8, !dbg !2370
!2370 = !DIGlobalVariableExpression(var: !2371, expr: !DIExpression())
!2371 = distinct !DIGlobalVariable(name: "foobar237", scope: !2372, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2372 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2375)
!2375 = !{!2370}
-@foobar238 = common dso_local global i8* null, align 8, !dbg !2380
+@foobar238 = common dso_local global ptr null, align 8, !dbg !2380
!2380 = !DIGlobalVariableExpression(var: !2381, expr: !DIExpression())
!2381 = distinct !DIGlobalVariable(name: "foobar238", scope: !2382, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2382 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2385)
!2385 = !{!2380}
-@foobar239 = common dso_local global i8* null, align 8, !dbg !2390
+@foobar239 = common dso_local global ptr null, align 8, !dbg !2390
!2390 = !DIGlobalVariableExpression(var: !2391, expr: !DIExpression())
!2391 = distinct !DIGlobalVariable(name: "foobar239", scope: !2392, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2392 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2395)
!2395 = !{!2390}
-@foobar240 = common dso_local global i8* null, align 8, !dbg !2400
+@foobar240 = common dso_local global ptr null, align 8, !dbg !2400
!2400 = !DIGlobalVariableExpression(var: !2401, expr: !DIExpression())
!2401 = distinct !DIGlobalVariable(name: "foobar240", scope: !2402, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2402 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2405)
!2405 = !{!2400}
-@foobar241 = common dso_local global i8* null, align 8, !dbg !2410
+@foobar241 = common dso_local global ptr null, align 8, !dbg !2410
!2410 = !DIGlobalVariableExpression(var: !2411, expr: !DIExpression())
!2411 = distinct !DIGlobalVariable(name: "foobar241", scope: !2412, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2412 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2415)
!2415 = !{!2410}
-@foobar242 = common dso_local global i8* null, align 8, !dbg !2420
+@foobar242 = common dso_local global ptr null, align 8, !dbg !2420
!2420 = !DIGlobalVariableExpression(var: !2421, expr: !DIExpression())
!2421 = distinct !DIGlobalVariable(name: "foobar242", scope: !2422, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2422 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2425)
!2425 = !{!2420}
-@foobar243 = common dso_local global i8* null, align 8, !dbg !2430
+@foobar243 = common dso_local global ptr null, align 8, !dbg !2430
!2430 = !DIGlobalVariableExpression(var: !2431, expr: !DIExpression())
!2431 = distinct !DIGlobalVariable(name: "foobar243", scope: !2432, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2432 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2435)
!2435 = !{!2430}
-@foobar244 = common dso_local global i8* null, align 8, !dbg !2440
+@foobar244 = common dso_local global ptr null, align 8, !dbg !2440
!2440 = !DIGlobalVariableExpression(var: !2441, expr: !DIExpression())
!2441 = distinct !DIGlobalVariable(name: "foobar244", scope: !2442, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2442 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2445)
!2445 = !{!2440}
-@foobar245 = common dso_local global i8* null, align 8, !dbg !2450
+@foobar245 = common dso_local global ptr null, align 8, !dbg !2450
!2450 = !DIGlobalVariableExpression(var: !2451, expr: !DIExpression())
!2451 = distinct !DIGlobalVariable(name: "foobar245", scope: !2452, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2452 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2455)
!2455 = !{!2450}
-@foobar246 = common dso_local global i8* null, align 8, !dbg !2460
+@foobar246 = common dso_local global ptr null, align 8, !dbg !2460
!2460 = !DIGlobalVariableExpression(var: !2461, expr: !DIExpression())
!2461 = distinct !DIGlobalVariable(name: "foobar246", scope: !2462, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2462 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2465)
!2465 = !{!2460}
-@foobar247 = common dso_local global i8* null, align 8, !dbg !2470
+@foobar247 = common dso_local global ptr null, align 8, !dbg !2470
!2470 = !DIGlobalVariableExpression(var: !2471, expr: !DIExpression())
!2471 = distinct !DIGlobalVariable(name: "foobar247", scope: !2472, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2472 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2475)
!2475 = !{!2470}
-@foobar248 = common dso_local global i8* null, align 8, !dbg !2480
+@foobar248 = common dso_local global ptr null, align 8, !dbg !2480
!2480 = !DIGlobalVariableExpression(var: !2481, expr: !DIExpression())
!2481 = distinct !DIGlobalVariable(name: "foobar248", scope: !2482, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2482 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2485)
!2485 = !{!2480}
-@foobar249 = common dso_local global i8* null, align 8, !dbg !2490
+@foobar249 = common dso_local global ptr null, align 8, !dbg !2490
!2490 = !DIGlobalVariableExpression(var: !2491, expr: !DIExpression())
!2491 = distinct !DIGlobalVariable(name: "foobar249", scope: !2492, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2492 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2495)
!2495 = !{!2490}
-@foobar250 = common dso_local global i8* null, align 8, !dbg !2500
+@foobar250 = common dso_local global ptr null, align 8, !dbg !2500
!2500 = !DIGlobalVariableExpression(var: !2501, expr: !DIExpression())
!2501 = distinct !DIGlobalVariable(name: "foobar250", scope: !2502, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2502 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2505)
!2505 = !{!2500}
-@foobar251 = common dso_local global i8* null, align 8, !dbg !2510
+@foobar251 = common dso_local global ptr null, align 8, !dbg !2510
!2510 = !DIGlobalVariableExpression(var: !2511, expr: !DIExpression())
!2511 = distinct !DIGlobalVariable(name: "foobar251", scope: !2512, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2512 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2515)
!2515 = !{!2510}
-@foobar252 = common dso_local global i8* null, align 8, !dbg !2520
+@foobar252 = common dso_local global ptr null, align 8, !dbg !2520
!2520 = !DIGlobalVariableExpression(var: !2521, expr: !DIExpression())
!2521 = distinct !DIGlobalVariable(name: "foobar252", scope: !2522, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2522 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2525)
!2525 = !{!2520}
-@foobar253 = common dso_local global i8* null, align 8, !dbg !2530
+@foobar253 = common dso_local global ptr null, align 8, !dbg !2530
!2530 = !DIGlobalVariableExpression(var: !2531, expr: !DIExpression())
!2531 = distinct !DIGlobalVariable(name: "foobar253", scope: !2532, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2532 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2535)
!2535 = !{!2530}
-@foobar254 = common dso_local global i8* null, align 8, !dbg !2540
+@foobar254 = common dso_local global ptr null, align 8, !dbg !2540
!2540 = !DIGlobalVariableExpression(var: !2541, expr: !DIExpression())
!2541 = distinct !DIGlobalVariable(name: "foobar254", scope: !2542, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2542 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2545)
!2545 = !{!2540}
-@foobar255 = common dso_local global i8* null, align 8, !dbg !2550
+@foobar255 = common dso_local global ptr null, align 8, !dbg !2550
!2550 = !DIGlobalVariableExpression(var: !2551, expr: !DIExpression())
!2551 = distinct !DIGlobalVariable(name: "foobar255", scope: !2552, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2552 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2555)
!2555 = !{!2550}
-@foobar256 = common dso_local global i8* null, align 8, !dbg !2560
+@foobar256 = common dso_local global ptr null, align 8, !dbg !2560
!2560 = !DIGlobalVariableExpression(var: !2561, expr: !DIExpression())
!2561 = distinct !DIGlobalVariable(name: "foobar256", scope: !2562, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2562 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2565)
!2565 = !{!2560}
-@foobar257 = common dso_local global i8* null, align 8, !dbg !2570
+@foobar257 = common dso_local global ptr null, align 8, !dbg !2570
!2570 = !DIGlobalVariableExpression(var: !2571, expr: !DIExpression())
!2571 = distinct !DIGlobalVariable(name: "foobar257", scope: !2572, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!2572 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !2575)
; VERIFY: No errors.
-@foobar = common dso_local global i8* null, align 8, !dbg !0
+@foobar = common dso_local global ptr null, align 8, !dbg !0
!llvm.dbg.cu = !{!2}
!llvm.module.flags = !{!7, !8, !9}
!6 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64)
!3 = !DIFile(filename: "/tmp/cu2.c", directory: "/tmp")
-@foobar1 = common dso_local global i8* null, align 8, !dbg !10
+@foobar1 = common dso_local global ptr null, align 8, !dbg !10
!10 = !DIGlobalVariableExpression(var: !11, expr: !DIExpression())
!11 = distinct !DIGlobalVariable(name: "foobar1", scope: !12, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!12 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !15)
!15 = !{!10}
-@foobar2 = common dso_local global i8* null, align 8, !dbg !20
+@foobar2 = common dso_local global ptr null, align 8, !dbg !20
!20 = !DIGlobalVariableExpression(var: !21, expr: !DIExpression())
!21 = distinct !DIGlobalVariable(name: "foobar2", scope: !22, file: !3, line: 1, type: !6, isLocal: false, isDefinition: true)
!22 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 7.0.0 (trunk 325496) (llvm/trunk 325732)", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, globals: !25)
source_filename = "test/DebugInfo/Generic/debuginfofinder-forward-declaration.ll"
-%struct.Y = type { %struct.X* }
+%struct.Y = type { ptr }
%struct.X = type opaque
@y = common global %struct.Y zeroinitializer, align 8, !dbg !0
; CHECK: DW_AT_alignment
; CHECK: DW_AT_data_member_location [DW_FORM_data1] (0x00)
-%F = type { [0 x i8], {}*, [8 x i8] }
+%F = type { [0 x i8], ptr, [8 x i8] }
%"F::Nope" = type {}
define internal void @_ZN2e34main17h934ff72f9a38d4bbE() unnamed_addr #0 !dbg !5 {
start:
%qq = alloca %F, align 8
- call void @llvm.dbg.declare(metadata %F* %qq, metadata !10, metadata !28), !dbg !29
- %0 = bitcast %F* %qq to {}**, !dbg !29
- store {}* null, {}** %0, !dbg !29
- %1 = bitcast %F* %qq to %"F::Nope"*, !dbg !29
+ call void @llvm.dbg.declare(metadata ptr %qq, metadata !10, metadata !28), !dbg !29
+ store ptr null, ptr %qq, !dbg !29
ret void, !dbg !30
}
@_ZN2ns25global_namespace_variableE = global i32 1, align 4, !dbg !17
; Function Attrs: nounwind uwtable
-define void @_ZN1C15member_functionEv(%struct.C* %this) #0 align 2 !dbg !23 {
+define void @_ZN1C15member_functionEv(ptr %this) #0 align 2 !dbg !23 {
entry:
- %this.addr = alloca %struct.C*, align 8
- store %struct.C* %this, %struct.C** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %struct.C** %this.addr, metadata !24, metadata !26), !dbg !27
- %this1 = load %struct.C*, %struct.C** %this.addr
- store i32 0, i32* @_ZN1C22static_member_variableE, align 4, !dbg !28
+ %this.addr = alloca ptr, align 8
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !24, metadata !26), !dbg !27
+ %this1 = load ptr, ptr %this.addr
+ store i32 0, ptr @_ZN1C22static_member_variableE, align 4, !dbg !28
ret void, !dbg !29
}
; Function Attrs: nounwind uwtable
define i32 @_ZN1C22static_member_functionEv() #0 align 2 !dbg !30 {
entry:
- %0 = load i32, i32* @_ZN1C22static_member_variableE, align 4, !dbg !31
+ %0 = load i32, ptr @_ZN1C22static_member_variableE, align 4, !dbg !31
ret i32 %0, !dbg !31
}
; Function Attrs: nounwind uwtable
define void @_ZN2ns25global_namespace_functionEv() #0 !dbg !34 {
entry:
- call void @_ZN1C15member_functionEv(%struct.C* @global_variable), !dbg !37
+ call void @_ZN1C15member_functionEv(ptr @global_variable), !dbg !37
ret void, !dbg !38
}
define void @_Z4topA2EA(i32 %sa) #0 !dbg !7 {
entry:
%sa.addr = alloca i32, align 4
- store i32 %sa, i32* %sa.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %sa.addr, metadata !22, metadata !DIExpression()), !dbg !23
+ store i32 %sa, ptr %sa.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %sa.addr, metadata !22, metadata !DIExpression()), !dbg !23
ret void, !dbg !24
}
define void @_Z4topB2EA(i32 %sa) #0 !dbg !17 {
entry:
%sa.addr = alloca i32, align 4
- store i32 %sa, i32* %sa.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %sa.addr, metadata !25, metadata !DIExpression()), !dbg !26
+ store i32 %sa, ptr %sa.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %sa.addr, metadata !25, metadata !DIExpression()), !dbg !26
ret void, !dbg !27
}
; Function Attrs: nounwind optsize ssp uwtable
define void @foo(i32 %in) #0 {
entry:
- store i32 %in, i32* getelementptr inbounds ([2 x %struct.anon], [2 x %struct.anon]* @array, i64 0, i64 0, i32 0), align 16, !tbaa !20
+ store i32 %in, ptr @array, align 16, !tbaa !20
ret void
}
; Function Attrs: nounwind optsize ssp uwtable
define void @bar(i32 %in) #0 {
entry:
- store i32 %in, i32* getelementptr inbounds ([2 x %struct.anon], [2 x %struct.anon]* @array, i64 0, i64 1, i32 0), align 8, !tbaa !20
+ store i32 %in, ptr getelementptr inbounds ([2 x %struct.anon], ptr @array, i64 0, i64 1, i32 0), align 8, !tbaa !20
ret void
}
; Function Attrs: nounwind optsize ssp uwtable
-define i32 @main(i32 %argc, i8** %argv) #0 !dbg !25 {
+define i32 @main(i32 %argc, ptr %argv) #0 !dbg !25 {
entry:
call void @llvm.dbg.value(metadata i32 %argc, metadata !31, metadata !33), !dbg !34
- call void @llvm.dbg.value(metadata i8** %argv, metadata !32, metadata !33), !dbg !35
- %0 = load i8*, i8** %argv, align 8, !dbg !36, !tbaa !37
- %arrayidx1 = getelementptr inbounds i8, i8* %0, i64 1, !dbg !36
- %1 = load i8, i8* %arrayidx1, align 1, !dbg !36, !tbaa !39
+ call void @llvm.dbg.value(metadata ptr %argv, metadata !32, metadata !33), !dbg !35
+ %0 = load ptr, ptr %argv, align 8, !dbg !36, !tbaa !37
+ %arrayidx1 = getelementptr inbounds i8, ptr %0, i64 1, !dbg !36
+ %1 = load i8, ptr %arrayidx1, align 1, !dbg !36, !tbaa !39
%conv = sext i8 %1 to i32, !dbg !36
call void @foo(i32 %conv) #2, !dbg !40
- %2 = load i8*, i8** %argv, align 8, !dbg !41, !tbaa !37
- %arrayidx3 = getelementptr inbounds i8, i8* %2, i64 1, !dbg !41
- %3 = load i8, i8* %arrayidx3, align 1, !dbg !41, !tbaa !39
+ %2 = load ptr, ptr %argv, align 8, !dbg !41, !tbaa !37
+ %arrayidx3 = getelementptr inbounds i8, ptr %2, i64 1, !dbg !41
+ %3 = load i8, ptr %arrayidx3, align 1, !dbg !41, !tbaa !39
%conv4 = sext i8 %3 to i32, !dbg !41
call void @bar(i32 %conv4) #2, !dbg !42
- %4 = load i32, i32* getelementptr inbounds ([2 x %struct.anon], [2 x %struct.anon]* @array, i64 0, i64 0, i32 0), align 16, !dbg !43, !tbaa !20
- %5 = load i32, i32* getelementptr inbounds ([2 x %struct.anon], [2 x %struct.anon]* @array, i64 0, i64 1, i32 0), align 8, !dbg !44, !tbaa !20
+ %4 = load i32, ptr @array, align 16, !dbg !43, !tbaa !20
+ %5 = load i32, ptr getelementptr inbounds ([2 x %struct.anon], ptr @array, i64 0, i64 1, i32 0), align 8, !dbg !44, !tbaa !20
%add = add nsw i32 %4, %5, !dbg !45
ret i32 %add, !dbg !46
}
define i32 @main() #0 !dbg !15 {
entry:
%retval = alloca i32, align 4
- store i32 0, i32* %retval, align 4
- %0 = load i32, i32* getelementptr inbounds (%struct.anon, %struct.anon* @a, i32 0, i32 0), align 4, !dbg !18
+ store i32 0, ptr %retval, align 4
+ %0 = load i32, ptr @a, align 4, !dbg !18
%inc = add nsw i32 %0, 1, !dbg !18
- store i32 %inc, i32* getelementptr inbounds (%struct.anon, %struct.anon* @a, i32 0, i32 0), align 4, !dbg !18
+ store i32 %inc, ptr @a, align 4, !dbg !18
ret i32 0, !dbg !19
}
; Function Attrs: noinline nounwind uwtable
define dso_local i32 @e() #0 !dbg !18 {
entry:
- %0 = load i64, i64* getelementptr inbounds (%struct.anon, %struct.anon* @d, i32 0, i32 0), align 8
+ %0 = load i64, ptr @d, align 8
%add = add nsw i64 %0, 1
call void @llvm.dbg.value(metadata i64 %add, metadata !24, metadata !DIExpression()), !dbg !25
- store i64 %add, i64* getelementptr inbounds (%struct.anon, %struct.anon* @d, i32 0, i32 0), align 8
+ store i64 %add, ptr @d, align 8
ret i32 undef
}
; Function Attrs: noinline nounwind uwtable
define dso_local i32 @e() #0 !dbg !18 {
entry:
- %0 = load i64, i64* getelementptr inbounds (%struct.anon, %struct.anon* @d, i32 0, i32 0), align 8
+ %0 = load i64, ptr @d, align 8
%add = add nsw i64 %0, 1
call void @llvm.dbg.value(metadata i64 %add, metadata !24, metadata !DIExpression()), !dbg !25
- store i64 %add, i64* getelementptr inbounds (%struct.anon, %struct.anon* @d, i32 0, i32 0), align 8
+ store i64 %add, ptr @d, align 8
ret i32 undef
}
; Function Attrs: nounwind optsize ssp uwtable
define void @foo(i32 %in) #0 {
entry:
- store i32 %in, i32* getelementptr inbounds (%struct.mystruct, %struct.mystruct* @static_struct, i32 0, i32 0), align 8, !tbaa !17
+ store i32 %in, ptr @static_struct, align 8, !tbaa !17
ret void
}
define void @bar(i32 %in) #0 {
entry:
%conv = sext i32 %in to i64
- store i64 %conv, i64* getelementptr inbounds (%struct.mystruct, %struct.mystruct* @static_struct, i32 0, i32 1), align 8, !tbaa !23
+ store i64 %conv, ptr getelementptr inbounds (%struct.mystruct, ptr @static_struct, i32 0, i32 1), align 8, !tbaa !23
ret void
}
; Function Attrs: nounwind optsize ssp uwtable
-define i32 @main(i32 %argc, i8** %argv) #0 !dbg !24 {
+define i32 @main(i32 %argc, ptr %argv) #0 !dbg !24 {
entry:
call void @llvm.dbg.value(metadata i32 %argc, metadata !31, metadata !33), !dbg !34
- call void @llvm.dbg.value(metadata i8** %argv, metadata !32, metadata !33), !dbg !35
- %0 = load i8*, i8** %argv, align 8, !dbg !36, !tbaa !37
- %arrayidx1 = getelementptr inbounds i8, i8* %0, i64 1, !dbg !36
- %1 = load i8, i8* %arrayidx1, align 1, !dbg !36, !tbaa !39
+ call void @llvm.dbg.value(metadata ptr %argv, metadata !32, metadata !33), !dbg !35
+ %0 = load ptr, ptr %argv, align 8, !dbg !36, !tbaa !37
+ %arrayidx1 = getelementptr inbounds i8, ptr %0, i64 1, !dbg !36
+ %1 = load i8, ptr %arrayidx1, align 1, !dbg !36, !tbaa !39
%conv = sext i8 %1 to i32, !dbg !36
call void @foo(i32 %conv) #2, !dbg !40
- %2 = load i8*, i8** %argv, align 8, !dbg !41, !tbaa !37
- %arrayidx3 = getelementptr inbounds i8, i8* %2, i64 1, !dbg !41
- %3 = load i8, i8* %arrayidx3, align 1, !dbg !41, !tbaa !39
+ %2 = load ptr, ptr %argv, align 8, !dbg !41, !tbaa !37
+ %arrayidx3 = getelementptr inbounds i8, ptr %2, i64 1, !dbg !41
+ %3 = load i8, ptr %arrayidx3, align 1, !dbg !41, !tbaa !39
%conv4 = sext i8 %3 to i32, !dbg !41
call void @bar(i32 %conv4) #2, !dbg !42
- %4 = load i32, i32* getelementptr inbounds (%struct.mystruct, %struct.mystruct* @static_struct, i32 0, i32 0), align 8, !dbg !43, !tbaa !17
+ %4 = load i32, ptr @static_struct, align 8, !dbg !43, !tbaa !17
%conv5 = sext i32 %4 to i64, !dbg !44
- %5 = load i64, i64* getelementptr inbounds (%struct.mystruct, %struct.mystruct* @static_struct, i32 0, i32 1), align 8, !dbg !45, !tbaa !23
+ %5 = load i64, ptr getelementptr inbounds (%struct.mystruct, ptr @static_struct, i32 0, i32 1), align 8, !dbg !45, !tbaa !23
%add = add nsw i64 %conv5, %5, !dbg !46
%conv6 = trunc i64 %add to i32, !dbg !44
ret i32 %conv6, !dbg !47
%struct.B = type { i32 }
%struct.A = type { i8 }
-@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 1, void ()* @asan.module_ctor, i8* null }]
+@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 1, ptr @asan.module_ctor, ptr null }]
@__asan_option_detect_stack_use_after_return = external global i32
@___asan_gen_ = private unnamed_addr constant [11 x i8] c"1 32 8 1 A\00", align 1
@___asan_gen_1 = private unnamed_addr constant [13 x i8] c"1 32 1 3 tmp\00", align 1
define i32 @_Z3fn1v() #0 !dbg !22 {
entry:
%MyAlloca = alloca [64 x i8], align 32, !dbg !39
- %0 = ptrtoint [64 x i8]* %MyAlloca to i64, !dbg !39
- %1 = load i32, i32* @__asan_option_detect_stack_use_after_return, !dbg !39
+ %0 = ptrtoint ptr %MyAlloca to i64, !dbg !39
+ %1 = load i32, ptr @__asan_option_detect_stack_use_after_return, !dbg !39
%2 = icmp ne i32 %1, 0, !dbg !39
br i1 %2, label %3, label %5
; <label>:5 ; preds = %entry, %3
%6 = phi i64 [ %0, %entry ], [ %4, %3 ], !dbg !39
%7 = add i64 %6, 32, !dbg !39
- %8 = inttoptr i64 %7 to %struct.C*, !dbg !39
- %9 = inttoptr i64 %6 to i64*, !dbg !39
- store i64 1102416563, i64* %9, !dbg !39
+ %8 = inttoptr i64 %7 to ptr, !dbg !39
+ %9 = inttoptr i64 %6 to ptr, !dbg !39
+ store i64 1102416563, ptr %9, !dbg !39
%10 = add i64 %6, 8, !dbg !39
- %11 = inttoptr i64 %10 to i64*, !dbg !39
- store i64 ptrtoint ([11 x i8]* @___asan_gen_ to i64), i64* %11, !dbg !39
+ %11 = inttoptr i64 %10 to ptr, !dbg !39
+ store i64 ptrtoint (ptr @___asan_gen_ to i64), ptr %11, !dbg !39
%12 = add i64 %6, 16, !dbg !39
- %13 = inttoptr i64 %12 to i64*, !dbg !39
- store i64 ptrtoint (i32 ()* @_Z3fn1v to i64), i64* %13, !dbg !39
+ %13 = inttoptr i64 %12 to ptr, !dbg !39
+ store i64 ptrtoint (ptr @_Z3fn1v to i64), ptr %13, !dbg !39
%14 = lshr i64 %6, 3, !dbg !39
%15 = add i64 %14, 2147450880, !dbg !39
%16 = add i64 %15, 0, !dbg !39
- %17 = inttoptr i64 %16 to i64*, !dbg !39
- store i64 -868083117767659023, i64* %17, !dbg !39
- %i.i = getelementptr inbounds %struct.C, %struct.C* %8, i64 0, i32 1, i32 0, !dbg !39
- %18 = ptrtoint i32* %i.i to i64, !dbg !39
+ %17 = inttoptr i64 %16 to ptr, !dbg !39
+ store i64 -868083117767659023, ptr %17, !dbg !39
+ %i.i = getelementptr inbounds %struct.C, ptr %8, i64 0, i32 1, i32 0, !dbg !39
+ %18 = ptrtoint ptr %i.i to i64, !dbg !39
%19 = lshr i64 %18, 3, !dbg !39
%20 = add i64 %19, 2147450880, !dbg !39
- %21 = inttoptr i64 %20 to i8*, !dbg !39
- %22 = load i8, i8* %21, !dbg !39
+ %21 = inttoptr i64 %20 to ptr, !dbg !39
+ %22 = load i8, ptr %21, !dbg !39
%23 = icmp ne i8 %22, 0, !dbg !39
br i1 %23, label %24, label %30, !dbg !39
unreachable
; <label>:30 ; preds = %24, %5
- store i32 0, i32* %i.i, align 4, !dbg !39, !tbaa !41
- tail call void @llvm.dbg.value(metadata %struct.C* %8, metadata !27, metadata !DIExpression(DW_OP_deref)), !dbg !46
- call void @_ZN1C5m_fn3Ev(%struct.C* %8), !dbg !47
+ store i32 0, ptr %i.i, align 4, !dbg !39, !tbaa !41
+ tail call void @llvm.dbg.value(metadata ptr %8, metadata !27, metadata !DIExpression(DW_OP_deref)), !dbg !46
+ call void @_ZN1C5m_fn3Ev(ptr %8), !dbg !47
unreachable, !dbg !47
}
; Function Attrs: sanitize_address
-define void @_ZN1C5m_fn3Ev(%struct.C* nocapture %this) #1 align 2 !dbg !28 {
+define void @_ZN1C5m_fn3Ev(ptr nocapture %this) #1 align 2 !dbg !28 {
entry:
%MyAlloca = alloca [64 x i8], align 32, !dbg !48
- %0 = ptrtoint [64 x i8]* %MyAlloca to i64, !dbg !48
- %1 = load i32, i32* @__asan_option_detect_stack_use_after_return, !dbg !48
+ %0 = ptrtoint ptr %MyAlloca to i64, !dbg !48
+ %1 = load i32, ptr @__asan_option_detect_stack_use_after_return, !dbg !48
%2 = icmp ne i32 %1, 0, !dbg !48
br i1 %2, label %3, label %5
; <label>:5 ; preds = %entry, %3
%6 = phi i64 [ %0, %entry ], [ %4, %3 ], !dbg !48
%7 = add i64 %6, 32, !dbg !48
- %8 = inttoptr i64 %7 to %struct.A*, !dbg !48
- %9 = inttoptr i64 %6 to i64*, !dbg !48
- store i64 1102416563, i64* %9, !dbg !48
+ %8 = inttoptr i64 %7 to ptr, !dbg !48
+ %9 = inttoptr i64 %6 to ptr, !dbg !48
+ store i64 1102416563, ptr %9, !dbg !48
%10 = add i64 %6, 8, !dbg !48
- %11 = inttoptr i64 %10 to i64*, !dbg !48
- store i64 ptrtoint ([13 x i8]* @___asan_gen_1 to i64), i64* %11, !dbg !48
+ %11 = inttoptr i64 %10 to ptr, !dbg !48
+ store i64 ptrtoint (ptr @___asan_gen_1 to i64), ptr %11, !dbg !48
%12 = add i64 %6, 16, !dbg !48
- %13 = inttoptr i64 %12 to i64*, !dbg !48
- store i64 ptrtoint (void (%struct.C*)* @_ZN1C5m_fn3Ev to i64), i64* %13, !dbg !48
+ %13 = inttoptr i64 %12 to ptr, !dbg !48
+ store i64 ptrtoint (ptr @_ZN1C5m_fn3Ev to i64), ptr %13, !dbg !48
%14 = lshr i64 %6, 3, !dbg !48
%15 = add i64 %14, 2147450880, !dbg !48
%16 = add i64 %15, 0, !dbg !48
- %17 = inttoptr i64 %16 to i64*, !dbg !48
- store i64 -868083113472691727, i64* %17, !dbg !48
- tail call void @llvm.dbg.value(metadata %struct.C* %this, metadata !30, metadata !DIExpression()), !dbg !48
- %call = call i32 @_ZN1A5m_fn1Ev(%struct.A* %8), !dbg !49
- %i.i = getelementptr inbounds %struct.C, %struct.C* %this, i64 0, i32 1, i32 0, !dbg !50
- %18 = ptrtoint i32* %i.i to i64, !dbg !50
+ %17 = inttoptr i64 %16 to ptr, !dbg !48
+ store i64 -868083113472691727, ptr %17, !dbg !48
+ tail call void @llvm.dbg.value(metadata ptr %this, metadata !30, metadata !DIExpression()), !dbg !48
+ %call = call i32 @_ZN1A5m_fn1Ev(ptr %8), !dbg !49
+ %i.i = getelementptr inbounds %struct.C, ptr %this, i64 0, i32 1, i32 0, !dbg !50
+ %18 = ptrtoint ptr %i.i to i64, !dbg !50
%19 = lshr i64 %18, 3, !dbg !50
%20 = add i64 %19, 2147450880, !dbg !50
- %21 = inttoptr i64 %20 to i8*, !dbg !50
- %22 = load i8, i8* %21, !dbg !50
+ %21 = inttoptr i64 %20 to ptr, !dbg !50
+ %22 = load i8, ptr %21, !dbg !50
%23 = icmp ne i8 %22, 0, !dbg !50
br i1 %23, label %24, label %30, !dbg !50
unreachable
; <label>:30 ; preds = %24, %5
- store i32 0, i32* %i.i, align 4, !dbg !50, !tbaa !41
- store i64 1172321806, i64* %9, !dbg !52
+ store i32 0, ptr %i.i, align 4, !dbg !50, !tbaa !41
+ store i64 1172321806, ptr %9, !dbg !52
%31 = icmp ne i64 %6, %0, !dbg !52
br i1 %31, label %32, label %39, !dbg !52
; <label>:32 ; preds = %30
%33 = add i64 %15, 0, !dbg !52
- %34 = inttoptr i64 %33 to i64*, !dbg !52
- store i64 -723401728380766731, i64* %34, !dbg !52
+ %34 = inttoptr i64 %33 to ptr, !dbg !52
+ store i64 -723401728380766731, ptr %34, !dbg !52
%35 = add i64 %6, 56, !dbg !52
- %36 = inttoptr i64 %35 to i64*, !dbg !52
- %37 = load i64, i64* %36, !dbg !52
- %38 = inttoptr i64 %37 to i8*, !dbg !52
- store i8 0, i8* %38, !dbg !52
+ %36 = inttoptr i64 %35 to ptr, !dbg !52
+ %37 = load i64, ptr %36, !dbg !52
+ %38 = inttoptr i64 %37 to ptr, !dbg !52
+ store i8 0, ptr %38, !dbg !52
br label %42, !dbg !52
; <label>:39 ; preds = %30
%40 = add i64 %15, 0, !dbg !52
- %41 = inttoptr i64 %40 to i64*, !dbg !52
- store i64 0, i64* %41, !dbg !52
+ %41 = inttoptr i64 %40 to ptr, !dbg !52
+ store i64 0, ptr %41, !dbg !52
br label %42, !dbg !52
; <label>:42 ; preds = %39, %32
ret void, !dbg !52
}
-declare i32 @_ZN1A5m_fn1Ev(%struct.A*) #2
+declare i32 @_ZN1A5m_fn1Ev(ptr) #2
; Function Attrs: nounwind readnone
declare void @llvm.dbg.value(metadata, metadata, metadata) #3
declare void @__asan_storeN(i64, i64)
-declare i8* @__asan_memmove(i8*, i8*, i64)
+declare ptr @__asan_memmove(ptr, ptr, i64)
-declare i8* @__asan_memcpy(i8*, i8*, i64)
+declare ptr @__asan_memcpy(ptr, ptr, i64)
-declare i8* @__asan_memset(i8*, i32, i64)
+declare ptr @__asan_memset(ptr, i32, i64)
declare void @__asan_handle_no_return()
entry:
%c = alloca i32, align 4
tail call void @llvm.dbg.value(metadata i32 13, metadata !10, metadata !16), !dbg !17
- store volatile i32 13, i32* %c, align 4, !dbg !18
+ store volatile i32 13, ptr %c, align 4, !dbg !18
%call = tail call i32 @_Z4funcv(), !dbg !19
tail call void @llvm.dbg.value(metadata i32 %call, metadata !10, metadata !16), !dbg !17
- store volatile i32 %call, i32* %c, align 4, !dbg !19
- tail call void @llvm.dbg.value(metadata i32* %c, metadata !10, metadata !21), !dbg !17
- %c.0.c.0. = load volatile i32, i32* %c, align 4, !dbg !20
+ store volatile i32 %call, ptr %c, align 4, !dbg !19
+ tail call void @llvm.dbg.value(metadata ptr %c, metadata !10, metadata !21), !dbg !17
+ %c.0.c.0. = load volatile i32, ptr %c, align 4, !dbg !20
ret i32 %c.0.c.0., !dbg !20
}
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
-define i32 @bar(i32 %X, i32* %A) !dbg !5 {
+define i32 @bar(i32 %X, ptr %A) !dbg !5 {
entry:
%cmp5 = icmp sgt i32 %X, 0, !dbg !7
br i1 %cmp5, label %for.body.lr.ph, label %for.end, !dbg !9
%i.06 = phi i32 [ 0, %for.body.lr.ph ], [ %inc, %for.inc ]
%call = call i32 @foo(i32 %i.06), !dbg !10
%idxprom = sext i32 %i.06 to i64, !dbg !11
- %arrayidx = getelementptr inbounds i32, i32* %A, i64 %idxprom, !dbg !11
- store i32 %call, i32* %arrayidx, align 4, !dbg !12
+ %arrayidx = getelementptr inbounds i32, ptr %A, i64 %idxprom, !dbg !11
+ store i32 %call, ptr %arrayidx, align 4, !dbg !12
br label %for.inc, !dbg !11
for.inc:
br label %for.end, !dbg !9
for.end:
- %0 = load i32, i32* %A, align 4, !dbg !17
+ %0 = load i32, ptr %A, align 4, !dbg !17
ret i32 %0, !dbg !18
}
; PR 2613.
%struct.__class_type_info_pseudo = type { %struct.__type_info_pseudo }
-%struct.__type_info_pseudo = type { i8*, i8* }
-%struct.test1 = type { i32 (...)** }
+%struct.__type_info_pseudo = type { ptr, ptr }
+%struct.test1 = type { ptr }
-@_ZTV5test1 = weak_odr constant [4 x i32 (...)*] [i32 (...)* null, i32 (...)* bitcast (%struct.__class_type_info_pseudo* @_ZTI5test1 to i32 (...)*), i32 (...)* bitcast (void (%struct.test1*)* @_ZN5test1D1Ev to i32 (...)*), i32 (...)* bitcast (void (%struct.test1*)* @_ZN5test1D0Ev to i32 (...)*)], align 32 ; <[4 x i32 (...)*]*> [#uses=1]
-@_ZTI5test1 = weak_odr constant %struct.__class_type_info_pseudo { %struct.__type_info_pseudo { i8* getelementptr (i8, i8* bitcast ([0 x i32 (...)*]* @_ZTVN10__cxxabiv117__class_type_infoE to i8*), i64 16), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @_ZTS5test1, i64 0, i64 0) } }, align 16 ; <%struct.__class_type_info_pseudo*> [#uses=1]
-@_ZTVN10__cxxabiv117__class_type_infoE = external constant [0 x i32 (...)*] ; <[0 x i32 (...)*]*> [#uses=1]
-@_ZTS5test1 = weak_odr constant [7 x i8] c"5test1\00" ; <[7 x i8]*> [#uses=2]
+@_ZTV5test1 = weak_odr constant [4 x ptr] [ptr null, ptr @_ZTI5test1, ptr @_ZN5test1D1Ev, ptr @_ZN5test1D0Ev], align 32 ; <ptr> [#uses=1]
+@_ZTI5test1 = weak_odr constant %struct.__class_type_info_pseudo { %struct.__type_info_pseudo { ptr getelementptr (i8, ptr @_ZTVN10__cxxabiv117__class_type_infoE, i64 16), ptr @_ZTS5test1 } }, align 16 ; <ptr> [#uses=1]
+@_ZTVN10__cxxabiv117__class_type_infoE = external constant [0 x ptr] ; <ptr> [#uses=1]
+@_ZTS5test1 = weak_odr constant [7 x i8] c"5test1\00" ; <ptr> [#uses=2]
define i32 @main() nounwind ssp {
entry:
- %retval = alloca i32 ; <i32*> [#uses=2]
- %0 = alloca i32 ; <i32*> [#uses=2]
- %tst = alloca %struct.test1 ; <%struct.test1*> [#uses=1]
+ %retval = alloca i32 ; <ptr> [#uses=2]
+ %0 = alloca i32 ; <ptr> [#uses=2]
+ %tst = alloca %struct.test1 ; <ptr> [#uses=1]
%"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0]
- call void @llvm.dbg.declare(metadata %struct.test1* %tst, metadata !0, metadata !DIExpression()), !dbg !21
- call void @_ZN5test1C1Ev(%struct.test1* %tst) nounwind, !dbg !22
- store i32 0, i32* %0, align 4, !dbg !23
- %1 = load i32, i32* %0, align 4, !dbg !23 ; <i32> [#uses=1]
- store i32 %1, i32* %retval, align 4, !dbg !23
+ call void @llvm.dbg.declare(metadata ptr %tst, metadata !0, metadata !DIExpression()), !dbg !21
+ call void @_ZN5test1C1Ev(ptr %tst) nounwind, !dbg !22
+ store i32 0, ptr %0, align 4, !dbg !23
+ %1 = load i32, ptr %0, align 4, !dbg !23 ; <i32> [#uses=1]
+ store i32 %1, ptr %retval, align 4, !dbg !23
br label %return, !dbg !23
return: ; preds = %entry
- %retval1 = load i32, i32* %retval, !dbg !23 ; <i32> [#uses=1]
+ %retval1 = load i32, ptr %retval, !dbg !23 ; <i32> [#uses=1]
ret i32 %retval1, !dbg !23
}
-define linkonce_odr void @_ZN5test1C1Ev(%struct.test1* %this) nounwind ssp align 2 {
+define linkonce_odr void @_ZN5test1C1Ev(ptr %this) nounwind ssp align 2 {
entry:
- %this_addr = alloca %struct.test1* ; <%struct.test1**> [#uses=2]
+ %this_addr = alloca ptr ; <ptr> [#uses=2]
%"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0]
- call void @llvm.dbg.declare(metadata %struct.test1** %this_addr, metadata !24, metadata !DIExpression()), !dbg !28
- store %struct.test1* %this, %struct.test1** %this_addr
- %0 = load %struct.test1*, %struct.test1** %this_addr, align 8, !dbg !28 ; <%struct.test1*> [#uses=1]
- %1 = getelementptr inbounds %struct.test1, %struct.test1* %0, i32 0, i32 0, !dbg !28 ; <i32 (...)***> [#uses=1]
- store i32 (...)** getelementptr inbounds ([4 x i32 (...)*], [4 x i32 (...)*]* @_ZTV5test1, i64 0, i64 2), i32 (...)*** %1, align 8, !dbg !28
+ call void @llvm.dbg.declare(metadata ptr %this_addr, metadata !24, metadata !DIExpression()), !dbg !28
+ store ptr %this, ptr %this_addr
+ %0 = load ptr, ptr %this_addr, align 8, !dbg !28 ; <ptr> [#uses=1]
+ store ptr getelementptr inbounds ([4 x ptr], ptr @_ZTV5test1, i64 0, i64 2), ptr %0, align 8, !dbg !28
br label %return, !dbg !28
return: ; preds = %entry
declare void @llvm.dbg.declare(metadata, metadata, metadata) nounwind readnone
-define linkonce_odr void @_ZN5test1D1Ev(%struct.test1* %this) nounwind ssp align 2 {
+define linkonce_odr void @_ZN5test1D1Ev(ptr %this) nounwind ssp align 2 {
entry:
- %this_addr = alloca %struct.test1* ; <%struct.test1**> [#uses=3]
+ %this_addr = alloca ptr ; <ptr> [#uses=3]
%"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0]
- call void @llvm.dbg.declare(metadata %struct.test1** %this_addr, metadata !32, metadata !DIExpression()), !dbg !34
- store %struct.test1* %this, %struct.test1** %this_addr
- %0 = load %struct.test1*, %struct.test1** %this_addr, align 8, !dbg !35 ; <%struct.test1*> [#uses=1]
- %1 = getelementptr inbounds %struct.test1, %struct.test1* %0, i32 0, i32 0, !dbg !35 ; <i32 (...)***> [#uses=1]
- store i32 (...)** getelementptr inbounds ([4 x i32 (...)*], [4 x i32 (...)*]* @_ZTV5test1, i64 0, i64 2), i32 (...)*** %1, align 8, !dbg !35
+ call void @llvm.dbg.declare(metadata ptr %this_addr, metadata !32, metadata !DIExpression()), !dbg !34
+ store ptr %this, ptr %this_addr
+ %0 = load ptr, ptr %this_addr, align 8, !dbg !35 ; <ptr> [#uses=1]
+ store ptr getelementptr inbounds ([4 x ptr], ptr @_ZTV5test1, i64 0, i64 2), ptr %0, align 8, !dbg !35
br label %bb, !dbg !37
bb: ; preds = %entry
- %2 = trunc i32 0 to i8, !dbg !37 ; <i8> [#uses=1]
- %toBool = icmp ne i8 %2, 0, !dbg !37 ; <i1> [#uses=1]
+ %1 = trunc i32 0 to i8, !dbg !37 ; <i8> [#uses=1]
+ %toBool = icmp ne i8 %1, 0, !dbg !37 ; <i1> [#uses=1]
br i1 %toBool, label %bb1, label %bb2, !dbg !37
bb1: ; preds = %bb
- %3 = load %struct.test1*, %struct.test1** %this_addr, align 8, !dbg !37 ; <%struct.test1*> [#uses=1]
- %4 = bitcast %struct.test1* %3 to i8*, !dbg !37 ; <i8*> [#uses=1]
- call void @_ZdlPv(i8* %4) nounwind, !dbg !37
+ %2 = load ptr, ptr %this_addr, align 8, !dbg !37 ; <ptr> [#uses=1]
+ call void @_ZdlPv(ptr %2) nounwind, !dbg !37
br label %bb2, !dbg !37
bb2: ; preds = %bb1, %bb
ret void, !dbg !37
}
-define linkonce_odr void @_ZN5test1D0Ev(%struct.test1* %this) nounwind ssp align 2 {
+define linkonce_odr void @_ZN5test1D0Ev(ptr %this) nounwind ssp align 2 {
entry:
- %this_addr = alloca %struct.test1* ; <%struct.test1**> [#uses=3]
+ %this_addr = alloca ptr ; <ptr> [#uses=3]
%"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0]
- call void @llvm.dbg.declare(metadata %struct.test1** %this_addr, metadata !38, metadata !DIExpression()), !dbg !40
- store %struct.test1* %this, %struct.test1** %this_addr
- %0 = load %struct.test1*, %struct.test1** %this_addr, align 8, !dbg !41 ; <%struct.test1*> [#uses=1]
- %1 = getelementptr inbounds %struct.test1, %struct.test1* %0, i32 0, i32 0, !dbg !41 ; <i32 (...)***> [#uses=1]
- store i32 (...)** getelementptr inbounds ([4 x i32 (...)*], [4 x i32 (...)*]* @_ZTV5test1, i64 0, i64 2), i32 (...)*** %1, align 8, !dbg !41
+ call void @llvm.dbg.declare(metadata ptr %this_addr, metadata !38, metadata !DIExpression()), !dbg !40
+ store ptr %this, ptr %this_addr
+ %0 = load ptr, ptr %this_addr, align 8, !dbg !41 ; <ptr> [#uses=1]
+ store ptr getelementptr inbounds ([4 x ptr], ptr @_ZTV5test1, i64 0, i64 2), ptr %0, align 8, !dbg !41
br label %bb, !dbg !43
bb: ; preds = %entry
- %2 = trunc i32 1 to i8, !dbg !43 ; <i8> [#uses=1]
- %toBool = icmp ne i8 %2, 0, !dbg !43 ; <i1> [#uses=1]
+ %1 = trunc i32 1 to i8, !dbg !43 ; <i8> [#uses=1]
+ %toBool = icmp ne i8 %1, 0, !dbg !43 ; <i1> [#uses=1]
br i1 %toBool, label %bb1, label %bb2, !dbg !43
bb1: ; preds = %bb
- %3 = load %struct.test1*, %struct.test1** %this_addr, align 8, !dbg !43 ; <%struct.test1*> [#uses=1]
- %4 = bitcast %struct.test1* %3 to i8*, !dbg !43 ; <i8*> [#uses=1]
- call void @_ZdlPv(i8* %4) nounwind, !dbg !43
+ %2 = load ptr, ptr %this_addr, align 8, !dbg !43 ; <ptr> [#uses=1]
+ call void @_ZdlPv(ptr %2) nounwind, !dbg !43
br label %bb2, !dbg !43
bb2: ; preds = %bb1, %bb
ret void, !dbg !43
}
-declare void @_ZdlPv(i8*) nounwind
+declare void @_ZdlPv(ptr) nounwind
!llvm.dbg.cu = !{!4}
!0 = !DILocalVariable(name: "tst", line: 13, scope: !1, file: !4, type: !8)
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
target triple = "x86_64-apple-darwin12.0.0"
-@_ZTIi = external constant i8*
+@_ZTIi = external constant ptr
@global_var = external global i32
; copy of above function with multiple returns
%retval = alloca i32, align 4
%k.addr = alloca i32, align 4
%k2 = alloca i32, align 4
- store i32 %k, i32* %k.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %k.addr, metadata !13, metadata !DIExpression()), !dbg !14
- call void @llvm.dbg.declare(metadata i32* %k2, metadata !15, metadata !DIExpression()), !dbg !16
- %0 = load i32, i32* %k.addr, align 4, !dbg !16
+ store i32 %k, ptr %k.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %k.addr, metadata !13, metadata !DIExpression()), !dbg !14
+ call void @llvm.dbg.declare(metadata ptr %k2, metadata !15, metadata !DIExpression()), !dbg !16
+ %0 = load i32, ptr %k.addr, align 4, !dbg !16
%call = call i32 @_Z8test_exti(i32 %0), !dbg !16
- store i32 %call, i32* %k2, align 4, !dbg !16
- %1 = load i32, i32* %k2, align 4, !dbg !17
+ store i32 %call, ptr %k2, align 4, !dbg !16
+ %1 = load i32, ptr %k2, align 4, !dbg !17
%cmp = icmp sgt i32 %1, 100, !dbg !17
br i1 %cmp, label %if.then, label %if.end, !dbg !17
if.then: ; preds = %entry
- %2 = load i32, i32* %k2, align 4, !dbg !18
- store i32 %2, i32* %retval, !dbg !18
+ %2 = load i32, ptr %k2, align 4, !dbg !18
+ store i32 %2, ptr %retval, !dbg !18
br label %return, !dbg !18
if.end: ; preds = %entry
- store i32 0, i32* %retval, !dbg !19
- %3 = load i32, i32* %retval, !dbg !20 ; hand-edited
+ store i32 0, ptr %retval, !dbg !19
+ %3 = load i32, ptr %retval, !dbg !20 ; hand-edited
ret i32 %3, !dbg !20 ; hand-edited
return: ; preds = %if.end, %if.then
- %4 = load i32, i32* %retval, !dbg !20
+ %4 = load i32, ptr %retval, !dbg !20
ret i32 %4, !dbg !20
}
declare i32 @_Z8test_exti(i32)
-define i32 @_Z5test2v() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) !dbg !10 {
+define i32 @_Z5test2v() personality ptr @__gxx_personality_v0 !dbg !10 {
entry:
- %exn.slot = alloca i8*
+ %exn.slot = alloca ptr
%ehselector.slot = alloca i32
%e = alloca i32, align 4
- %0 = load i32, i32* @global_var, align 4, !dbg !21
+ %0 = load i32, ptr @global_var, align 4, !dbg !21
%call = invoke i32 @_Z4testi(i32 %0)
to label %invoke.cont unwind label %lpad, !dbg !21
br label %try.cont, !dbg !23
lpad: ; preds = %entry
- %1 = landingpad { i8*, i32 }
- catch i8* bitcast (i8** @_ZTIi to i8*), !dbg !21
- %2 = extractvalue { i8*, i32 } %1, 0, !dbg !21
- store i8* %2, i8** %exn.slot, !dbg !21
- %3 = extractvalue { i8*, i32 } %1, 1, !dbg !21
- store i32 %3, i32* %ehselector.slot, !dbg !21
+ %1 = landingpad { ptr, i32 }
+ catch ptr @_ZTIi, !dbg !21
+ %2 = extractvalue { ptr, i32 } %1, 0, !dbg !21
+ store ptr %2, ptr %exn.slot, !dbg !21
+ %3 = extractvalue { ptr, i32 } %1, 1, !dbg !21
+ store i32 %3, ptr %ehselector.slot, !dbg !21
br label %catch.dispatch, !dbg !21
catch.dispatch: ; preds = %lpad
- %sel = load i32, i32* %ehselector.slot, !dbg !23
- %4 = call i32 @llvm.eh.typeid.for(i8* bitcast (i8** @_ZTIi to i8*)) #2, !dbg !23
+ %sel = load i32, ptr %ehselector.slot, !dbg !23
+ %4 = call i32 @llvm.eh.typeid.for(ptr @_ZTIi) #2, !dbg !23
%matches = icmp eq i32 %sel, %4, !dbg !23
br i1 %matches, label %catch, label %eh.resume, !dbg !23
catch: ; preds = %catch.dispatch
- call void @llvm.dbg.declare(metadata i32* %e, metadata !24, metadata !DIExpression()), !dbg !25
- %exn = load i8*, i8** %exn.slot, !dbg !23
- %5 = call i8* @__cxa_begin_catch(i8* %exn) #2, !dbg !23
- %6 = bitcast i8* %5 to i32*, !dbg !23
- %7 = load i32, i32* %6, align 4, !dbg !23
- store i32 %7, i32* %e, align 4, !dbg !23
- store i32 0, i32* @global_var, align 4, !dbg !26
+ call void @llvm.dbg.declare(metadata ptr %e, metadata !24, metadata !DIExpression()), !dbg !25
+ %exn = load ptr, ptr %exn.slot, !dbg !23
+ %5 = call ptr @__cxa_begin_catch(ptr %exn) #2, !dbg !23
+ %6 = load i32, ptr %5, align 4, !dbg !23
+ store i32 %6, ptr %e, align 4, !dbg !23
+ store i32 0, ptr @global_var, align 4, !dbg !26
call void @__cxa_end_catch() #2, !dbg !28
br label %try.cont, !dbg !28
try.cont: ; preds = %catch, %invoke.cont
- store i32 1, i32* @global_var, align 4, !dbg !29
+ store i32 1, ptr @global_var, align 4, !dbg !29
ret i32 0, !dbg !30
eh.resume: ; preds = %catch.dispatch
- %exn1 = load i8*, i8** %exn.slot, !dbg !23
- %sel2 = load i32, i32* %ehselector.slot, !dbg !23
- %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn1, 0, !dbg !23
- %lpad.val3 = insertvalue { i8*, i32 } %lpad.val, i32 %sel2, 1, !dbg !23
- resume { i8*, i32 } %lpad.val3, !dbg !23
+ %exn1 = load ptr, ptr %exn.slot, !dbg !23
+ %sel2 = load i32, ptr %ehselector.slot, !dbg !23
+ %lpad.val = insertvalue { ptr, i32 } undef, ptr %exn1, 0, !dbg !23
+ %lpad.val3 = insertvalue { ptr, i32 } %lpad.val, i32 %sel2, 1, !dbg !23
+ resume { ptr, i32 } %lpad.val3, !dbg !23
}
declare i32 @__gxx_personality_v0(...)
; Function Attrs: nounwind readnone
-declare i32 @llvm.eh.typeid.for(i8*) #1
+declare i32 @llvm.eh.typeid.for(ptr) #1
-declare i8* @__cxa_begin_catch(i8*)
+declare ptr @__cxa_begin_catch(ptr)
declare void @__cxa_end_catch()
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
target triple = "x86_64-apple-darwin12.0.0"
-@_ZTIi = external constant i8*
+@_ZTIi = external constant ptr
@global_var = external global i32
define i32 @_Z4testi(i32 %k) !dbg !4 {
%retval = alloca i32, align 4
%k.addr = alloca i32, align 4
%k2 = alloca i32, align 4
- store i32 %k, i32* %k.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %k.addr, metadata !13, metadata !DIExpression()), !dbg !14
- call void @llvm.dbg.declare(metadata i32* %k2, metadata !15, metadata !DIExpression()), !dbg !16
- %0 = load i32, i32* %k.addr, align 4, !dbg !16
+ store i32 %k, ptr %k.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %k.addr, metadata !13, metadata !DIExpression()), !dbg !14
+ call void @llvm.dbg.declare(metadata ptr %k2, metadata !15, metadata !DIExpression()), !dbg !16
+ %0 = load i32, ptr %k.addr, align 4, !dbg !16
%call = call i32 @_Z8test_exti(i32 %0), !dbg !16
- store i32 %call, i32* %k2, align 4, !dbg !16
- %1 = load i32, i32* %k2, align 4, !dbg !17
+ store i32 %call, ptr %k2, align 4, !dbg !16
+ %1 = load i32, ptr %k2, align 4, !dbg !17
%cmp = icmp sgt i32 %1, 100, !dbg !17
br i1 %cmp, label %if.then, label %if.end, !dbg !17
if.then: ; preds = %entry
- %2 = load i32, i32* %k2, align 4, !dbg !18
- store i32 %2, i32* %retval, !dbg !18
+ %2 = load i32, ptr %k2, align 4, !dbg !18
+ store i32 %2, ptr %retval, !dbg !18
br label %return, !dbg !18
if.end: ; preds = %entry
- store i32 0, i32* %retval, !dbg !19
+ store i32 0, ptr %retval, !dbg !19
br label %return, !dbg !19
return: ; preds = %if.end, %if.then
- %3 = load i32, i32* %retval, !dbg !20
+ %3 = load i32, ptr %retval, !dbg !20
ret i32 %3, !dbg !20
}
declare i32 @_Z8test_exti(i32)
-define i32 @_Z5test2v() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) !dbg !10 {
+define i32 @_Z5test2v() personality ptr @__gxx_personality_v0 !dbg !10 {
entry:
- %exn.slot = alloca i8*
+ %exn.slot = alloca ptr
%ehselector.slot = alloca i32
%e = alloca i32, align 4
- %0 = load i32, i32* @global_var, align 4, !dbg !21
+ %0 = load i32, ptr @global_var, align 4, !dbg !21
%call = invoke i32 @_Z4testi(i32 %0)
to label %invoke.cont unwind label %lpad, !dbg !21
br label %try.cont, !dbg !23
lpad: ; preds = %entry
- %1 = landingpad { i8*, i32 }
- catch i8* bitcast (i8** @_ZTIi to i8*), !dbg !21
- %2 = extractvalue { i8*, i32 } %1, 0, !dbg !21
- store i8* %2, i8** %exn.slot, !dbg !21
- %3 = extractvalue { i8*, i32 } %1, 1, !dbg !21
- store i32 %3, i32* %ehselector.slot, !dbg !21
+ %1 = landingpad { ptr, i32 }
+ catch ptr @_ZTIi, !dbg !21
+ %2 = extractvalue { ptr, i32 } %1, 0, !dbg !21
+ store ptr %2, ptr %exn.slot, !dbg !21
+ %3 = extractvalue { ptr, i32 } %1, 1, !dbg !21
+ store i32 %3, ptr %ehselector.slot, !dbg !21
br label %catch.dispatch, !dbg !21
catch.dispatch: ; preds = %lpad
- %sel = load i32, i32* %ehselector.slot, !dbg !23
- %4 = call i32 @llvm.eh.typeid.for(i8* bitcast (i8** @_ZTIi to i8*)) #2, !dbg !23
+ %sel = load i32, ptr %ehselector.slot, !dbg !23
+ %4 = call i32 @llvm.eh.typeid.for(ptr @_ZTIi) #2, !dbg !23
%matches = icmp eq i32 %sel, %4, !dbg !23
br i1 %matches, label %catch, label %eh.resume, !dbg !23
catch: ; preds = %catch.dispatch
- call void @llvm.dbg.declare(metadata i32* %e, metadata !24, metadata !DIExpression()), !dbg !25
- %exn = load i8*, i8** %exn.slot, !dbg !23
- %5 = call i8* @__cxa_begin_catch(i8* %exn) #2, !dbg !23
- %6 = bitcast i8* %5 to i32*, !dbg !23
- %7 = load i32, i32* %6, align 4, !dbg !23
- store i32 %7, i32* %e, align 4, !dbg !23
- store i32 0, i32* @global_var, align 4, !dbg !26
+ call void @llvm.dbg.declare(metadata ptr %e, metadata !24, metadata !DIExpression()), !dbg !25
+ %exn = load ptr, ptr %exn.slot, !dbg !23
+ %5 = call ptr @__cxa_begin_catch(ptr %exn) #2, !dbg !23
+ %6 = load i32, ptr %5, align 4, !dbg !23
+ store i32 %6, ptr %e, align 4, !dbg !23
+ store i32 0, ptr @global_var, align 4, !dbg !26
call void @__cxa_end_catch() #2, !dbg !28
br label %try.cont, !dbg !28
try.cont: ; preds = %catch, %invoke.cont
- store i32 1, i32* @global_var, align 4, !dbg !29
+ store i32 1, ptr @global_var, align 4, !dbg !29
ret i32 0, !dbg !30
eh.resume: ; preds = %catch.dispatch
- %exn1 = load i8*, i8** %exn.slot, !dbg !23
- %sel2 = load i32, i32* %ehselector.slot, !dbg !23
- %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn1, 0, !dbg !23
- %lpad.val3 = insertvalue { i8*, i32 } %lpad.val, i32 %sel2, 1, !dbg !23
- resume { i8*, i32 } %lpad.val3, !dbg !23
+ %exn1 = load ptr, ptr %exn.slot, !dbg !23
+ %sel2 = load i32, ptr %ehselector.slot, !dbg !23
+ %lpad.val = insertvalue { ptr, i32 } undef, ptr %exn1, 0, !dbg !23
+ %lpad.val3 = insertvalue { ptr, i32 } %lpad.val, i32 %sel2, 1, !dbg !23
+ resume { ptr, i32 } %lpad.val3, !dbg !23
}
declare i32 @__gxx_personality_v0(...)
; Function Attrs: nounwind readnone
-declare i32 @llvm.eh.typeid.for(i8*) #1
+declare i32 @llvm.eh.typeid.for(ptr) #1
-declare i8* @__cxa_begin_catch(i8*)
+declare ptr @__cxa_begin_catch(ptr)
declare void @__cxa_end_catch()
; Function Attrs: nounwind uwtable
define void @callee() #0 {
entry:
- store i32 1, i32* @a, align 4
- store i32 2, i32* @b, align 4, !dbg !11
+ store i32 1, ptr @a, align 4
+ store i32 2, ptr @b, align 4, !dbg !11
ret void
}
%b.i3 = alloca i8, align 1
%retval.i = alloca i32, align 4
%b.i = alloca i8, align 1
- call void @llvm.dbg.declare(metadata i8* %b.i, metadata !16, metadata !DIExpression()), !dbg !19
+ call void @llvm.dbg.declare(metadata ptr %b.i, metadata !16, metadata !DIExpression()), !dbg !19
%call.i = call zeroext i1 @_Z1fv(), !dbg !19
%frombool.i = zext i1 %call.i to i8, !dbg !19
- store i8 %frombool.i, i8* %b.i, align 1, !dbg !19
- %0 = load i8, i8* %b.i, align 1, !dbg !19
+ store i8 %frombool.i, ptr %b.i, align 1, !dbg !19
+ %0 = load i8, ptr %b.i, align 1, !dbg !19
%tobool.i = trunc i8 %0 to i1, !dbg !19
br i1 %tobool.i, label %if.then.i, label %if.end.i, !dbg !19
if.then.i: ; preds = %entry
- store i32 1, i32* %retval.i, !dbg !21
+ store i32 1, ptr %retval.i, !dbg !21
br label %_Z2f1v.exit, !dbg !21
if.end.i: ; preds = %entry
- store i32 2, i32* %retval.i, !dbg !22
+ store i32 2, ptr %retval.i, !dbg !22
br label %_Z2f1v.exit, !dbg !22
_Z2f1v.exit: ; preds = %if.then.i, %if.end.i
- %1 = load i32, i32* %retval.i, !dbg !23
- call void @llvm.dbg.declare(metadata i8* %b.i3, metadata !24, metadata !DIExpression()), !dbg !27
+ %1 = load i32, ptr %retval.i, !dbg !23
+ call void @llvm.dbg.declare(metadata ptr %b.i3, metadata !24, metadata !DIExpression()), !dbg !27
%call.i4 = call zeroext i1 @_Z1fv(), !dbg !27
%frombool.i5 = zext i1 %call.i4 to i8, !dbg !27
- store i8 %frombool.i5, i8* %b.i3, align 1, !dbg !27
- %2 = load i8, i8* %b.i3, align 1, !dbg !27
+ store i8 %frombool.i5, ptr %b.i3, align 1, !dbg !27
+ %2 = load i8, ptr %b.i3, align 1, !dbg !27
%tobool.i6 = trunc i8 %2 to i1, !dbg !27
br i1 %tobool.i6, label %if.then.i7, label %if.end.i8, !dbg !27
if.then.i7: ; preds = %_Z2f1v.exit
- store i32 3, i32* %retval.i2, !dbg !29
+ store i32 3, ptr %retval.i2, !dbg !29
br label %_Z2f2v.exit, !dbg !29
if.end.i8: ; preds = %_Z2f1v.exit
- store i32 4, i32* %retval.i2, !dbg !30
+ store i32 4, ptr %retval.i2, !dbg !30
br label %_Z2f2v.exit, !dbg !30
_Z2f2v.exit: ; preds = %if.then.i7, %if.end.i8
- %3 = load i32, i32* %retval.i2, !dbg !31
+ %3 = load i32, ptr %retval.i2, !dbg !31
ret i32 0, !dbg !32
}
; return p;
; }
-; CHECK: define i32* @gep
+; CHECK: define ptr @gep
; CHECK-LABEL: if.end:
; CHECK: %[[PHI:.*]] = phi i64 [ %call, %if.then ], [ %call1, %if.else ]
-; CHECK: getelementptr inbounds i32, i32* %b, i64 %[[PHI]], !dbg [[gepMergedLoc:![0-9]+]]
-; CHECK: ret i32*
+; CHECK: getelementptr inbounds i32, ptr %b, i64 %[[PHI]], !dbg [[gepMergedLoc:![0-9]+]]
+; CHECK: ret ptr
-define i32* @gep(i32 %a, i32* %b) !dbg !23 {
+define ptr @gep(i32 %a, ptr %b) !dbg !23 {
entry:
%tobool = icmp ne i32 %a, 0, !dbg !24
br i1 %tobool, label %if.then, label %if.else, !dbg !24
if.then: ; preds = %entry
%call = call i64 @foo2(), !dbg !25
- %arrayidx = getelementptr inbounds i32, i32* %b, i64 %call, !dbg !26
+ %arrayidx = getelementptr inbounds i32, ptr %b, i64 %call, !dbg !26
br label %if.end, !dbg !27
if.else: ; preds = %entry
%call1 = call i64 @bar2(), !dbg !28
- %arrayidx2 = getelementptr inbounds i32, i32* %b, i64 %call1, !dbg !29
+ %arrayidx2 = getelementptr inbounds i32, ptr %b, i64 %call1, !dbg !29
br label %if.end
if.end: ; preds = %if.else, %if.then
- %r.0 = phi i32* [ %arrayidx, %if.then ], [ %arrayidx2, %if.else ]
- ret i32* %r.0, !dbg !30
+ %r.0 = phi ptr [ %arrayidx, %if.then ], [ %arrayidx2, %if.else ]
+ ret ptr %r.0, !dbg !30
}
; Test folding of load. Generated from source:
; CHECK: define i32 @load
; CHECK-LABEL: if.end:
-; CHECK: %[[PHI:.*]] = phi i32* [ %call, %if.then ], [ %call1, %if.else ]
-; CHECK: load i32, i32* %[[PHI]],{{.*}} !dbg [[loadMergedLoc:![0-9]+]]
+; CHECK: %[[PHI:.*]] = phi ptr [ %call, %if.then ], [ %call1, %if.else ]
+; CHECK: load i32, ptr %[[PHI]],{{.*}} !dbg [[loadMergedLoc:![0-9]+]]
; CHECK: ret i32
define i32 @load(i32 %a) !dbg !31 {
br i1 %tobool, label %if.then, label %if.else, !dbg !32
if.then: ; preds = %entry
- %call = call i32* @foo3(), !dbg !33
- %0 = load i32, i32* %call, align 4, !dbg !34
+ %call = call ptr @foo3(), !dbg !33
+ %0 = load i32, ptr %call, align 4, !dbg !34
br label %if.end, !dbg !35
if.else: ; preds = %entry
- %call1 = call i32* @bar3(), !dbg !36
- %1 = load i32, i32* %call1, align 4, !dbg !37
+ %call1 = call ptr @bar3(), !dbg !36
+ %1 = load i32, ptr %call1, align 4, !dbg !37
br label %if.end
if.end: ; preds = %if.else, %if.then
declare i32 @bar()
declare i64 @foo2()
declare i64 @bar2()
-declare i32* @foo3()
-declare i32* @bar3()
+declare ptr @foo3()
+declare ptr @bar3()
; CHECK: [[binopMergedLoc]] = !DILocation(line: 0
; CHECK: [[cmpMergedLoc]] = !DILocation(line: 0
source_filename = "linear-dbg-value.ll"
; Function Attrs: nounwind readonly uwtable
-define i32 @foo(i32* nocapture readonly %a, i32 %N) local_unnamed_addr #0 !dbg !6 {
+define i32 @foo(ptr nocapture readonly %a, i32 %N) local_unnamed_addr #0 !dbg !6 {
entry:
%cmp6 = icmp sgt i32 %N, 0, !dbg !11
br i1 %cmp6, label %for.body.preheader, label %for.cond.cleanup, !dbg !15
; CHECK: DBG_VALUE {{.*}} ![[X]], !DIExpression()
%indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %for.body.preheader ]
%x.07 = phi i32 [ %add, %for.body ], [ 0, %for.body.preheader ]
- %arrayidx = getelementptr inbounds i32, i32* %a, i64 %indvars.iv, !dbg !17
- %0 = load i32, i32* %arrayidx, align 4, !dbg !17
+ %arrayidx = getelementptr inbounds i32, ptr %a, i64 %indvars.iv, !dbg !17
+ %0 = load i32, ptr %arrayidx, align 4, !dbg !17
%add = add nsw i32 %0, %x.07, !dbg !17
call void @llvm.dbg.value(metadata i32 %add, metadata !9, metadata !DIExpression()), !dbg !20
%indvars.iv.next = add nuw nsw i64 %indvars.iv, 1, !dbg !21
define i32 @main() #0 !dbg !4 {
entry:
%retval = alloca i32, align 4
- store i32 0, i32* %retval
+ store i32 0, ptr %retval
ret i32 0, !dbg !10
}
entry:
%param.addr = alloca i32, align 4
call void @llvm.dbg.value(metadata i32 %param, metadata !16, metadata !DIExpression()), !dbg !17
- store i32 %param, i32* %param.addr, align 4
- call void @llvm.dbg.value(metadata i32* %param.addr, metadata !16, metadata !DIExpression(DW_OP_deref)), !dbg !17
- call void @llvm.dbg.value(metadata i32* %param.addr, metadata !22, metadata !DIExpression()), !dbg !28
- call void @llvm.dbg.value(metadata i32* %param.addr, metadata !22, metadata !DIExpression()), !dbg !28
- %0 = load i32, i32* %param.addr, align 4, !dbg !30
- store i32 %0, i32* @g, align 4, !dbg !31
+ store i32 %param, ptr %param.addr, align 4
+ call void @llvm.dbg.value(metadata ptr %param.addr, metadata !16, metadata !DIExpression(DW_OP_deref)), !dbg !17
+ call void @llvm.dbg.value(metadata ptr %param.addr, metadata !22, metadata !DIExpression()), !dbg !28
+ call void @llvm.dbg.value(metadata ptr %param.addr, metadata !22, metadata !DIExpression()), !dbg !28
+ %0 = load i32, ptr %param.addr, align 4, !dbg !30
+ store i32 %0, ptr @g, align 4, !dbg !31
ret void, !dbg !32
}
define dso_local void @fun() !dbg !14 {
entry:
- %e.addr.i = alloca i64*, align 8
+ %e.addr.i = alloca ptr, align 8
%local = alloca i64, align 8
- %0 = bitcast i64* %local to i8*, !dbg !19
- call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %0), !dbg !19
+ call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %local), !dbg !19
call void @llvm.dbg.value(metadata i64 0, metadata !18, metadata !DIExpression()), !dbg !20
- store i64 0, i64* %local, align 8, !dbg !21
- call void @llvm.dbg.value(metadata i64* %local, metadata !18, metadata !DIExpression(DW_OP_deref)), !dbg !20
- %1 = bitcast i64** %e.addr.i to i8*, !dbg !26
- call void @llvm.lifetime.start.p0i8(i64 8, i8* %1), !dbg !26
- call void @llvm.dbg.value(metadata i64* %local, metadata !32, metadata !DIExpression()), !dbg !26
- store i64* %local, i64** %e.addr.i, align 8
- %2 = load i64, i64* @a, align 8, !dbg !36
- call void @llvm.dbg.value(metadata i64* %local, metadata !32, metadata !DIExpression()), !dbg !26
- store i64 %2, i64* %local, align 8, !dbg !37
+ store i64 0, ptr %local, align 8, !dbg !21
+ call void @llvm.dbg.value(metadata ptr %local, metadata !18, metadata !DIExpression(DW_OP_deref)), !dbg !20
+ call void @llvm.lifetime.start.p0(i64 8, ptr %e.addr.i), !dbg !26
+ call void @llvm.dbg.value(metadata ptr %local, metadata !32, metadata !DIExpression()), !dbg !26
+ store ptr %local, ptr %e.addr.i, align 8
+ %0 = load i64, ptr @a, align 8, !dbg !36
+ call void @llvm.dbg.value(metadata ptr %local, metadata !32, metadata !DIExpression()), !dbg !26
+ store i64 %0, ptr %local, align 8, !dbg !37
call void (...) @c(), !dbg !38
- %3 = load i32, i32* @b, align 4, !dbg !39
- %tobool.not.i = icmp eq i32 %3, 0, !dbg !39
+ %1 = load i32, ptr @b, align 4, !dbg !39
+ %tobool.not.i = icmp eq i32 %1, 0, !dbg !39
br i1 %tobool.not.i, label %esc.exit, label %if.then.i, !dbg !43
if.then.i: ; preds = %entry
- %4 = load i64*, i64** %e.addr.i, align 8, !dbg !44
- call void @llvm.dbg.value(metadata i64* %4, metadata !32, metadata !DIExpression()), !dbg !26
- store i64 0, i64* %4, align 8, !dbg !45
+ %2 = load ptr, ptr %e.addr.i, align 8, !dbg !44
+ call void @llvm.dbg.value(metadata ptr %2, metadata !32, metadata !DIExpression()), !dbg !26
+ store i64 0, ptr %2, align 8, !dbg !45
br label %esc.exit, !dbg !46
esc.exit: ; preds = %entry, %if.then.i
- %5 = bitcast i64** %e.addr.i to i8*, !dbg !47
- call void @llvm.lifetime.end.p0i8(i64 8, i8* %5), !dbg !47
- %6 = bitcast i64* %local to i8*, !dbg !48
- call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %6), !dbg !48
+ call void @llvm.lifetime.end.p0(i64 8, ptr %e.addr.i), !dbg !47
+ call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %local), !dbg !48
ret void, !dbg !48
}
-declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture)
-declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture)
+declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture)
+declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture)
declare void @llvm.dbg.value(metadata, metadata, metadata)
declare !dbg !49 dso_local void @c(...)
%struct.foo = type { i8 }
; Function Attrs: nounwind uwtable
-define void @_ZN3foo2f1Ev(%struct.foo* %this) #0 align 2 !dbg !14 {
+define void @_ZN3foo2f1Ev(ptr %this) #0 align 2 !dbg !14 {
entry:
- %this.addr = alloca %struct.foo*, align 8
- store %struct.foo* %this, %struct.foo** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %struct.foo** %this.addr, metadata !16, metadata !DIExpression()), !dbg !18
- %this1 = load %struct.foo*, %struct.foo** %this.addr
+ %this.addr = alloca ptr, align 8
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !16, metadata !DIExpression()), !dbg !18
+ %this1 = load ptr, ptr %this.addr
ret void, !dbg !19
}
; CHECK: if.end:
; CHECK-NEXT: %.sink = phi i32 [ 2, %if.else ], [ 1, %if.then ], !dbg ![[dbg:[0-9]+]]
-; CHECK-NEXT: %0 = getelementptr inbounds i32, i32* %a, i64 1, !dbg ![[dbg:[0-9]+]]
-; CHECK-NEXT: store i32 %.sink, i32* %0, align 4, !dbg ![[dbg:[0-9]+]]
+; CHECK-NEXT: %0 = getelementptr inbounds i32, ptr %a, i64 1, !dbg ![[dbg:[0-9]+]]
+; CHECK-NEXT: store i32 %.sink, ptr %0, align 4, !dbg ![[dbg:[0-9]+]]
; CHECK-DAG: ![[dbg]] = !DILocation(line: 0, scope: ![[scp:[0-9]+]]
; CHECK-DAG: ![[scp]] = distinct !DILexicalBlock(scope: ![[fun:[0-9]+]]
; CHECK-DAG: ![[fun]] = distinct !DISubprogram(name: "fun",
-define void @_Z3funPii(i32* nocapture noundef writeonly %a, i32 noundef %cond) !dbg !7 {
+define void @_Z3funPii(ptr nocapture noundef writeonly %a, i32 noundef %cond) !dbg !7 {
entry:
- call void @llvm.dbg.value(metadata i32* %a, metadata !13, metadata !DIExpression()), !dbg !15
+ call void @llvm.dbg.value(metadata ptr %a, metadata !13, metadata !DIExpression()), !dbg !15
call void @llvm.dbg.value(metadata i32 %cond, metadata !14, metadata !DIExpression()), !dbg !15
%tobool.not = icmp eq i32 %cond, 0, !dbg !16
br i1 %tobool.not, label %if.else, label %if.then, !dbg !18
if.then: ; preds = %entry
- %arrayidx = getelementptr inbounds i32, i32* %a, i64 1, !dbg !19
- store i32 1, i32* %arrayidx, align 4, !dbg !20
+ %arrayidx = getelementptr inbounds i32, ptr %a, i64 1, !dbg !19
+ store i32 1, ptr %arrayidx, align 4, !dbg !20
br label %if.end, !dbg !19
if.else: ; preds = %entry
- %arrayidx1 = getelementptr inbounds i32, i32* %a, i64 1, !dbg !25
- store i32 2, i32* %arrayidx1, align 4, !dbg !26
+ %arrayidx1 = getelementptr inbounds i32, ptr %a, i64 1, !dbg !25
+ store i32 2, ptr %arrayidx1, align 4, !dbg !26
br label %if.end
if.end: ; preds = %if.else, %if.then
@_ZN1A1B1iE = global i32 0, align 4, !dbg !131
@_ZN1A1B7var_fwdE = global i32 0, align 4, !dbg !132
-@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__sub_I_debug_info_namespace.cpp, i8* null }]
+@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_debug_info_namespace.cpp, ptr null }]
; Function Attrs: nounwind ssp uwtable
define i32 @_ZN1A1B2f1Ev() #0 !dbg !10 {
define void @_ZN1A1B2f1Ei(i32) #0 !dbg !14 {
entry:
%.addr = alloca i32, align 4
- store i32 %0, i32* %.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %.addr, metadata !61, metadata !62), !dbg !63
+ store i32 %0, ptr %.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %.addr, metadata !61, metadata !62), !dbg !63
ret void, !dbg !64
}
define internal void @__cxx_global_var_init() section "__TEXT,__StaticInit,regular,pure_instructions" !dbg !17 {
entry:
%call = call i32 @_ZN1A1B2f1Ev(), !dbg !65
- store i32 %call, i32* @_ZN1A1B1iE, align 4, !dbg !65
+ store i32 %call, ptr @_ZN1A1B1iE, align 4, !dbg !65
ret void, !dbg !65
}
%retval = alloca i32, align 4
%b.addr = alloca i8, align 1
%frombool = zext i1 %b to i8
- store i8 %frombool, i8* %b.addr, align 1
- call void @llvm.dbg.declare(metadata i8* %b.addr, metadata !66, metadata !62), !dbg !67
- %0 = load i8, i8* %b.addr, align 1, !dbg !68
+ store i8 %frombool, ptr %b.addr, align 1
+ call void @llvm.dbg.declare(metadata ptr %b.addr, metadata !66, metadata !62), !dbg !67
+ %0 = load i8, ptr %b.addr, align 1, !dbg !68
%tobool = trunc i8 %0 to i1, !dbg !68
br i1 %tobool, label %if.then, label %if.end, !dbg !68
if.then: ; preds = %entry
- %1 = load i32, i32* @_ZN1A1B1iE, align 4, !dbg !69
- store i32 %1, i32* %retval, !dbg !69
+ %1 = load i32, ptr @_ZN1A1B1iE, align 4, !dbg !69
+ store i32 %1, ptr %retval, !dbg !69
br label %return, !dbg !69
if.end: ; preds = %entry
- %2 = load i32, i32* @_ZN1A1B1iE, align 4, !dbg !70
- %3 = load i32, i32* @_ZN1A1B1iE, align 4, !dbg !70
+ %2 = load i32, ptr @_ZN1A1B1iE, align 4, !dbg !70
+ %3 = load i32, ptr @_ZN1A1B1iE, align 4, !dbg !70
%add = add nsw i32 %2, %3, !dbg !70
- %4 = load i32, i32* @_ZN1A1B1iE, align 4, !dbg !70
+ %4 = load i32, ptr @_ZN1A1B1iE, align 4, !dbg !70
%add1 = add nsw i32 %add, %4, !dbg !70
- store i32 %add1, i32* %retval, !dbg !70
+ store i32 %add1, ptr %retval, !dbg !70
br label %return, !dbg !70
return: ; preds = %if.end, %if.then
- %5 = load i32, i32* %retval, !dbg !71
+ %5 = load i32, ptr %retval, !dbg !71
ret i32 %5, !dbg !71
}
define internal void @__cxx_global_var_init1() section "__TEXT,__StaticInit,regular,pure_instructions" !dbg !25 {
entry:
- %0 = load i32, i32* @_ZN1A1B1iE, align 4, !dbg !72
- store i32 %0, i32* @_ZN1A1B7var_fwdE, align 4, !dbg !72
+ %0 = load i32, ptr @_ZN1A1B1iE, align 4, !dbg !72
+ store i32 %0, ptr @_ZN1A1B7var_fwdE, align 4, !dbg !72
ret void, !dbg !72
}
entry:
%i.addr.i = alloca i32, align 4
%retval = alloca i32, align 4
- store i32 0, i32* %retval
- %0 = load i32, i32* @x, align 4, !dbg !16
- store i32 %0, i32* %i.addr.i, align 4
- call void @llvm.dbg.declare(metadata i32* %i.addr.i, metadata !117, metadata !DIExpression()), !dbg !18
- %1 = load i32, i32* %i.addr.i, align 4, !dbg !18
+ store i32 0, ptr %retval
+ %0 = load i32, ptr @x, align 4, !dbg !16
+ store i32 %0, ptr %i.addr.i, align 4
+ call void @llvm.dbg.declare(metadata ptr %i.addr.i, metadata !117, metadata !DIExpression()), !dbg !18
+ %1 = load i32, ptr %i.addr.i, align 4, !dbg !18
%mul.i = mul nsw i32 %1, 2, !dbg !18
ret i32 %mul.i, !dbg !16
}
define i32 @_ZN2ns4funcEi(i32 %i) #1 !dbg !9 {
entry:
%i.addr = alloca i32, align 4
- store i32 %i, i32* %i.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %i.addr, metadata !17, metadata !DIExpression()), !dbg !19
- %0 = load i32, i32* %i.addr, align 4, !dbg !19
+ store i32 %i, ptr %i.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %i.addr, metadata !17, metadata !DIExpression()), !dbg !19
+ %0 = load i32, ptr %i.addr, align 4, !dbg !19
%mul = mul nsw i32 %0, 2, !dbg !19
ret i32 %mul, !dbg !19
}
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
-define dso_local i32 @foo(i32*) !dbg !7 {
- %2 = load i32, i32* %0, align 4, !dbg !23
+define dso_local i32 @foo(ptr) !dbg !7 {
+ %2 = load i32, ptr %0, align 4, !dbg !23
call void @llvm.dbg.value(metadata i32 %2, metadata !16, metadata !DIExpression()), !dbg !23
- %3 = load i32, i32* %0, align 4, !dbg !23
+ %3 = load i32, ptr %0, align 4, !dbg !23
call void @llvm.dbg.value(metadata i32 %3, metadata !17, metadata !DIExpression()), !dbg !23
- store i32 0, i32* %0, align 4, !dbg !23
+ store i32 0, ptr %0, align 4, !dbg !23
ret i32 %3, !dbg !23
}
; accidentally overwrote the concrete argument and was lost.
; IR generated from the following source compiled with clang -g:
-; void fn1(void *);
+; void fn1(ptr);
; void fn2(int, int, int, int);
; void fn3();
; void fn8();
%struct.C = type { i32 }
-@x = global %struct.C* null, align 8, !dbg !0
+@x = global ptr null, align 8, !dbg !0
; Function Attrs: nounwind
define void @_Z3fn6v() #0 !dbg !20 {
entry:
tail call void @_Z3fn8v() #3, !dbg !23
- %0 = load %struct.C*, %struct.C** @x, align 8, !dbg !24, !tbaa !25
- tail call void @llvm.dbg.value(metadata %struct.C* %0, metadata !29, metadata !32) #3, !dbg !33
+ %0 = load ptr, ptr @x, align 8, !dbg !24, !tbaa !25
+ tail call void @llvm.dbg.value(metadata ptr %0, metadata !29, metadata !32) #3, !dbg !33
tail call void @_Z3fn8v() #3, !dbg !34
- %b.i = getelementptr inbounds %struct.C, %struct.C* %0, i64 0, i32 0, !dbg !35
- %1 = load i32, i32* %b.i, align 4, !dbg !35, !tbaa !37
+ %1 = load i32, ptr %0, align 4, !dbg !35, !tbaa !37
%tobool.i = icmp eq i32 %1, 0, !dbg !35
br i1 %tobool.i, label %_ZN1C5m_fn2Ev.exit, label %if.then.i, !dbg !35
; Function Attrs: nounwind
-define linkonce_odr void @_ZN1C5m_fn2Ev(%struct.C* nocapture readonly %this) #0 align 2 !dbg !30 {
+define linkonce_odr void @_ZN1C5m_fn2Ev(ptr nocapture readonly %this) #0 align 2 !dbg !30 {
entry:
- tail call void @llvm.dbg.value(metadata %struct.C* %this, metadata !29, metadata !32), !dbg !44
+ tail call void @llvm.dbg.value(metadata ptr %this, metadata !29, metadata !32), !dbg !44
tail call void @_Z3fn8v() #3, !dbg !45
- %b = getelementptr inbounds %struct.C, %struct.C* %this, i64 0, i32 0, !dbg !46
- %0 = load i32, i32* %b, align 4, !dbg !46, !tbaa !37
+ %0 = load i32, ptr %this, align 4, !dbg !46, !tbaa !37
%tobool = icmp eq i32 %0, 0, !dbg !46
br i1 %tobool, label %if.end, label %if.then, !dbg !46
if.end: ; preds = %if.then, %entry
tail call void @_Z3fn8v() #3, !dbg !48
- %1 = load %struct.C*, %struct.C** @x, align 8, !dbg !52, !tbaa !25
- tail call void @llvm.dbg.value(metadata %struct.C* %1, metadata !29, metadata !32) #3, !dbg !53
+ %1 = load ptr, ptr @x, align 8, !dbg !52, !tbaa !25
+ tail call void @llvm.dbg.value(metadata ptr %1, metadata !29, metadata !32) #3, !dbg !53
tail call void @_Z3fn8v() #3, !dbg !54
- %b.i.i = getelementptr inbounds %struct.C, %struct.C* %1, i64 0, i32 0, !dbg !55
- %2 = load i32, i32* %b.i.i, align 4, !dbg !55, !tbaa !37
+ %2 = load i32, ptr %1, align 4, !dbg !55, !tbaa !37
%tobool.i.i = icmp eq i32 %2, 0, !dbg !55
br i1 %tobool.i.i, label %_Z3fn6v.exit, label %if.then.i.i, !dbg !55
tailrecurse: ; preds = %tailrecurse.backedge, %entry
tail call void @_Z3fn8v() #3, !dbg !59
- %0 = load %struct.C*, %struct.C** @x, align 8, !dbg !61, !tbaa !25
- tail call void @llvm.dbg.value(metadata %struct.C* %0, metadata !29, metadata !32) #3, !dbg !62
+ %0 = load ptr, ptr @x, align 8, !dbg !61, !tbaa !25
+ tail call void @llvm.dbg.value(metadata ptr %0, metadata !29, metadata !32) #3, !dbg !62
tail call void @_Z3fn8v() #3, !dbg !63
- %b.i.i = getelementptr inbounds %struct.C, %struct.C* %0, i64 0, i32 0, !dbg !64
- %1 = load i32, i32* %b.i.i, align 4, !dbg !64, !tbaa !37
+ %1 = load i32, ptr %0, align 4, !dbg !64, !tbaa !37
%tobool.i.i = icmp eq i32 %1, 0, !dbg !64
br i1 %tobool.i.i, label %tailrecurse.backedge, label %if.then.i.i, !dbg !64
; Function Attrs: nounwind
define void @_Z3fn4v() #0 !dbg !66 {
entry:
- %0 = load %struct.C*, %struct.C** @x, align 8, !dbg !67, !tbaa !25
- tail call void @_ZN1C5m_fn2Ev(%struct.C* %0), !dbg !67
+ %0 = load ptr, ptr @x, align 8, !dbg !67, !tbaa !25
+ tail call void @_ZN1C5m_fn2Ev(ptr %0), !dbg !67
ret void, !dbg !67
}
; Function Attrs: nounwind
define void @_Z3fn5v() #0 !dbg !68 {
entry:
- %0 = load %struct.C*, %struct.C** @x, align 8, !dbg !69, !tbaa !25
- tail call void @_ZN1C5m_fn2Ev(%struct.C* %0), !dbg !69
+ %0 = load ptr, ptr @x, align 8, !dbg !69, !tbaa !25
+ tail call void @_ZN1C5m_fn2Ev(ptr %0), !dbg !69
ret void, !dbg !69
}
; CHECK-NOT: DW_AT_type
; Generated with clang from:
-; void foo(void* __restrict__ dst) {
+; void foo(ptr __restrict__ dst) {
; }
; Function Attrs: nounwind uwtable
-define void @_Z3fooPv(i8* noalias %dst) #0 !dbg !4 {
+define void @_Z3fooPv(ptr noalias %dst) #0 !dbg !4 {
entry:
- %dst.addr = alloca i8*, align 8
- store i8* %dst, i8** %dst.addr, align 8
- call void @llvm.dbg.declare(metadata i8** %dst.addr, metadata !13, metadata !DIExpression()), !dbg !14
+ %dst.addr = alloca ptr, align 8
+ store ptr %dst, ptr %dst.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %dst.addr, metadata !13, metadata !DIExpression()), !dbg !14
ret void, !dbg !15
}
; return Tmp;
; }
; } Dd;
-; void *operator new(size_t, void *);
+; ptr operator new(size_t, ptr);
; struct F {
; F(D Err) : HasError() {
; C *e = (C *)(ErrorStorage.buffer);
define void @"\01?fn3@@YAXXZ"() local_unnamed_addr !dbg !6 {
entry:
%tmp = alloca %struct.F, align 8
- %0 = bitcast %struct.F* %tmp to i8*
- call void @llvm.lifetime.start.p0i8(i64 16, i8* %0)
- call void @llvm.dbg.declare(metadata %struct.F* %tmp, metadata !10, metadata !DIExpression()), !dbg !14
+ call void @llvm.lifetime.start.p0(i64 16, ptr %tmp)
+ call void @llvm.dbg.declare(metadata ptr %tmp, metadata !10, metadata !DIExpression()), !dbg !14
; CHECK-NOT: !DIExpression(DW_OP_LLVM_fragment, 32, 96)
; CHECK: call void @llvm.dbg.value(metadata i32 0, metadata !10, metadata !DIExpression())
- %_Myval2.i.i.i.i.i = bitcast %struct.F* %tmp to i32*
- store i32 0, i32* %_Myval2.i.i.i.i.i, align 8
+ store i32 0, ptr %tmp, align 8
ret void
}
; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #0
+declare void @llvm.lifetime.start.p0(i64, ptr nocapture) #0
; Function Attrs: nounwind readnone speculatable
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
; x2 a(x4());
; return a;
; }
-; void *operator new(size_t, void *);
+; ptr operator new(size_t, ptr);
; struct B {
; B() { new (x8.x1) x2(x5()); }
; A x8;
define void @"\01?x9@@YAXXZ"() local_unnamed_addr !dbg !8 {
entry:
%agg.tmp.ensured = alloca %struct.B, align 8
- call void @llvm.dbg.declare(metadata %struct.B* %agg.tmp.ensured, metadata !11, metadata !DIExpression()), !dbg !24
+ call void @llvm.dbg.declare(metadata ptr %agg.tmp.ensured, metadata !11, metadata !DIExpression()), !dbg !24
%call.i.i = call i32 @"\01?x4@@YAHXZ"(), !dbg !46, !noalias !47
- %x3.i.i.i = bitcast %struct.B* %agg.tmp.ensured to i32*, !dbg !50
- store i32 0, i32* %x3.i.i.i, align 4, !dbg !50, !tbaa !57, !alias.scope !47
+ store i32 0, ptr %agg.tmp.ensured, align 4, !dbg !50, !tbaa !57, !alias.scope !47
; CHECK: call void @llvm.dbg.value(metadata i32 0, metadata ![[A:.*]], metadata !DIExpression())
; CHECK: ![[A]] = !DILocalVariable(name: "a",
ret void, !dbg !62
target triple = "x86_64-unknown-linux-gnu"
; Function Attrs: noinline nounwind uwtable
-define i32 @foo(i32 %a, i32* %d) !dbg !6 {
+define i32 @foo(i32 %a, ptr %d) !dbg !6 {
entry:
%tobool = icmp ne i32 %a, 0, !dbg !8
br i1 %tobool, label %if.then, label %if.else, !dbg !8
if.then: ; preds = %entry
%call = call i32 @bar(i32 %a), !dbg !9
- store i32 %call, i32* %d, align 4, !dbg !10
+ store i32 %call, ptr %d, align 4, !dbg !10
br label %if.end, !dbg !11
if.else: ; preds = %entry
%call1 = call i32 @bar2(i32 %a), !dbg !12
- store i32 %call1, i32* %d, align 4, !dbg !13
+ store i32 %call1, ptr %d, align 4, !dbg !13
br label %if.end
if.end: ; preds = %if.else, %if.then
; D::virt<bar> t;
; }
-%struct.C = type { i32 (...)** }
+%struct.C = type { ptr }
%struct.bar = type { i8 }
%"struct.D::Nested" = type { i8 }
%"struct.D::Nested2" = type { i8 }
-%"struct.D::virt" = type { %struct.bar* }
+%"struct.D::virt" = type { ptr }
-@_ZTV1C = unnamed_addr constant [3 x i8*] [i8* null, i8* bitcast ({ i8*, i8* }* @_ZTI1C to i8*), i8* bitcast (void (%struct.C*)* @_ZN1C3fooEv to i8*)]
-@_ZTVN10__cxxabiv117__class_type_infoE = external global i8*
+@_ZTV1C = unnamed_addr constant [3 x ptr] [ptr null, ptr @_ZTI1C, ptr @_ZN1C3fooEv]
+@_ZTVN10__cxxabiv117__class_type_infoE = external global ptr
@_ZTS1C = constant [3 x i8] c"1C\00"
-@_ZTI1C = unnamed_addr constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv117__class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @_ZTS1C, i32 0, i32 0) }
+@_ZTI1C = unnamed_addr constant { ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv117__class_type_infoE, i64 2), ptr @_ZTS1C }
; Function Attrs: nounwind ssp uwtable
-define void @_ZN1C3fooEv(%struct.C* %this) unnamed_addr #0 align 2 !dbg !31 {
+define void @_ZN1C3fooEv(ptr %this) unnamed_addr #0 align 2 !dbg !31 {
entry:
- %this.addr = alloca %struct.C*, align 8
- store %struct.C* %this, %struct.C** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %struct.C** %this.addr, metadata !36, metadata !DIExpression()), !dbg !38
- %this1 = load %struct.C*, %struct.C** %this.addr
+ %this.addr = alloca ptr, align 8
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !36, metadata !DIExpression()), !dbg !38
+ %this1 = load ptr, ptr %this.addr
ret void, !dbg !39
}
%A = alloca [3 x %struct.bar], align 1
%B2 = alloca %struct.bar, align 1
%e = alloca %"struct.D::Nested", align 1
- %p = alloca %"struct.D::Nested2"*, align 8
+ %p = alloca ptr, align 8
%t = alloca %"struct.D::virt", align 8
- call void @llvm.dbg.declare(metadata %struct.bar* %B, metadata !40, metadata !DIExpression()), !dbg !42
- call void @llvm.dbg.declare(metadata [3 x %struct.bar]* %A, metadata !43, metadata !DIExpression()), !dbg !47
- call void @llvm.dbg.declare(metadata %struct.bar* %B2, metadata !48, metadata !DIExpression()), !dbg !50
- call void @llvm.dbg.declare(metadata %"struct.D::Nested"* %e, metadata !51, metadata !DIExpression()), !dbg !52
- call void @llvm.dbg.declare(metadata %"struct.D::Nested2"** %p, metadata !53, metadata !DIExpression()), !dbg !55
- call void @llvm.dbg.declare(metadata %"struct.D::virt"* %t, metadata !56, metadata !DIExpression()), !dbg !57
+ call void @llvm.dbg.declare(metadata ptr %B, metadata !40, metadata !DIExpression()), !dbg !42
+ call void @llvm.dbg.declare(metadata ptr %A, metadata !43, metadata !DIExpression()), !dbg !47
+ call void @llvm.dbg.declare(metadata ptr %B2, metadata !48, metadata !DIExpression()), !dbg !50
+ call void @llvm.dbg.declare(metadata ptr %e, metadata !51, metadata !DIExpression()), !dbg !52
+ call void @llvm.dbg.declare(metadata ptr %p, metadata !53, metadata !DIExpression()), !dbg !55
+ call void @llvm.dbg.declare(metadata ptr %t, metadata !56, metadata !DIExpression()), !dbg !57
ret void, !dbg !58
}
define void @foo() nounwind !dbg !5 {
entry:
- %puts = tail call i32 @puts(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str, i32 0, i32 0)), !dbg !23
+ %puts = tail call i32 @puts(ptr @str), !dbg !23
ret void, !dbg !25
}
-declare i32 @puts(i8* nocapture) nounwind
+declare i32 @puts(ptr nocapture) nounwind
-define i32 @main(i32 %argc, i8** nocapture %argv) nounwind !dbg !12 {
+define i32 @main(i32 %argc, ptr nocapture %argv) nounwind !dbg !12 {
entry:
tail call void @llvm.dbg.value(metadata i32 %argc, metadata !21, metadata !DIExpression()), !dbg !26
; Avoid talking about the pointer size in debug info because that's target dependent
- tail call void @llvm.dbg.value(metadata i8** %argv, metadata !22, metadata !DIExpression(DW_OP_deref, DW_OP_deref)), !dbg !27
- %puts = tail call i32 @puts(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @str1, i32 0, i32 0)), !dbg !28
+ tail call void @llvm.dbg.value(metadata ptr %argv, metadata !22, metadata !DIExpression(DW_OP_deref, DW_OP_deref)), !dbg !27
+ %puts = tail call i32 @puts(ptr @str1), !dbg !28
tail call void @foo() nounwind, !dbg !30
ret i32 0, !dbg !31
}
source_filename = "test/DebugInfo/Generic/typedef.ll"
-@y = global i8* null, align 8, !dbg !0
+@y = global ptr null, align 8, !dbg !0
!llvm.dbg.cu = !{!5}
!llvm.module.flags = !{!8, !9}
define void @foo(i32 %i) #0 !dbg !4 {
entry:
%i.addr = alloca i32, align 4
- store i32 %i, i32* %i.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %i.addr, metadata !12, metadata !DIExpression()), !dbg !13
- %0 = load i32, i32* %i.addr, align 4, !dbg !14
+ store i32 %i, ptr %i.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %i.addr, metadata !12, metadata !DIExpression()), !dbg !13
+ %0 = load i32, ptr %i.addr, align 4, !dbg !14
switch i32 %0, label %sw.default [
], !dbg !14
; CHECK: DW_AT_alignment
; CHECK: DW_AT_data_member_location [DW_FORM_data1] (0x00)
-%F = type { [0 x i8], {}*, [8 x i8] }
+%F = type { [0 x i8], ptr, [8 x i8] }
%"F::Nope" = type {}
define internal void @_ZN2e34main17h934ff72f9a38d4bbE() unnamed_addr #0 !dbg !5 {
start:
%qq = alloca %F, align 8
- call void @llvm.dbg.declare(metadata %F* %qq, metadata !10, metadata !28), !dbg !29
- %0 = bitcast %F* %qq to {}**, !dbg !29
- store {}* null, {}** %0, !dbg !29
- %1 = bitcast %F* %qq to %"F::Nope"*, !dbg !29
+ call void @llvm.dbg.declare(metadata ptr %qq, metadata !10, metadata !28), !dbg !29
+ store ptr null, ptr %qq, !dbg !29
ret void, !dbg !30
}
define void @_Z1biz(i32 %c, ...) #0 !dbg !14 {
%1 = alloca i32, align 4
%a = alloca %struct.A, align 1
- %fptr = alloca void (i32, ...)*, align 8
- store i32 %c, i32* %1, align 4
- call void @llvm.dbg.declare(metadata i32* %1, metadata !21, metadata !DIExpression()), !dbg !22
- call void @llvm.dbg.declare(metadata %struct.A* %a, metadata !23, metadata !DIExpression()), !dbg !24
- call void @llvm.dbg.declare(metadata void (i32, ...)** %fptr, metadata !25, metadata !DIExpression(DW_OP_deref)), !dbg !27
- store void (i32, ...)* @_Z1biz, void (i32, ...)** %fptr, align 8, !dbg !27
+ %fptr = alloca ptr, align 8
+ store i32 %c, ptr %1, align 4
+ call void @llvm.dbg.declare(metadata ptr %1, metadata !21, metadata !DIExpression()), !dbg !22
+ call void @llvm.dbg.declare(metadata ptr %a, metadata !23, metadata !DIExpression()), !dbg !24
+ call void @llvm.dbg.declare(metadata ptr %fptr, metadata !25, metadata !DIExpression(DW_OP_deref)), !dbg !27
+ store ptr @_Z1biz, ptr %fptr, align 8, !dbg !27
ret void, !dbg !28
}
define i32 @main() #0 !dbg !4 {
entry:
%retval = alloca i32, align 4
- store i32 0, i32* %retval
+ store i32 0, ptr %retval
ret i32 0, !dbg !10
}
; CHECK: DW_TAG_subprogram [
; CHECK-NOT: DW_AT_vtable_elem_location
-%struct.A = type { i32 (...)** }
+%struct.A = type { ptr }
-@_ZTV1A = unnamed_addr constant [4 x i8*] [i8* null, i8* null, i8* bitcast (void (%struct.A*)* @_ZN1A1fEv to i8*), i8* bitcast (void (%struct.A*)* @_ZN1A1gEv to i8*)], align 8
+@_ZTV1A = unnamed_addr constant [4 x ptr] [ptr null, ptr null, ptr @_ZN1A1fEv, ptr @_ZN1A1gEv], align 8
-define void @_ZN1A1fEv(%struct.A* %this) unnamed_addr !dbg !18 {
+define void @_ZN1A1fEv(ptr %this) unnamed_addr !dbg !18 {
ret void
}
-define void @_ZN1A1gEv(%struct.A* %this) unnamed_addr !dbg !19 {
+define void @_ZN1A1gEv(ptr %this) unnamed_addr !dbg !19 {
ret void
}
; Function Attrs: nounwind optsize ssp uwtable
define void @f() local_unnamed_addr #0 !dbg !8 {
%1 = alloca i64, align 8
- %2 = bitcast i64* %1 to i8*, !dbg !15
- call void @llvm.lifetime.start.p0i8(i64 8, i8* %2), !dbg !15
- call void @llvm.dbg.declare(metadata i64* %1, metadata !12, metadata !DIExpression()), !dbg !15
- %3 = call i64 (...) @g() #4, !dbg !15
- store volatile i64 %3, i64* %1, align 8, !dbg !15
- %4 = load volatile i64, i64* %1, align 8, !dbg !15
- %5 = icmp eq i64 %4, 0, !dbg !15
- br i1 %5, label %6, label %8, !dbg !15
+ call void @llvm.lifetime.start.p0(i64 8, ptr %1), !dbg !15
+ call void @llvm.dbg.declare(metadata ptr %1, metadata !12, metadata !DIExpression()), !dbg !15
+ %2 = call i64 (...) @g() #4, !dbg !15
+ store volatile i64 %2, ptr %1, align 8, !dbg !15
+ %3 = load volatile i64, ptr %1, align 8, !dbg !15
+ %4 = icmp eq i64 %3, 0, !dbg !15
+ br i1 %4, label %5, label %7, !dbg !15
; <label>:6: ; preds = %0
- %7 = call i64 (...) @g() #4, !dbg !15
- br label %8, !dbg !15
+ %6 = call i64 (...) @g() #4, !dbg !15
+ br label %7, !dbg !15
-; <label>:8: ; preds = %6, %0
- %9 = load volatile i64, i64* %1, align 8, !dbg !15
- call void @h(i64 %9) #4, !dbg !15
- call void @llvm.lifetime.end.p0i8(i64 8, i8* %2), !dbg !15
+; <label>:8: ; preds = %5, %0
+ %8 = load volatile i64, ptr %1, align 8, !dbg !15
+ call void @h(i64 %8) #4, !dbg !15
+ call void @llvm.lifetime.end.p0(i64 8, ptr %1), !dbg !15
ret void, !dbg !15
}
; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1
+declare void @llvm.lifetime.start.p0(i64, ptr nocapture) #1
; Function Attrs: nounwind readnone speculatable
declare void @llvm.dbg.declare(metadata, metadata, metadata) #2
declare void @h(i64) local_unnamed_addr #3
; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1
+declare void @llvm.lifetime.end.p0(i64, ptr nocapture) #1
attributes #0 = { nounwind optsize ssp uwtable }
attributes #1 = { argmemonly nounwind }
@key = external local_unnamed_addr global [15 x i8], align 1
@.str = external unnamed_addr constant [33 x i8], align 1
-define internal i32 @0(i8*) local_unnamed_addr !dbg !15 !type !23 {
- tail call void @llvm.dbg.value(metadata i8* %0, i64 0, metadata !22, metadata !24), !dbg !25
- %2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str, i32 0, i32 0), i8* %0), !dbg !26
+define internal i32 @0(ptr) local_unnamed_addr !dbg !15 !type !23 {
+ tail call void @llvm.dbg.value(metadata ptr %0, i64 0, metadata !22, metadata !24), !dbg !25
+ %2 = tail call i32 (ptr, ...) @printf(ptr @.str, ptr %0), !dbg !26
br i1 true, label %a, label %b
a: ; preds = %1
c: ; preds = %b, %a
%5 = phi i32 [ %3, %a ], [ %4, %b ]
- %6 = add i32 ptrtoint (i32 (i8*)* @0 to i32), %5
+ %6 = add i32 ptrtoint (ptr @0 to i32), %5
ret i32 %6, !dbg !27
}
-declare i32 @printf(i8* nocapture readonly, ...) local_unnamed_addr
+declare i32 @printf(ptr nocapture readonly, ...) local_unnamed_addr
; Function Attrs: nounwind readnone
declare void @llvm.dbg.value(metadata, i64, metadata, metadata) #0
source_filename = "debugtest-opt.c"
target triple = "wasm32"
-@globl = hidden local_unnamed_addr global i32* null, align 4, !dbg !0
+@globl = hidden local_unnamed_addr global ptr null, align 4, !dbg !0
; Function Attrs: nounwind writeonly
define hidden void @baz(i32 %arg) local_unnamed_addr #0 !dbg !12 {
entry:
%locl = alloca i32, align 4
call void @llvm.dbg.value(metadata i32 %arg, metadata !16, metadata !DIExpression()), !dbg !18
- %0 = bitcast i32* %locl to i8*, !dbg !19
- store i32* %locl, i32** @globl, align 4, !dbg !20, !tbaa !21
+ store ptr %locl, ptr @globl, align 4, !dbg !20, !tbaa !21
ret void, !dbg !25
}
%struct.X = type opaque
%struct.Y = type { i32 }
-define i32 @foo(%struct.X* %x, %struct.Y* %y) nounwind ssp !dbg !1 {
+define i32 @foo(ptr %x, ptr %y) nounwind ssp !dbg !1 {
entry:
- %x_addr = alloca %struct.X* ; <%struct.X**> [#uses=1]
- %y_addr = alloca %struct.Y* ; <%struct.Y**> [#uses=1]
- %retval = alloca i32 ; <i32*> [#uses=2]
- %0 = alloca i32 ; <i32*> [#uses=2]
+ %x_addr = alloca ptr ; <ptr> [#uses=1]
+ %y_addr = alloca ptr ; <ptr> [#uses=1]
+ %retval = alloca i32 ; <ptr> [#uses=2]
+ %0 = alloca i32 ; <ptr> [#uses=2]
%"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0]
- call void @llvm.dbg.declare(metadata %struct.X** %x_addr, metadata !0, metadata !DIExpression()), !dbg !13
- store %struct.X* %x, %struct.X** %x_addr
- call void @llvm.dbg.declare(metadata %struct.Y** %y_addr, metadata !14, metadata !DIExpression()), !dbg !13
- store %struct.Y* %y, %struct.Y** %y_addr
- store i32 0, i32* %0, align 4, !dbg !13
- %1 = load i32, i32* %0, align 4, !dbg !13 ; <i32> [#uses=1]
- store i32 %1, i32* %retval, align 4, !dbg !13
+ call void @llvm.dbg.declare(metadata ptr %x_addr, metadata !0, metadata !DIExpression()), !dbg !13
+ store ptr %x, ptr %x_addr
+ call void @llvm.dbg.declare(metadata ptr %y_addr, metadata !14, metadata !DIExpression()), !dbg !13
+ store ptr %y, ptr %y_addr
+ store i32 0, ptr %0, align 4, !dbg !13
+ %1 = load i32, ptr %0, align 4, !dbg !13 ; <i32> [#uses=1]
+ store i32 %1, ptr %retval, align 4, !dbg !13
br label %return, !dbg !13
return: ; preds = %entry
- %retval1 = load i32, i32* %retval, !dbg !13 ; <i32> [#uses=1]
+ %retval1 = load i32, ptr %retval, !dbg !13 ; <i32> [#uses=1]
ret i32 %retval1, !dbg !15
}
; Function Attrs: nounwind
define i32 @f() #0 !dbg !8 {
%LOC = alloca i32, align 4
- call void @llvm.dbg.declare(metadata i32* %LOC, metadata !11, metadata !13), !dbg !14
- %1 = load i32, i32* @GLB, align 4, !dbg !15
- store i32 %1, i32* %LOC, align 4, !dbg !15
- %2 = load i32, i32* @GLB, align 4, !dbg !16
+ call void @llvm.dbg.declare(metadata ptr %LOC, metadata !11, metadata !13), !dbg !14
+ %1 = load i32, ptr @GLB, align 4, !dbg !15
+ store i32 %1, ptr %LOC, align 4, !dbg !15
+ %2 = load i32, ptr @GLB, align 4, !dbg !16
ret i32 %2, !dbg !16
}
; CHECK: b_ref
; CHECK-NOT: AT_bit_size
-%struct.bar = type { %struct.baz, %struct.baz* }
+%struct.bar = type { %struct.baz, ptr }
%struct.baz = type { i32 }
-define i32 @main(i32 %argc, i8** %argv) uwtable ssp !dbg !29 {
+define i32 @main(i32 %argc, ptr %argv) uwtable ssp !dbg !29 {
entry:
%retval = alloca i32, align 4
%argc.addr = alloca i32, align 4
- %argv.addr = alloca i8**, align 8
+ %argv.addr = alloca ptr, align 8
%myBar = alloca %struct.bar, align 8
- store i32 0, i32* %retval
- store i32 %argc, i32* %argc.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %argc.addr, metadata !49, metadata !DIExpression()), !dbg !50
- store i8** %argv, i8*** %argv.addr, align 8
- call void @llvm.dbg.declare(metadata i8*** %argv.addr, metadata !51, metadata !DIExpression()), !dbg !52
- call void @llvm.dbg.declare(metadata %struct.bar* %myBar, metadata !53, metadata !DIExpression()), !dbg !55
- call void @_ZN3barC1Ei(%struct.bar* %myBar, i32 1), !dbg !56
+ store i32 0, ptr %retval
+ store i32 %argc, ptr %argc.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %argc.addr, metadata !49, metadata !DIExpression()), !dbg !50
+ store ptr %argv, ptr %argv.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %argv.addr, metadata !51, metadata !DIExpression()), !dbg !52
+ call void @llvm.dbg.declare(metadata ptr %myBar, metadata !53, metadata !DIExpression()), !dbg !55
+ call void @_ZN3barC1Ei(ptr %myBar, i32 1), !dbg !56
ret i32 0, !dbg !57
}
declare void @llvm.dbg.declare(metadata, metadata, metadata) nounwind readnone
-define linkonce_odr void @_ZN3barC1Ei(%struct.bar* %this, i32 %x) unnamed_addr uwtable ssp align 2 !dbg !37 {
+define linkonce_odr void @_ZN3barC1Ei(ptr %this, i32 %x) unnamed_addr uwtable ssp align 2 !dbg !37 {
entry:
- %this.addr = alloca %struct.bar*, align 8
+ %this.addr = alloca ptr, align 8
%x.addr = alloca i32, align 4
- store %struct.bar* %this, %struct.bar** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %struct.bar** %this.addr, metadata !58, metadata !DIExpression()), !dbg !59
- store i32 %x, i32* %x.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %x.addr, metadata !60, metadata !DIExpression()), !dbg !61
- %this1 = load %struct.bar*, %struct.bar** %this.addr
- %0 = load i32, i32* %x.addr, align 4, !dbg !62
- call void @_ZN3barC2Ei(%struct.bar* %this1, i32 %0), !dbg !62
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !58, metadata !DIExpression()), !dbg !59
+ store i32 %x, ptr %x.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %x.addr, metadata !60, metadata !DIExpression()), !dbg !61
+ %this1 = load ptr, ptr %this.addr
+ %0 = load i32, ptr %x.addr, align 4, !dbg !62
+ call void @_ZN3barC2Ei(ptr %this1, i32 %0), !dbg !62
ret void, !dbg !62
}
-define linkonce_odr void @_ZN3barC2Ei(%struct.bar* %this, i32 %x) unnamed_addr uwtable ssp align 2 !dbg !40 {
+define linkonce_odr void @_ZN3barC2Ei(ptr %this, i32 %x) unnamed_addr uwtable ssp align 2 !dbg !40 {
entry:
- %this.addr = alloca %struct.bar*, align 8
+ %this.addr = alloca ptr, align 8
%x.addr = alloca i32, align 4
- store %struct.bar* %this, %struct.bar** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %struct.bar** %this.addr, metadata !63, metadata !DIExpression()), !dbg !64
- store i32 %x, i32* %x.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %x.addr, metadata !65, metadata !DIExpression()), !dbg !66
- %this1 = load %struct.bar*, %struct.bar** %this.addr
- %b = getelementptr inbounds %struct.bar, %struct.bar* %this1, i32 0, i32 0, !dbg !67
- %0 = load i32, i32* %x.addr, align 4, !dbg !67
- call void @_ZN3bazC1Ei(%struct.baz* %b, i32 %0), !dbg !67
- %1 = getelementptr inbounds %struct.bar, %struct.bar* %this1, i32 0, i32 1, !dbg !67
- %b2 = getelementptr inbounds %struct.bar, %struct.bar* %this1, i32 0, i32 0, !dbg !67
- store %struct.baz* %b2, %struct.baz** %1, align 8, !dbg !67
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !63, metadata !DIExpression()), !dbg !64
+ store i32 %x, ptr %x.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %x.addr, metadata !65, metadata !DIExpression()), !dbg !66
+ %this1 = load ptr, ptr %this.addr
+ %0 = load i32, ptr %x.addr, align 4, !dbg !67
+ call void @_ZN3bazC1Ei(ptr %this1, i32 %0), !dbg !67
+ %1 = getelementptr inbounds %struct.bar, ptr %this1, i32 0, i32 1, !dbg !67
+ store ptr %this1, ptr %1, align 8, !dbg !67
ret void, !dbg !68
}
-define linkonce_odr void @_ZN3bazC1Ei(%struct.baz* %this, i32 %a) unnamed_addr uwtable ssp align 2 !dbg !43 {
+define linkonce_odr void @_ZN3bazC1Ei(ptr %this, i32 %a) unnamed_addr uwtable ssp align 2 !dbg !43 {
entry:
- %this.addr = alloca %struct.baz*, align 8
+ %this.addr = alloca ptr, align 8
%a.addr = alloca i32, align 4
- store %struct.baz* %this, %struct.baz** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %struct.baz** %this.addr, metadata !70, metadata !DIExpression()), !dbg !71
- store i32 %a, i32* %a.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %a.addr, metadata !72, metadata !DIExpression()), !dbg !73
- %this1 = load %struct.baz*, %struct.baz** %this.addr
- %0 = load i32, i32* %a.addr, align 4, !dbg !74
- call void @_ZN3bazC2Ei(%struct.baz* %this1, i32 %0), !dbg !74
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !70, metadata !DIExpression()), !dbg !71
+ store i32 %a, ptr %a.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %a.addr, metadata !72, metadata !DIExpression()), !dbg !73
+ %this1 = load ptr, ptr %this.addr
+ %0 = load i32, ptr %a.addr, align 4, !dbg !74
+ call void @_ZN3bazC2Ei(ptr %this1, i32 %0), !dbg !74
ret void, !dbg !74
}
-define linkonce_odr void @_ZN3bazC2Ei(%struct.baz* %this, i32 %a) unnamed_addr nounwind uwtable ssp align 2 !dbg !46 {
+define linkonce_odr void @_ZN3bazC2Ei(ptr %this, i32 %a) unnamed_addr nounwind uwtable ssp align 2 !dbg !46 {
entry:
- %this.addr = alloca %struct.baz*, align 8
+ %this.addr = alloca ptr, align 8
%a.addr = alloca i32, align 4
- store %struct.baz* %this, %struct.baz** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %struct.baz** %this.addr, metadata !75, metadata !DIExpression()), !dbg !76
- store i32 %a, i32* %a.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %a.addr, metadata !77, metadata !DIExpression()), !dbg !78
- %this1 = load %struct.baz*, %struct.baz** %this.addr
- %h = getelementptr inbounds %struct.baz, %struct.baz* %this1, i32 0, i32 0, !dbg !79
- %0 = load i32, i32* %a.addr, align 4, !dbg !79
- store i32 %0, i32* %h, align 4, !dbg !79
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !75, metadata !DIExpression()), !dbg !76
+ store i32 %a, ptr %a.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %a.addr, metadata !77, metadata !DIExpression()), !dbg !78
+ %this1 = load ptr, ptr %this.addr
+ %0 = load i32, ptr %a.addr, align 4, !dbg !79
+ store i32 %0, ptr %this1, align 4, !dbg !79
ret void, !dbg !80
}
; CHECK-NEXT: DW_AT_location (DW_OP_lit2, DW_OP_stack_value)
; CHECK-NEXT: DW_AT_name ("bIsShowingCollision")
-%class.UClient = type { %class.UWorld*, %struct.FFlags }
+%class.UClient = type { ptr, %struct.FFlags }
%class.UWorld = type { i16 }
%struct.FFlags = type { [9 x i8], i32 }
-define dso_local void @_ZN7UClient13ToggleVolumesEv(%class.UClient* nocapture nonnull align 8 dereferenceable(24) %this) local_unnamed_addr align 2 !dbg !8 {
+define dso_local void @_ZN7UClient13ToggleVolumesEv(ptr nocapture nonnull align 8 dereferenceable(24) %this) local_unnamed_addr align 2 !dbg !8 {
entry:
call void @llvm.dbg.value(metadata i72 2, metadata !43, metadata !DIExpression(DW_OP_LLVM_convert, 72, DW_ATE_unsigned, DW_OP_LLVM_convert, 8, DW_ATE_unsigned, DW_OP_stack_value)), !dbg !48
- %World = getelementptr inbounds %class.UClient, %class.UClient* %this, i64 0, i32 0, !dbg !49
- %0 = load %class.UWorld*, %class.UWorld** %World, align 8, !dbg !49, !tbaa !51
- %1 = getelementptr %class.UWorld, %class.UWorld* %0, i64 0, i32 0, !dbg !58
- store i16 2, i16* %1, align 1, !dbg !59
+ %0 = load ptr, ptr %this, align 8, !dbg !49, !tbaa !51
+ store i16 2, ptr %0, align 1, !dbg !59
ret void, !dbg !60
}
%struct.s = type opaque
-@i = common global %struct.s* null, align 8, !dbg !0
+@i = common global ptr null, align 8, !dbg !0
!llvm.dbg.cu = !{!2}
!llvm.module.flags = !{!11, !12}
%struct.A = type { i32 }
-define i32 @_Z3fooP1A(%struct.A* %a) nounwind uwtable ssp !dbg !5 {
+define i32 @_Z3fooP1A(ptr %a) nounwind uwtable ssp !dbg !5 {
entry:
- %a.addr = alloca %struct.A*, align 8
- store %struct.A* %a, %struct.A** %a.addr, align 8
- call void @llvm.dbg.declare(metadata %struct.A** %a.addr, metadata !16, metadata !DIExpression()), !dbg !17
- %0 = load %struct.A*, %struct.A** %a.addr, align 8, !dbg !18
- %b = getelementptr inbounds %struct.A, %struct.A* %0, i32 0, i32 0, !dbg !18
- %1 = load i32, i32* %b, align 4, !dbg !18
+ %a.addr = alloca ptr, align 8
+ store ptr %a, ptr %a.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %a.addr, metadata !16, metadata !DIExpression()), !dbg !17
+ %0 = load ptr, ptr %a.addr, align 8, !dbg !18
+ %1 = load i32, ptr %0, align 4, !dbg !18
ret i32 %1, !dbg !18
}
; Function Attrs: noinline nounwind optnone uwtable
define dso_local void @_Z3foov() #0 !dbg !7 {
%1 = alloca %class.deleted, align 1
- call void @llvm.dbg.declare(metadata %class.deleted* %1, metadata !10, metadata !DIExpression()), !dbg !34
+ call void @llvm.dbg.declare(metadata ptr %1, metadata !10, metadata !DIExpression()), !dbg !34
ret void, !dbg !35
}
%struct.A = type { i8 }
; Function Attrs: nounwind ssp uwtable
-define void @_ZN1AD2Ev(%struct.A* %this) unnamed_addr #0 align 2 !dbg !17 {
+define void @_ZN1AD2Ev(ptr %this) unnamed_addr #0 align 2 !dbg !17 {
entry:
- %this.addr = alloca %struct.A*, align 8
- store %struct.A* %this, %struct.A** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %struct.A** %this.addr, metadata !26, metadata !DIExpression()), !dbg !28
- %this1 = load %struct.A*, %struct.A** %this.addr
+ %this.addr = alloca ptr, align 8
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !26, metadata !DIExpression()), !dbg !28
+ %this1 = load ptr, ptr %this.addr
ret void, !dbg !29
}
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
; Function Attrs: nounwind ssp uwtable
-define void @_ZN1AD1Ev(%struct.A* %this) unnamed_addr #0 align 2 !dbg !18 {
+define void @_ZN1AD1Ev(ptr %this) unnamed_addr #0 align 2 !dbg !18 {
entry:
- %this.addr = alloca %struct.A*, align 8
- store %struct.A* %this, %struct.A** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %struct.A** %this.addr, metadata !30, metadata !DIExpression()), !dbg !31
- %this1 = load %struct.A*, %struct.A** %this.addr
- call void @_ZN1AD2Ev(%struct.A* %this1), !dbg !32
+ %this.addr = alloca ptr, align 8
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !30, metadata !DIExpression()), !dbg !31
+ %this1 = load ptr, ptr %this.addr
+ call void @_ZN1AD2Ev(ptr %this1), !dbg !32
ret void, !dbg !33
}
define void @_Z3foov() #2 !dbg !19 {
entry:
%a = alloca %struct.A, align 1
- call void @llvm.dbg.declare(metadata %struct.A* %a, metadata !34, metadata !DIExpression()), !dbg !35
- call void @_ZN1AC1Ei(%struct.A* %a, i32 1), !dbg !35
- call void @_ZN1AD1Ev(%struct.A* %a), !dbg !36
+ call void @llvm.dbg.declare(metadata ptr %a, metadata !34, metadata !DIExpression()), !dbg !35
+ call void @_ZN1AC1Ei(ptr %a, i32 1), !dbg !35
+ call void @_ZN1AD1Ev(ptr %a), !dbg !36
ret void, !dbg !36
}
-declare void @_ZN1AC1Ei(%struct.A*, i32)
+declare void @_ZN1AC1Ei(ptr, i32)
attributes #0 = { nounwind ssp uwtable }
attributes #1 = { nounwind readnone }
define void @f() nounwind !dbg !0 {
entry:
%call = tail call i32 @g(i32 0, i32 0) nounwind, !dbg !8
- store i32 %call, i32* @a, align 4, !dbg !8
+ store i32 %call, ptr @a, align 4, !dbg !8
tail call void @llvm.dbg.value(metadata i32 1, metadata !5, metadata !DIExpression()), !dbg !13
br label %while.body
while.end: ; preds = %while.body
tail call void @llvm.dbg.value(metadata i32 %mul, metadata !5, metadata !DIExpression()), !dbg !14
%call4 = tail call i32 @g(i32 %mul, i32 0) nounwind, !dbg !15
- store i32 %call4, i32* @a, align 4, !dbg !15
+ store i32 %call4, ptr @a, align 4, !dbg !15
tail call void @llvm.dbg.value(metadata i32 2, metadata !5, metadata !DIExpression()), !dbg !17
br label %while.body9
while.end13: ; preds = %while.body9
tail call void @llvm.dbg.value(metadata i32 %mul12, metadata !5, metadata !DIExpression()), !dbg !18
%call15 = tail call i32 @g(i32 0, i32 %mul12) nounwind, !dbg !19
- store i32 %call15, i32* @a, align 4, !dbg !19
+ store i32 %call15, ptr @a, align 4, !dbg !19
ret void, !dbg !20
}
entry:
%.addr = alloca i32, align 4
%a = alloca %class.A, align 4
- store i32 %0, i32* %.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %.addr, metadata !36, metadata !DIExpression()), !dbg !35
- call void @llvm.dbg.declare(metadata %class.A* %a, metadata !21, metadata !DIExpression()), !dbg !23
- call void @_ZN1AC1Ev(%class.A* %a), !dbg !24
- %m_a = getelementptr inbounds %class.A, %class.A* %a, i32 0, i32 0, !dbg !25
- %1 = load i32, i32* %m_a, align 4, !dbg !25
+ store i32 %0, ptr %.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %.addr, metadata !36, metadata !DIExpression()), !dbg !35
+ call void @llvm.dbg.declare(metadata ptr %a, metadata !21, metadata !DIExpression()), !dbg !23
+ call void @_ZN1AC1Ev(ptr %a), !dbg !24
+ %1 = load i32, ptr %a, align 4, !dbg !25
ret i32 %1, !dbg !25
}
declare void @llvm.dbg.declare(metadata, metadata, metadata) nounwind readnone
-define linkonce_odr void @_ZN1AC1Ev(%class.A* %this) unnamed_addr nounwind uwtable ssp align 2 !dbg !10 {
+define linkonce_odr void @_ZN1AC1Ev(ptr %this) unnamed_addr nounwind uwtable ssp align 2 !dbg !10 {
entry:
- %this.addr = alloca %class.A*, align 8
- store %class.A* %this, %class.A** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %class.A** %this.addr, metadata !26, metadata !DIExpression()), !dbg !28
- %this1 = load %class.A*, %class.A** %this.addr
- call void @_ZN1AC2Ev(%class.A* %this1), !dbg !29
+ %this.addr = alloca ptr, align 8
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !26, metadata !DIExpression()), !dbg !28
+ %this1 = load ptr, ptr %this.addr
+ call void @_ZN1AC2Ev(ptr %this1), !dbg !29
ret void, !dbg !29
}
-define linkonce_odr void @_ZN1AC2Ev(%class.A* %this) unnamed_addr nounwind uwtable ssp align 2 !dbg !20 {
+define linkonce_odr void @_ZN1AC2Ev(ptr %this) unnamed_addr nounwind uwtable ssp align 2 !dbg !20 {
entry:
- %this.addr = alloca %class.A*, align 8
- store %class.A* %this, %class.A** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %class.A** %this.addr, metadata !30, metadata !DIExpression()), !dbg !31
- %this1 = load %class.A*, %class.A** %this.addr
- %m_a = getelementptr inbounds %class.A, %class.A* %this1, i32 0, i32 0, !dbg !32
- store i32 0, i32* %m_a, align 4, !dbg !32
+ %this.addr = alloca ptr, align 8
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !30, metadata !DIExpression()), !dbg !31
+ %this1 = load ptr, ptr %this.addr
+ store i32 0, ptr %this1, align 4, !dbg !32
ret void, !dbg !34
}
define i32 @main() #0 !dbg !4 {
entry:
%retval = alloca i32, align 4
- store i32 0, i32* %retval
+ store i32 0, ptr %retval
ret i32 0, !dbg !10
}
define void @fn4() local_unnamed_addr !dbg !12 {
entry:
%l1.sroa.7.i = alloca [3 x i8], align 1
- tail call void @llvm.dbg.declare(metadata [3 x i8]* %l1.sroa.7.i, metadata !15, metadata !26), !dbg !27
+ tail call void @llvm.dbg.declare(metadata ptr %l1.sroa.7.i, metadata !15, metadata !26), !dbg !27
%i.sroa.4.i = alloca [3 x i8], align 8
- tail call void @llvm.dbg.declare(metadata [3 x i8]* %i.sroa.4.i, metadata !15, metadata !32), !dbg !27
- %0 = load i32, i32* @h, align 4
+ tail call void @llvm.dbg.declare(metadata ptr %i.sroa.4.i, metadata !15, metadata !32), !dbg !27
+ %0 = load i32, ptr @h, align 4
br label %while.body.i.i, !dbg !33
while.body.i.i: ; preds = %while.body.i.i, %entry
br label %while.body.i.i, !dbg !34
fn3.exit: ; No predecessors!
- %1 = load i32, i32* @f, align 4
+ %1 = load i32, ptr @f, align 4
%tobool.i = icmp eq i32 %1, 0
br label %while.body.i
; Function Attrs: nounwind ssp
define i32 @bar() #1 !dbg !8 {
entry:
- %0 = load i32, i32* @i, align 4, !dbg !11
+ %0 = load i32, ptr @i, align 4, !dbg !11
tail call void @llvm.dbg.value(metadata i32 %0, metadata !13, metadata !24), !dbg !25
tail call void @llvm.dbg.declare(metadata !5, metadata !18, metadata !24), !dbg !26
%1 = mul nsw i32 %0, %0, !dbg !27
- store i32 %1, i32* @i, align 4, !dbg !11
+ store i32 %1, ptr @i, align 4, !dbg !11
ret i32 %1, !dbg !28
}
entry:
; CHECK: call void @llvm.dbg.value(metadata i32 4, metadata [[VAR:![0-9]+]], metadata !DIExpression())
call void @llvm.dbg.value(metadata i32 4, metadata !16, metadata !DIExpression()), !dbg !21
- %0 = load volatile i32, i32* @v, align 4, !dbg !22, !tbaa !23
+ %0 = load volatile i32, ptr @v, align 4, !dbg !22, !tbaa !23
%inc = add nsw i32 %0, 1, !dbg !22
- store volatile i32 %inc, i32* @v, align 4, !dbg !22, !tbaa !23
+ store volatile i32 %inc, ptr @v, align 4, !dbg !22, !tbaa !23
; CHECK: call void @llvm.dbg.value(metadata i32 4, metadata [[PTR1:![0-9]+]], metadata !DIExpression(DW_OP_LLVM_implicit_pointer))
call void @llvm.dbg.value(metadata i32 4, metadata !17, metadata !DIExpression(DW_OP_LLVM_implicit_pointer)), !dbg !21
; CHECK: call void @llvm.dbg.value(metadata i32 4, metadata [[PTR2:![0-9]+]], metadata !DIExpression(DW_OP_LLVM_implicit_pointer, DW_OP_LLVM_implicit_pointer))
call void @llvm.dbg.value(metadata i32 4, metadata !19, metadata !DIExpression(DW_OP_LLVM_implicit_pointer, DW_OP_LLVM_implicit_pointer)), !dbg !21
- %1 = load volatile i32, i32* @v, align 4, !dbg !27, !tbaa !23
+ %1 = load volatile i32, ptr @v, align 4, !dbg !27, !tbaa !23
%inc1 = add nsw i32 %1, 1, !dbg !27
- store volatile i32 %inc1, i32* @v, align 4, !dbg !27, !tbaa !23
+ store volatile i32 %inc1, ptr @v, align 4, !dbg !27, !tbaa !23
ret i32 3, !dbg !28
}
define void @fn1(i16 signext %p1) !dbg !16 {
entry:
tail call void @llvm.dbg.value(metadata i16 %p1, metadata !20, metadata !23), !dbg !24
- tail call void @llvm.dbg.declare(metadata %struct.S0* undef, metadata !21, metadata !23), !dbg !25
- tail call void @llvm.dbg.declare(metadata %struct.S0* undef, metadata !22, metadata !23), !dbg !26
+ tail call void @llvm.dbg.declare(metadata ptr undef, metadata !21, metadata !23), !dbg !25
+ tail call void @llvm.dbg.declare(metadata ptr undef, metadata !22, metadata !23), !dbg !26
tail call void @llvm.dbg.value(metadata i32 3, metadata !22, metadata !27), !dbg !26
tail call void @llvm.dbg.value(metadata i32 0, metadata !22, metadata !28), !dbg !26
tail call void @llvm.dbg.value(metadata i16 %p1, metadata !21, metadata !29), !dbg !25
tail call void @llvm.dbg.value(metadata i32 3, metadata !21, metadata !27), !dbg !25
tail call void @llvm.dbg.value(metadata i32 0, metadata !21, metadata !28), !dbg !25
- store i32 3, i32* bitcast (%struct.S0* @a to i32*), align 4, !dbg !30
- store i32 0, i32* getelementptr inbounds (%struct.S0, %struct.S0* @a, i64 0, i32 1), align 4, !dbg !30
+ store i32 3, ptr @a, align 4, !dbg !30
+ store i32 0, ptr getelementptr inbounds (%struct.S0, ptr @a, i64 0, i32 1), align 4, !dbg !30
ret void, !dbg !31
}
}
; Function Attrs: norecurse uwtable
-define weak_odr hidden i32* @_ZTW3var() local_unnamed_addr #1 {
- ret i32* @var
+define weak_odr hidden ptr @_ZTW3var() local_unnamed_addr #1 {
+ ret ptr @var
}
attributes #0 = { norecurse nounwind readnone uwtable }
!12 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "t1", scope: !13, file: !3, line: 4, size: 8, flags: DIFlagTypePassByValue, elements: !4)
!13 = !DINamespace(scope: null)
!14 = !{!15}
-!15 = !DITemplateValueParameter(type: !16, value: i32* @foo)
+!15 = !DITemplateValueParameter(type: !16, value: ptr @foo)
!16 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !17, size: 64)
!17 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
!18 = !{i32 7, !"Dwarf Version", i32 4}
define i32 @foo() #0 !dbg !17 {
entry:
%local_data = alloca %struct.data, align 128
- call void @llvm.dbg.declare(metadata %struct.data* %local_data, metadata !21, metadata !22), !dbg !23
+ call void @llvm.dbg.declare(metadata ptr %local_data, metadata !21, metadata !22), !dbg !23
ret i32 0, !dbg !24
}
; };
;
; class C1 {
-; alignas(64) static void *p;
+; alignas(64) static ptr p;
; };
;
; enum alignas(16) E {
%c1 = alloca %class.C1, align 1
%i = alloca i32, align 32
%Lambda = alloca %class.anon, align 4
- call void @llvm.dbg.declare(metadata %struct.S* %ss, metadata !27, metadata !28), !dbg !29
- call void @llvm.dbg.declare(metadata i32* %e, metadata !30, metadata !28), !dbg !31
- call void @llvm.dbg.declare(metadata %class.C1* %c1, metadata !32, metadata !28), !dbg !37
- call void @llvm.dbg.declare(metadata i32* %i, metadata !38, metadata !28), !dbg !40
- store i32 42, i32* %i, align 32, !dbg !40
- call void @llvm.dbg.declare(metadata %class.anon* %Lambda, metadata !41, metadata !28), !dbg !50
- %0 = getelementptr inbounds %class.anon, %class.anon* %Lambda, i32 0, i32 0, !dbg !51
- %1 = load i32, i32* %i, align 32, !dbg !52
- store i32 %1, i32* %0, align 4, !dbg !51
+ call void @llvm.dbg.declare(metadata ptr %ss, metadata !27, metadata !28), !dbg !29
+ call void @llvm.dbg.declare(metadata ptr %e, metadata !30, metadata !28), !dbg !31
+ call void @llvm.dbg.declare(metadata ptr %c1, metadata !32, metadata !28), !dbg !37
+ call void @llvm.dbg.declare(metadata ptr %i, metadata !38, metadata !28), !dbg !40
+ store i32 42, ptr %i, align 32, !dbg !40
+ call void @llvm.dbg.declare(metadata ptr %Lambda, metadata !41, metadata !28), !dbg !50
+ %0 = load i32, ptr %i, align 32, !dbg !52
+ store i32 %0, ptr %Lambda, align 4, !dbg !51
ret void, !dbg !53
}
entry:
%s1 = alloca %struct.S1, align 64
%i = alloca i32, align 32
- call void @llvm.dbg.declare(metadata %struct.S1* %s1, metadata !17, metadata !22), !dbg !23
- call void @llvm.dbg.declare(metadata i32* %i, metadata !24, metadata !22), !dbg !26
+ call void @llvm.dbg.declare(metadata ptr %s1, metadata !17, metadata !22), !dbg !23
+ call void @llvm.dbg.declare(metadata ptr %i, metadata !24, metadata !22), !dbg !26
ret void, !dbg !27
}
define void @_Z3runv() nounwind uwtable !dbg !5 {
entry:
%x = alloca i32, align 32
- call void @llvm.dbg.declare(metadata i32* %x, metadata !9, metadata !DIExpression()), !dbg !12
+ call void @llvm.dbg.declare(metadata ptr %x, metadata !9, metadata !DIExpression()), !dbg !12
ret void, !dbg !13
}
source_filename = "test/DebugInfo/X86/arange-and-stub.ll"
target triple = "x86_64-linux-gnu"
-@_ZTId = external constant i8*
-@zed = global [1 x void ()*] [void ()* @bar], !dbg !0
+@_ZTId = external constant ptr
+@zed = global [1 x ptr] [ptr @bar], !dbg !0
define void @foo() !dbg !17 {
ret void
}
-define void @bar() personality i8* bitcast (void ()* @foo to i8*) !dbg !18 {
+define void @bar() personality ptr @foo !dbg !18 {
invoke void @foo()
to label %invoke.cont unwind label %lpad, !dbg !19
ret void
lpad: ; preds = %0
- %tmp1 = landingpad { i8*, i32 }
- filter [1 x i8*] [i8* bitcast (i8** @_ZTId to i8*)]
+ %tmp1 = landingpad { ptr, i32 }
+ filter [1 x ptr] [ptr @_ZTId]
ret void
}
!3 = !DICompositeType(tag: DW_TAG_structure_type, name: "foo<&i>", file: !2, line: 3, size: 8, align: 8, elements: !4, templateParams: !5, identifier: "_ZTS3fooIXadL_Z1iEEE")
!4 = !{}
!5 = !{!6}
-!6 = !DITemplateValueParameter(name: "x", type: !7, value: i32* @i)
+!6 = !DITemplateValueParameter(name: "x", type: !7, value: ptr @i)
!7 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !8, size: 64, align: 64)
!8 = !DIBasicType(name: "int", size: 32, align: 32, encoding: DW_ATE_signed)
!9 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !2, producer: "clang version 3.5 ", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, retainedTypes: !10, globals: !11, imports: !4)
%struct.foo = type { i32 }
; Function Attrs: nounwind uwtable
-define void @_Z4func3fooS_(%struct.foo* %f, %struct.foo* %g) #0 !dbg !4 {
+define void @_Z4func3fooS_(ptr %f, ptr %g) #0 !dbg !4 {
entry:
- call void @llvm.dbg.declare(metadata %struct.foo* %f, metadata !19, metadata !DIExpression()), !dbg !20
- call void @llvm.dbg.declare(metadata %struct.foo* %g, metadata !21, metadata !DIExpression()), !dbg !20
- %i = getelementptr inbounds %struct.foo, %struct.foo* %f, i32 0, i32 0, !dbg !22
- %0 = load i32, i32* %i, align 4, !dbg !22
+ call void @llvm.dbg.declare(metadata ptr %f, metadata !19, metadata !DIExpression()), !dbg !20
+ call void @llvm.dbg.declare(metadata ptr %g, metadata !21, metadata !DIExpression()), !dbg !20
+ %0 = load i32, ptr %f, align 4, !dbg !22
%inc = add nsw i32 %0, 1, !dbg !22
- store i32 %inc, i32* %i, align 4, !dbg !22
+ store i32 %inc, ptr %f, align 4, !dbg !22
ret void, !dbg !23
}
@main.array = private unnamed_addr constant [4 x i32] [i32 0, i32 1, i32 2, i32 3], align 16
; Function Attrs: nounwind ssp uwtable
-define void @f(i32* nocapture %p) local_unnamed_addr #0 !dbg !8 {
+define void @f(ptr nocapture %p) local_unnamed_addr #0 !dbg !8 {
entry:
- tail call void @llvm.dbg.value(metadata i32* %p, metadata !14, metadata !15), !dbg !16
- store i32 42, i32* %p, align 4, !dbg !17, !tbaa !18
+ tail call void @llvm.dbg.value(metadata ptr %p, metadata !14, metadata !15), !dbg !16
+ store i32 42, ptr %p, align 4, !dbg !17, !tbaa !18
ret void, !dbg !22
}
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
; Function Attrs: nounwind ssp uwtable
-define i32 @main(i32 %argc, i8** nocapture readnone %argv) local_unnamed_addr #0 !dbg !23 {
+define i32 @main(i32 %argc, ptr nocapture readnone %argv) local_unnamed_addr #0 !dbg !23 {
entry:
%array = alloca [4 x i32], align 16
tail call void @llvm.dbg.value(metadata i32 %argc, metadata !30, metadata !15), !dbg !36
- tail call void @llvm.dbg.value(metadata i8** %argv, metadata !31, metadata !15), !dbg !37
- %0 = bitcast [4 x i32]* %array to i8*, !dbg !38
- call void @llvm.lifetime.start.p0i8(i64 16, i8* nonnull %0) #3, !dbg !38
- tail call void @llvm.dbg.declare(metadata [4 x i32]* %array, metadata !32, metadata !15), !dbg !39
- call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 nonnull %0, i8* align 16 bitcast ([4 x i32]* @main.array to i8*), i64 16, i1 false), !dbg !39
- %arraydecay = getelementptr inbounds [4 x i32], [4 x i32]* %array, i64 0, i64 0, !dbg !40
- call void @f(i32* nonnull %arraydecay), !dbg !41
- %1 = load i32, i32* %arraydecay, align 16, !dbg !42, !tbaa !18
- call void @llvm.lifetime.end.p0i8(i64 16, i8* nonnull %0) #3, !dbg !43
- ret i32 %1, !dbg !44
+ tail call void @llvm.dbg.value(metadata ptr %argv, metadata !31, metadata !15), !dbg !37
+ call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %array) #3, !dbg !38
+ tail call void @llvm.dbg.declare(metadata ptr %array, metadata !32, metadata !15), !dbg !39
+ call void @llvm.memcpy.p0.p0.i64(ptr align 16 nonnull %array, ptr align 16 @main.array, i64 16, i1 false), !dbg !39
+ call void @f(ptr nonnull %array), !dbg !41
+ %0 = load i32, ptr %array, align 16, !dbg !42, !tbaa !18
+ call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %array) #3, !dbg !43
+ ret i32 %0, !dbg !44
}
; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #2
+declare void @llvm.lifetime.start.p0(i64, ptr nocapture) #2
; Function Attrs: argmemonly nounwind
-declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture writeonly, i8* nocapture readonly, i64, i1) #2
+declare void @llvm.memcpy.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1) #2
; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #2
+declare void @llvm.lifetime.end.p0(i64, ptr nocapture) #2
; Function Attrs: nounwind readnone speculatable
declare void @llvm.dbg.value(metadata, metadata, metadata) #1
@main.array = private unnamed_addr constant [4 x i32] [i32 0, i32 1, i32 2, i32 3], align 16
; Function Attrs: nounwind ssp uwtable
-define void @f(i32* %p) #0 !dbg !4 {
+define void @f(ptr %p) #0 !dbg !4 {
entry:
- %p.addr = alloca i32*, align 8
- store i32* %p, i32** %p.addr, align 8
- call void @llvm.dbg.declare(metadata i32** %p.addr, metadata !19, metadata !DIExpression()), !dbg !20
- %0 = load i32*, i32** %p.addr, align 8, !dbg !21
- %arrayidx = getelementptr inbounds i32, i32* %0, i64 0, !dbg !21
- store i32 42, i32* %arrayidx, align 4, !dbg !21
+ %p.addr = alloca ptr, align 8
+ store ptr %p, ptr %p.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %p.addr, metadata !19, metadata !DIExpression()), !dbg !20
+ %0 = load ptr, ptr %p.addr, align 8, !dbg !21
+ store i32 42, ptr %0, align 4, !dbg !21
ret void, !dbg !22
}
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
; Function Attrs: nounwind ssp uwtable
-define i32 @main(i32 %argc, i8** %argv) #0 !dbg !10 {
+define i32 @main(i32 %argc, ptr %argv) #0 !dbg !10 {
entry:
%retval = alloca i32, align 4
%argc.addr = alloca i32, align 4
- %argv.addr = alloca i8**, align 8
+ %argv.addr = alloca ptr, align 8
%array = alloca [4 x i32], align 16
- store i32 0, i32* %retval
- store i32 %argc, i32* %argc.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %argc.addr, metadata !23, metadata !DIExpression()), !dbg !24
- store i8** %argv, i8*** %argv.addr, align 8
- call void @llvm.dbg.declare(metadata i8*** %argv.addr, metadata !25, metadata !DIExpression()), !dbg !24
- call void @llvm.dbg.declare(metadata [4 x i32]* %array, metadata !26, metadata !DIExpression()), !dbg !30
- %0 = bitcast [4 x i32]* %array to i8*, !dbg !30
- call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %0, i8* align 16 bitcast ([4 x i32]* @main.array to i8*), i64 16, i1 false), !dbg !30
- %arraydecay = getelementptr inbounds [4 x i32], [4 x i32]* %array, i32 0, i32 0, !dbg !31
- call void @f(i32* %arraydecay), !dbg !31
- %arrayidx = getelementptr inbounds [4 x i32], [4 x i32]* %array, i32 0, i64 0, !dbg !32
- %1 = load i32, i32* %arrayidx, align 4, !dbg !32
- ret i32 %1, !dbg !32
+ store i32 0, ptr %retval
+ store i32 %argc, ptr %argc.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %argc.addr, metadata !23, metadata !DIExpression()), !dbg !24
+ store ptr %argv, ptr %argv.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %argv.addr, metadata !25, metadata !DIExpression()), !dbg !24
+ call void @llvm.dbg.declare(metadata ptr %array, metadata !26, metadata !DIExpression()), !dbg !30
+ call void @llvm.memcpy.p0.p0.i64(ptr align 16 %array, ptr align 16 @main.array, i64 16, i1 false), !dbg !30
+ call void @f(ptr %array), !dbg !31
+ %0 = load i32, ptr %array, align 4, !dbg !32
+ ret i32 %0, !dbg !32
}
; Function Attrs: nounwind
-declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture readonly, i64, i1) #2
+declare void @llvm.memcpy.p0.p0.i64(ptr nocapture, ptr nocapture readonly, i64, i1) #2
attributes #0 = { nounwind ssp uwtable }
attributes #1 = { nounwind readnone }
@.C350_sub_ = internal constant i64 8
@.C349_sub_ = internal constant i64 7
-define void @sub_(i64* noalias %array1, i64* noalias %array2) #0 !dbg !5 {
+define void @sub_(ptr noalias %array1, ptr noalias %array2) #0 !dbg !5 {
L.entry:
%.dY0001_361 = alloca i64, align 8
%"i$a_357" = alloca i64, align 8
- call void @llvm.dbg.declare(metadata i64* %array1, metadata !16, metadata !DIExpression()), !dbg !17
- call void @llvm.dbg.declare(metadata i64* %array2, metadata !18, metadata !DIExpression()), !dbg !17
+ call void @llvm.dbg.declare(metadata ptr %array1, metadata !16, metadata !DIExpression()), !dbg !17
+ call void @llvm.dbg.declare(metadata ptr %array2, metadata !18, metadata !DIExpression()), !dbg !17
br label %L.LB1_364
L.LB1_364: ; preds = %L.entry
- store i64 2, i64* %.dY0001_361, align 8, !dbg !19
- call void @llvm.dbg.declare(metadata i64* %"i$a_357", metadata !20, metadata !DIExpression()), !dbg !17
- store i64 7, i64* %"i$a_357", align 8, !dbg !19
+ store i64 2, ptr %.dY0001_361, align 8, !dbg !19
+ call void @llvm.dbg.declare(metadata ptr %"i$a_357", metadata !20, metadata !DIExpression()), !dbg !17
+ store i64 7, ptr %"i$a_357", align 8, !dbg !19
br label %L.LB1_359
L.LB1_359: ; preds = %L.LB1_359, %L.LB1_364
- %0 = load i64, i64* %"i$a_357", align 8, !dbg !19
+ %0 = load i64, ptr %"i$a_357", align 8, !dbg !19
call void @llvm.dbg.value(metadata i64 %0, metadata !22, metadata !DIExpression()), !dbg !17
- %1 = bitcast i64* %array1 to i8*, !dbg !19
- %2 = getelementptr i8, i8* %1, i64 -4, !dbg !19
- %3 = bitcast i8* %2 to i32*, !dbg !19
- %4 = getelementptr i32, i32* %3, i64 %0, !dbg !19
- store i32 9, i32* %4, align 4, !dbg !19
- %5 = load i64, i64* %"i$a_357", align 8, !dbg !19
- call void @llvm.dbg.value(metadata i64 %5, metadata !23, metadata !DIExpression()), !dbg !17
- %6 = add nsw i64 %5, 1, !dbg !19
- store i64 %6, i64* %"i$a_357", align 8, !dbg !19
- %7 = load i64, i64* %.dY0001_361, align 8, !dbg !19
- %8 = sub nsw i64 %7, 1, !dbg !19
- store i64 %8, i64* %.dY0001_361, align 8, !dbg !19
- %9 = load i64, i64* %.dY0001_361, align 8, !dbg !19
- %10 = icmp sgt i64 %9, 0, !dbg !19
- br i1 %10, label %L.LB1_359, label %L.LB1_383, !dbg !19
+ %1 = getelementptr i8, ptr %array1, i64 -4, !dbg !19
+ %2 = getelementptr i32, ptr %1, i64 %0, !dbg !19
+ store i32 9, ptr %2, align 4, !dbg !19
+ %3 = load i64, ptr %"i$a_357", align 8, !dbg !19
+ call void @llvm.dbg.value(metadata i64 %3, metadata !23, metadata !DIExpression()), !dbg !17
+ %4 = add nsw i64 %3, 1, !dbg !19
+ store i64 %4, ptr %"i$a_357", align 8, !dbg !19
+ %5 = load i64, ptr %.dY0001_361, align 8, !dbg !19
+ %6 = sub nsw i64 %5, 1, !dbg !19
+ store i64 %6, ptr %.dY0001_361, align 8, !dbg !19
+ %7 = load i64, ptr %.dY0001_361, align 8, !dbg !19
+ %8 = icmp sgt i64 %7, 0, !dbg !19
+ br i1 %8, label %L.LB1_359, label %L.LB1_383, !dbg !19
L.LB1_383: ; preds = %L.LB1_359
- %11 = bitcast i64* %array2 to i8*, !dbg !24
- %12 = getelementptr i8, i8* %11, i64 4, !dbg !24
- %13 = bitcast i8* %12 to i32*, !dbg !24
- store i32 10, i32* %13, align 4, !dbg !24
+ %9 = getelementptr i8, ptr %array2, i64 4, !dbg !24
+ store i32 10, ptr %9, align 4, !dbg !24
ret void, !dbg !25
}
%struct.__s = type { i32 }
@a = dso_local global %struct.__s zeroinitializer, align 4, !dbg !0
-@u = dso_local global i32* null, align 8, !dbg !5
+@u = dso_local global ptr null, align 8, !dbg !5
!llvm.dbg.cu = !{!2}
!llvm.module.flags = !{!17, !18, !19, !20, !21}
define i32 @f() #0 !dbg !4 {
entry:
%x = alloca i32, align 4
- %0 = bitcast i32* %x to i8*, !dbg !14
- call void @llvm.lifetime.start(i64 4, i8* %0) #4, !dbg !14
+ call void @llvm.lifetime.start(i64 4, ptr %x) #4, !dbg !14
tail call void @llvm.dbg.value(metadata i32 23, metadata !9, metadata !15), !dbg !16
- store i32 23, i32* %x, align 4, !dbg !16, !tbaa !17
- tail call void @llvm.dbg.value(metadata i32* %x, metadata !9, metadata !DIExpression(DW_OP_deref)), !dbg !16
- call void @g(i32* nonnull %x) #4, !dbg !21
- call void @llvm.dbg.value(metadata i32* %x, metadata !9, metadata !DIExpression(DW_OP_deref)), !dbg !16
- %1 = load i32, i32* %x, align 4, !dbg !22, !tbaa !17
- %cmp = icmp eq i32 %1, 42, !dbg !24
+ store i32 23, ptr %x, align 4, !dbg !16, !tbaa !17
+ tail call void @llvm.dbg.value(metadata ptr %x, metadata !9, metadata !DIExpression(DW_OP_deref)), !dbg !16
+ call void @g(ptr nonnull %x) #4, !dbg !21
+ call void @llvm.dbg.value(metadata ptr %x, metadata !9, metadata !DIExpression(DW_OP_deref)), !dbg !16
+ %0 = load i32, ptr %x, align 4, !dbg !22, !tbaa !17
+ %cmp = icmp eq i32 %0, 42, !dbg !24
br i1 %cmp, label %if.then, label %if.end, !dbg !25
if.then: ; preds = %entry
call void @llvm.dbg.value(metadata i32 43, metadata !9, metadata !15), !dbg !16
- store i32 43, i32* %x, align 4, !dbg !26, !tbaa !17
+ store i32 43, ptr %x, align 4, !dbg !26, !tbaa !17
br label %if.end, !dbg !26
if.end: ; preds = %if.then, %entry
- %2 = phi i32 [ 43, %if.then ], [ %1, %entry ], !dbg !27
- call void @llvm.dbg.value(metadata i32* %x, metadata !9, metadata !DIExpression(DW_OP_deref)), !dbg !16
- call void @llvm.lifetime.end(i64 4, i8* %0) #4, !dbg !28
- ret i32 %2, !dbg !29
+ %1 = phi i32 [ 43, %if.then ], [ %0, %entry ], !dbg !27
+ call void @llvm.dbg.value(metadata ptr %x, metadata !9, metadata !DIExpression(DW_OP_deref)), !dbg !16
+ call void @llvm.lifetime.end(i64 4, ptr %x) #4, !dbg !28
+ ret i32 %1, !dbg !29
}
; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.start(i64, i8* nocapture) #1
+declare void @llvm.lifetime.start(i64, ptr nocapture) #1
-declare void @g(i32*) #4
+declare void @g(ptr) #4
; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.end(i64, i8* nocapture) #1
+declare void @llvm.lifetime.end(i64, ptr nocapture) #1
; Function Attrs: nounwind readnone
declare void @llvm.dbg.value(metadata, metadata, metadata) #3
target triple = "x86_64-apple-darwin"
%struct.__block_descriptor = type { i64, i64 }
-%struct.__block_literal_generic = type { i8*, i32, i32, i8*, %struct.__block_descriptor* }
+%struct.__block_literal_generic = type { ptr, i32, i32, ptr, ptr }
-@_NSConcreteStackBlock = external global i8*
+@_NSConcreteStackBlock = external global ptr
@.str = private unnamed_addr constant [6 x i8] c"v8@?0\00", align 1
; Function Attrs: nounwind readnone
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
; Function Attrs: ssp uwtable
-define internal void @__foo_block_invoke(i8* %.block_descriptor) #2 !dbg !8 {
+define internal void @__foo_block_invoke(ptr %.block_descriptor) #2 !dbg !8 {
entry:
- %.block_descriptor.addr = alloca i8*, align 8
- %block.addr = alloca <{ i8*, i32, i32, i8*, %struct.__block_descriptor*, void (...)* }>*, align 8
- store i8* %.block_descriptor, i8** %.block_descriptor.addr, align 8
- %0 = load i8*, i8** %.block_descriptor.addr
- call void @llvm.dbg.value(metadata i8* %0, metadata !47, metadata !43), !dbg !66
- call void @llvm.dbg.declare(metadata i8* %.block_descriptor, metadata !47, metadata !43), !dbg !66
- %block = bitcast i8* %.block_descriptor to <{ i8*, i32, i32, i8*, %struct.__block_descriptor*, void (...)* }>*, !dbg !67
- store <{ i8*, i32, i32, i8*, %struct.__block_descriptor*, void (...)* }>* %block, <{ i8*, i32, i32, i8*, %struct.__block_descriptor*, void (...)* }>** %block.addr, align 8
- call void @llvm.dbg.declare(metadata <{ i8*, i32, i32, i8*, %struct.__block_descriptor*, void (...)* }>** %block.addr, metadata !68, metadata !69), !dbg !70
- %block.capture.addr = getelementptr inbounds <{ i8*, i32, i32, i8*, %struct.__block_descriptor*, void (...)* }>, <{ i8*, i32, i32, i8*, %struct.__block_descriptor*, void (...)* }>* %block, i32 0, i32 5, !dbg !71
- %1 = load void (...)*, void (...)** %block.capture.addr, align 8, !dbg !71
- %block.literal = bitcast void (...)* %1 to %struct.__block_literal_generic*, !dbg !71
- %2 = getelementptr inbounds %struct.__block_literal_generic, %struct.__block_literal_generic* %block.literal, i32 0, i32 3, !dbg !71
- %3 = bitcast %struct.__block_literal_generic* %block.literal to i8*, !dbg !71
- %4 = load i8*, i8** %2, !dbg !71
- %5 = bitcast i8* %4 to void (i8*, ...)*, !dbg !71
- call void (i8*, ...) %5(i8* %3), !dbg !71
+ %.block_descriptor.addr = alloca ptr, align 8
+ %block.addr = alloca ptr, align 8
+ store ptr %.block_descriptor, ptr %.block_descriptor.addr, align 8
+ %0 = load ptr, ptr %.block_descriptor.addr
+ call void @llvm.dbg.value(metadata ptr %0, metadata !47, metadata !43), !dbg !66
+ call void @llvm.dbg.declare(metadata ptr %.block_descriptor, metadata !47, metadata !43), !dbg !66
+ store ptr %.block_descriptor, ptr %block.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %block.addr, metadata !68, metadata !69), !dbg !70
+ %block.capture.addr = getelementptr inbounds <{ ptr, i32, i32, ptr, ptr, ptr }>, ptr %.block_descriptor, i32 0, i32 5, !dbg !71
+ %1 = load ptr, ptr %block.capture.addr, align 8, !dbg !71
+ %2 = getelementptr inbounds %struct.__block_literal_generic, ptr %1, i32 0, i32 3, !dbg !71
+ %3 = load ptr, ptr %2, !dbg !71
+ call void (ptr, ...) %3(ptr %1), !dbg !71
ret void, !dbg !73
}
%0 = type opaque
%struct._objc_cache = type opaque
-%struct._class_t = type { %struct._class_t*, %struct._class_t*, %struct._objc_cache*, i8* (i8*, i8*)**, %struct._class_ro_t* }
-%struct._class_ro_t = type { i32, i32, i32, i8*, i8*, %struct.__method_list_t*, %struct._objc_protocol_list*, %struct._ivar_list_t*, i8*, %struct._prop_list_t* }
+%struct._class_t = type { ptr, ptr, ptr, ptr, ptr }
+%struct._class_ro_t = type { i32, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.__method_list_t = type { i32, i32, [0 x %struct._objc_method] }
-%struct._objc_method = type { i8*, i8*, i8* }
-%struct._objc_protocol_list = type { i64, [0 x %struct._protocol_t*] }
-%struct._protocol_t = type { i8*, i8*, %struct._objc_protocol_list*, %struct.__method_list_t*, %struct.__method_list_t*, %struct.__method_list_t*, %struct.__method_list_t*, %struct._prop_list_t*, i32, i32, i8** }
+%struct._objc_method = type { ptr, ptr, ptr }
+%struct._objc_protocol_list = type { i64, [0 x ptr] }
+%struct._protocol_t = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, ptr }
%struct._prop_list_t = type { i32, i32, [0 x %struct._prop_t] }
-%struct._prop_t = type { i8*, i8* }
+%struct._prop_t = type { ptr, ptr }
%struct._ivar_list_t = type { i32, i32, [0 x %struct._ivar_t] }
-%struct._ivar_t = type { i64*, i8*, i8*, i32, i32 }
+%struct._ivar_t = type { ptr, ptr, ptr, i32, i32 }
%struct.ImageInfo = type { i64, i64, double }
@_objc_empty_cache = external global %struct._objc_cache
-@_objc_empty_vtable = external global i8* (i8*, i8*)*
-@"OBJC_CLASS_$_Bitmap" = global %struct._class_t { %struct._class_t* @"OBJC_METACLASS_$_Bitmap", %struct._class_t* null, %struct._objc_cache* @_objc_empty_cache, i8* (i8*, i8*)** @_objc_empty_vtable, %struct._class_ro_t* @"\01l_OBJC_CLASS_RO_$_Bitmap" }, section "__DATA, __objc_data", align 8
-@"OBJC_METACLASS_$_Bitmap" = global %struct._class_t { %struct._class_t* @"OBJC_METACLASS_$_Bitmap", %struct._class_t* @"OBJC_CLASS_$_Bitmap", %struct._objc_cache* @_objc_empty_cache, i8* (i8*, i8*)** @_objc_empty_vtable, %struct._class_ro_t* @"\01l_OBJC_METACLASS_RO_$_Bitmap" }, section "__DATA, __objc_data", align 8
+@_objc_empty_vtable = external global ptr
+@"OBJC_CLASS_$_Bitmap" = global %struct._class_t { ptr @"OBJC_METACLASS_$_Bitmap", ptr null, ptr @_objc_empty_cache, ptr @_objc_empty_vtable, ptr @"\01l_OBJC_CLASS_RO_$_Bitmap" }, section "__DATA, __objc_data", align 8
+@"OBJC_METACLASS_$_Bitmap" = global %struct._class_t { ptr @"OBJC_METACLASS_$_Bitmap", ptr @"OBJC_CLASS_$_Bitmap", ptr @_objc_empty_cache, ptr @_objc_empty_vtable, ptr @"\01l_OBJC_METACLASS_RO_$_Bitmap" }, section "__DATA, __objc_data", align 8
@"\01L_OBJC_CLASS_NAME_" = internal global [7 x i8] c"Bitmap\00", section "__TEXT,__objc_classname,cstring_literals", align 1
-@"\01l_OBJC_METACLASS_RO_$_Bitmap" = internal global %struct._class_ro_t { i32 3, i32 40, i32 40, i8* null, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"\01L_OBJC_CLASS_NAME_", i32 0, i32 0), %struct.__method_list_t* null, %struct._objc_protocol_list* null, %struct._ivar_list_t* null, i8* null, %struct._prop_list_t* null }, section "__DATA, __objc_const", align 8
+@"\01l_OBJC_METACLASS_RO_$_Bitmap" = internal global %struct._class_ro_t { i32 3, i32 40, i32 40, ptr null, ptr @"\01L_OBJC_CLASS_NAME_", ptr null, ptr null, ptr null, ptr null, ptr null }, section "__DATA, __objc_const", align 8
@"\01L_OBJC_METH_VAR_NAME_" = internal global [32 x i8] c"initWithCopy:andInfo:andLength:\00", section "__TEXT,__objc_methname,cstring_literals", align 1
@"\01L_OBJC_METH_VAR_TYPE_" = internal global [23 x i8] c"@56@0:8@16{?=QQd}24Q48\00", section "__TEXT,__objc_methtype,cstring_literals", align 1
-@"\01l_OBJC_$_INSTANCE_METHODS_Bitmap" = internal global { i32, i32, [1 x %struct._objc_method] } { i32 24, i32 1, [1 x %struct._objc_method] [%struct._objc_method { i8* getelementptr inbounds ([32 x i8], [32 x i8]* @"\01L_OBJC_METH_VAR_NAME_", i32 0, i32 0), i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"\01L_OBJC_METH_VAR_TYPE_", i32 0, i32 0), i8* bitcast (i8* (%0*, i8*, %0*, %struct.ImageInfo*, i64)* @"\01-[Bitmap initWithCopy:andInfo:andLength:]" to i8*) }] }, section "__DATA, __objc_const", align 8
-@"\01l_OBJC_CLASS_RO_$_Bitmap" = internal global %struct._class_ro_t { i32 2, i32 0, i32 0, i8* null, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"\01L_OBJC_CLASS_NAME_", i32 0, i32 0), %struct.__method_list_t* bitcast ({ i32, i32, [1 x %struct._objc_method] }* @"\01l_OBJC_$_INSTANCE_METHODS_Bitmap" to %struct.__method_list_t*), %struct._objc_protocol_list* null, %struct._ivar_list_t* null, i8* null, %struct._prop_list_t* null }, section "__DATA, __objc_const", align 8
-@"\01L_OBJC_LABEL_CLASS_$" = internal global [1 x i8*] [i8* bitcast (%struct._class_t* @"OBJC_CLASS_$_Bitmap" to i8*)], section "__DATA, __objc_classlist, regular, no_dead_strip", align 8
-@llvm.used = appending global [5 x i8*] [i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"\01L_OBJC_CLASS_NAME_", i32 0, i32 0), i8* getelementptr inbounds ([32 x i8], [32 x i8]* @"\01L_OBJC_METH_VAR_NAME_", i32 0, i32 0), i8* getelementptr inbounds ([23 x i8], [23 x i8]* @"\01L_OBJC_METH_VAR_TYPE_", i32 0, i32 0), i8* bitcast ({ i32, i32, [1 x %struct._objc_method] }* @"\01l_OBJC_$_INSTANCE_METHODS_Bitmap" to i8*), i8* bitcast ([1 x i8*]* @"\01L_OBJC_LABEL_CLASS_$" to i8*)], section "llvm.metadata"
+@"\01l_OBJC_$_INSTANCE_METHODS_Bitmap" = internal global { i32, i32, [1 x %struct._objc_method] } { i32 24, i32 1, [1 x %struct._objc_method] [%struct._objc_method { ptr @"\01L_OBJC_METH_VAR_NAME_", ptr @"\01L_OBJC_METH_VAR_TYPE_", ptr @"\01-[Bitmap initWithCopy:andInfo:andLength:]" }] }, section "__DATA, __objc_const", align 8
+@"\01l_OBJC_CLASS_RO_$_Bitmap" = internal global %struct._class_ro_t { i32 2, i32 0, i32 0, ptr null, ptr @"\01L_OBJC_CLASS_NAME_", ptr @"\01l_OBJC_$_INSTANCE_METHODS_Bitmap", ptr null, ptr null, ptr null, ptr null }, section "__DATA, __objc_const", align 8
+@"\01L_OBJC_LABEL_CLASS_$" = internal global [1 x ptr] [ptr @"OBJC_CLASS_$_Bitmap"], section "__DATA, __objc_classlist, regular, no_dead_strip", align 8
+@llvm.used = appending global [5 x ptr] [ptr @"\01L_OBJC_CLASS_NAME_", ptr @"\01L_OBJC_METH_VAR_NAME_", ptr @"\01L_OBJC_METH_VAR_TYPE_", ptr @"\01l_OBJC_$_INSTANCE_METHODS_Bitmap", ptr @"\01L_OBJC_LABEL_CLASS_$"], section "llvm.metadata"
; Function Attrs: ssp uwtable
-define internal i8* @"\01-[Bitmap initWithCopy:andInfo:andLength:]"(%0* %self, i8* %_cmd, %0* %otherBitmap, %struct.ImageInfo* byval(%struct.ImageInfo) align 8 %info, i64 %length) #0 !dbg !7 {
+define internal ptr @"\01-[Bitmap initWithCopy:andInfo:andLength:]"(ptr %self, ptr %_cmd, ptr %otherBitmap, ptr byval(%struct.ImageInfo) align 8 %info, i64 %length) #0 !dbg !7 {
entry:
- %retval = alloca i8*, align 8
- %self.addr = alloca %0*, align 8
- %_cmd.addr = alloca i8*, align 8
- %otherBitmap.addr = alloca %0*, align 8
+ %retval = alloca ptr, align 8
+ %self.addr = alloca ptr, align 8
+ %_cmd.addr = alloca ptr, align 8
+ %otherBitmap.addr = alloca ptr, align 8
%length.addr = alloca i64, align 8
- store %0* %self, %0** %self.addr, align 8
- call void @llvm.dbg.declare(metadata %0** %self.addr, metadata !28, metadata !DIExpression()), !dbg !29
- store i8* %_cmd, i8** %_cmd.addr, align 8
- call void @llvm.dbg.declare(metadata i8** %_cmd.addr, metadata !30, metadata !DIExpression()), !dbg !29
- store %0* %otherBitmap, %0** %otherBitmap.addr, align 8
- call void @llvm.dbg.declare(metadata %0** %otherBitmap.addr, metadata !32, metadata !DIExpression()), !dbg !29
- call void @llvm.dbg.declare(metadata %struct.ImageInfo* %info, metadata !33, metadata !DIExpression()), !dbg !34
- store i64 %length, i64* %length.addr, align 8
- call void @llvm.dbg.declare(metadata i64* %length.addr, metadata !35, metadata !DIExpression()), !dbg !36
- %0 = load i8*, i8** %retval, !dbg !37
- ret i8* %0, !dbg !37
+ store ptr %self, ptr %self.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %self.addr, metadata !28, metadata !DIExpression()), !dbg !29
+ store ptr %_cmd, ptr %_cmd.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %_cmd.addr, metadata !30, metadata !DIExpression()), !dbg !29
+ store ptr %otherBitmap, ptr %otherBitmap.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %otherBitmap.addr, metadata !32, metadata !DIExpression()), !dbg !29
+ call void @llvm.dbg.declare(metadata ptr %info, metadata !33, metadata !DIExpression()), !dbg !34
+ store i64 %length, ptr %length.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %length.addr, metadata !35, metadata !DIExpression()), !dbg !36
+ %0 = load ptr, ptr %retval, !dbg !37
+ ret ptr %0, !dbg !37
}
; Function Attrs: nounwind readnone
; would either make it use-before-def or shift when the variable appears), and
; that the dbg.value after the memory instruction does get updated.
-define dso_local i8 @foo(i32 *%p, i32 %cond) !dbg !7 {
+define dso_local i8 @foo(ptr %p, i32 %cond) !dbg !7 {
entry:
; There should be no dbg.values in this block.
; CHECK-LABEL: entry:
; CHECK-NOT: dbg.value
- %casted = bitcast i32 *%p to i8*
- %arith = getelementptr i8, i8 *%casted, i32 3
- %load1 = load i8, i8 *%arith
+ %arith = getelementptr i8, ptr %p, i32 3
+ %load1 = load i8, ptr %arith
%cmpresult = icmp eq i32 %cond, 0
br i1 %cmpresult, label %next, label %ret
; Address calcs should be duplicated into this block. One dbg.value should be
; updated, and the other should not.
; CHECK-LABEL: next:
-; CHECK: dbg.value(metadata i8* %arith, metadata ![[DIVAR:[0-9]+]],
+; CHECK: dbg.value(metadata ptr %arith, metadata ![[DIVAR:[0-9]+]],
; CHECK-SAME: metadata !DIExpression()
-; CHECK-NEXT: %[[CASTVAR:[0-9a-zA-Z]+]] = bitcast i32* %p to i8*
-; CHECK-NEXT: %[[GEPVAR:[0-9a-zA-Z]+]] = getelementptr i8, i8* %[[CASTVAR]],
+; CHECK-NEXT: %[[GEPVAR:[0-9a-zA-Z]+]] = getelementptr i8, ptr %p,
; CHECK-SAME: i64 3
-; CHECK-NEXT: %loaded = load i8, i8* %[[GEPVAR]]
-; CHECK-NEXT: call void @llvm.dbg.value(metadata i8* %[[GEPVAR]],
+; CHECK-NEXT: %loaded = load i8, ptr %[[GEPVAR]]
+; CHECK-NEXT: call void @llvm.dbg.value(metadata ptr %[[GEPVAR]],
; CHECK-SAME: metadata ![[DIVAR]],
-; CHECK-NEXT: call void @llvm.dbg.value(metadata !DIArgList(i8* %[[GEPVAR]],
-; CHECK-SAME: i8* %[[GEPVAR]]), metadata ![[DIVAR]],
- call void @llvm.dbg.value(metadata i8 *%arith, metadata !12, metadata !DIExpression()), !dbg !14
- %loaded = load i8, i8 *%arith
- call void @llvm.dbg.value(metadata i8 *%arith, metadata !12, metadata !DIExpression()), !dbg !14
- call void @llvm.dbg.value(metadata !DIArgList(i8 *%arith, i8 *%arith), metadata !12, metadata !DIExpression()), !dbg !14
+; CHECK-NEXT: call void @llvm.dbg.value(metadata !DIArgList(ptr %[[GEPVAR]],
+; CHECK-SAME: ptr %[[GEPVAR]]), metadata ![[DIVAR]],
+ call void @llvm.dbg.value(metadata ptr %arith, metadata !12, metadata !DIExpression()), !dbg !14
+ %loaded = load i8, ptr %arith
+ call void @llvm.dbg.value(metadata ptr %arith, metadata !12, metadata !DIExpression()), !dbg !14
+ call void @llvm.dbg.value(metadata !DIArgList(ptr %arith, ptr %arith), metadata !12, metadata !DIExpression()), !dbg !14
ret i8 %loaded
ret:
define i32 @main() #0 !dbg !4 {
entry:
%retval = alloca i32, align 4
- store i32 0, i32* %retval
+ store i32 0, ptr %retval
ret i32 0, !dbg !10
}
define i32 @main() #0 !dbg !4 {
entry:
%retval = alloca i32, align 4
- store i32 0, i32* %retval
+ store i32 0, ptr %retval
ret i32 0, !dbg !10
}
define i32 @_ZN17nsAutoRefCnt7ReleaseEv() !dbg !19 {
entry:
- store i32 1, i32* null, align 4, !dbg !32
- tail call void @_Z8moz_freePv(i8* null) #0, !dbg !40
+ store i32 1, ptr null, align 4, !dbg !32
+ tail call void @_Z8moz_freePv(ptr null) #0, !dbg !40
ret i32 0
}
define void @_ZN17nsAutoRefCntD1Ev() !dbg !46 {
entry:
- tail call void @_Z8moz_freePv(i8* null) #0, !dbg !49
+ tail call void @_Z8moz_freePv(ptr null) #0, !dbg !49
ret void
}
-declare void @_Z8moz_freePv(i8*)
+declare void @_Z8moz_freePv(ptr)
attributes #0 = { nounwind }
%1 = alloca double, align 8
%2 = alloca i64, align 8
%3 = alloca i64, align 8
- store double 2.000000e+00, double* %1, align 8, !dbg !21
+ store double 2.000000e+00, ptr %1, align 8, !dbg !21
call void @llvm.dbg.value(metadata i64 0, metadata !22, metadata !15), !dbg !24
call void @llvm.dbg.value(metadata i64 0, metadata !25, metadata !15), !dbg !27
call void @llvm.dbg.value(metadata double 2.000000e+00, metadata !19, metadata !15), !dbg !21
- store i64 4611686018427387904, i64* %2, align 8, !dbg !24
+ store i64 4611686018427387904, ptr %2, align 8, !dbg !24
call void @llvm.dbg.value(metadata i64 4611686018427387904, metadata !22, metadata !15), !dbg !24
call void @llvm.dbg.value(metadata i64 4611686018427387904, metadata !25, metadata !15), !dbg !27
- store i64 4611686018427387904, i64* %3, align 8, !dbg !27
+ store i64 4611686018427387904, ptr %3, align 8, !dbg !27
ret void, !dbg !28
}
%class.A = type { i32 }
@a = global %class.A zeroinitializer, align 4, !dbg !0
-@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I_a, i8* null }]
+@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__I_a, ptr null }]
define internal void @__cxx_global_var_init() section ".text.startup" !dbg !18 {
entry:
- call void @_ZN1AC2Ei(%class.A* @a, i32 0), !dbg !21
+ call void @_ZN1AC2Ei(ptr @a, i32 0), !dbg !21
ret void, !dbg !21
}
; Function Attrs: nounwind uwtable
-define linkonce_odr void @_ZN1AC2Ei(%class.A* %this, i32 %i) unnamed_addr #0 align 2 !dbg !22 {
+define linkonce_odr void @_ZN1AC2Ei(ptr %this, i32 %i) unnamed_addr #0 align 2 !dbg !22 {
entry:
- %this.addr = alloca %class.A*, align 8
+ %this.addr = alloca ptr, align 8
%i.addr = alloca i32, align 4
- store %class.A* %this, %class.A** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %class.A** %this.addr, metadata !23, metadata !25), !dbg !26
- store i32 %i, i32* %i.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %i.addr, metadata !27, metadata !25), !dbg !28
- %this1 = load %class.A*, %class.A** %this.addr
- %a = getelementptr inbounds %class.A, %class.A* %this1, i32 0, i32 0, !dbg !28
- %0 = load i32, i32* %i.addr, align 4, !dbg !28
- store i32 %0, i32* %a, align 4, !dbg !28
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !23, metadata !25), !dbg !26
+ store i32 %i, ptr %i.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %i.addr, metadata !27, metadata !25), !dbg !28
+ %this1 = load ptr, ptr %this.addr
+ %0 = load i32, ptr %i.addr, align 4, !dbg !28
+ store i32 %0, ptr %this1, align 4, !dbg !28
ret void, !dbg !28
}
define i32 @foo(i32 %a) #0 !dbg !4 {
entry:
%a.addr = alloca i32, align 4
- store i32 %a, i32* %a.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %a.addr, metadata !13, metadata !DIExpression()), !dbg !14
- %0 = load i32, i32* %a.addr, align 4, !dbg !14
+ store i32 %a, ptr %a.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %a.addr, metadata !13, metadata !DIExpression()), !dbg !14
+ %0 = load i32, ptr %a.addr, align 4, !dbg !14
%add = add nsw i32 %0, 1, !dbg !14
ret i32 %add, !dbg !14
}
define i32 @bar(i32 %b) #0 !dbg !9 {
entry:
%b.addr = alloca i32, align 4
- store i32 %b, i32* %b.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %b.addr, metadata !15, metadata !DIExpression()), !dbg !16
- %0 = load i32, i32* %b.addr, align 4, !dbg !16
+ store i32 %b, ptr %b.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %b.addr, metadata !15, metadata !DIExpression()), !dbg !16
+ %0 = load i32, ptr %b.addr, align 4, !dbg !16
%add = add nsw i32 %0, 2, !dbg !16
ret i32 %add, !dbg !16
}
define void @_Z2f3v() #0 !dbg !8 {
entry:
%.addr.i = alloca i32, align 4
- call void @llvm.dbg.declare(metadata i32* %.addr.i, metadata !11, metadata !16), !dbg !17
- store i32 0, i32* %.addr.i, align 4
+ call void @llvm.dbg.declare(metadata ptr %.addr.i, metadata !11, metadata !16), !dbg !17
+ store i32 0, ptr %.addr.i, align 4
call void @_Z2f1v(), !dbg !19
ret void, !dbg !20
}
declare void @llvm.dbg.addr(metadata, metadata, metadata) #2
declare void @llvm.dbg.value(metadata, metadata, metadata) #2
-declare void @escape(i32*)
+declare void @escape(ptr)
@global = external global i32, align 4
define void @f(i32 %x) #0 !dbg !8 {
entry:
%x.addr = alloca i32, align 4
- store i32 %x, i32* %x.addr, align 4
- call void @llvm.dbg.addr(metadata i32* %x.addr, metadata !13, metadata !DIExpression()), !dbg !18
- call void @escape(i32* %x.addr), !dbg !19
+ store i32 %x, ptr %x.addr, align 4
+ call void @llvm.dbg.addr(metadata ptr %x.addr, metadata !13, metadata !DIExpression()), !dbg !18
+ call void @escape(ptr %x.addr), !dbg !19
call void @llvm.dbg.value(metadata i32 1, metadata !13, metadata !DIExpression()), !dbg !20
- store i32 1, i32* @global, align 4, !dbg !22
- call void @llvm.dbg.addr(metadata i32* %x.addr, metadata !13, metadata !DIExpression()), !dbg !23
- store i32 2, i32* %x.addr, align 4, !dbg !23
- call void @escape(i32* %x.addr), !dbg !24
+ store i32 1, ptr @global, align 4, !dbg !22
+ call void @llvm.dbg.addr(metadata ptr %x.addr, metadata !13, metadata !DIExpression()), !dbg !23
+ store i32 2, ptr %x.addr, align 4, !dbg !23
+ call void @escape(ptr %x.addr), !dbg !24
ret void, !dbg !25
}
define void @use_dbg_addr() #0 !dbg !7 {
entry:
%o = alloca %struct.Foo, align 4
- call void @llvm.dbg.addr(metadata %struct.Foo* %o, metadata !10, metadata !15), !dbg !16
- call void @escape_foo(%struct.Foo* %o), !dbg !17
+ call void @llvm.dbg.addr(metadata ptr %o, metadata !10, metadata !15), !dbg !16
+ call void @escape_foo(ptr %o), !dbg !17
ret void, !dbg !18
}
define void @test_dbg_addr_and_dbg_val_undef() #0 !dbg !117 {
entry:
%o = alloca %struct.Foo, align 4
- call void @llvm.dbg.addr(metadata %struct.Foo* %o, metadata !1110, metadata !1115), !dbg !1116
- call void @escape_foo(%struct.Foo* %o), !dbg !1117
- call void @llvm.dbg.value(metadata %struct.Foo* undef, metadata !1110, metadata !1115), !dbg !1116
+ call void @llvm.dbg.addr(metadata ptr %o, metadata !1110, metadata !1115), !dbg !1116
+ call void @escape_foo(ptr %o), !dbg !1117
+ call void @llvm.dbg.value(metadata ptr undef, metadata !1110, metadata !1115), !dbg !1116
ret void, !dbg !1118
}
declare void @llvm.dbg.addr(metadata, metadata, metadata) #1
declare void @llvm.dbg.value(metadata, metadata, metadata) #1
-declare void @escape_foo(%struct.Foo*)
+declare void @escape_foo(ptr)
attributes #0 = { noinline nounwind uwtable }
attributes #1 = { nounwind readnone speculatable }
%struct.Pt = type { double, double }
%struct.Rect = type { %struct.Pt, %struct.Pt }
-define double @foo(%struct.Rect* byval(%struct.Rect) %my_r0) nounwind ssp !dbg !1 {
+define double @foo(ptr byval(%struct.Rect) %my_r0) nounwind ssp !dbg !1 {
entry:
- %retval = alloca double ; <double*> [#uses=2]
- %0 = alloca double ; <double*> [#uses=2]
+ %retval = alloca double ; <ptr> [#uses=2]
+ %0 = alloca double ; <ptr> [#uses=2]
%"alloca point" = bitcast i32 0 to i32 ; <i32> [#uses=0]
- call void @llvm.dbg.declare(metadata %struct.Rect* %my_r0, metadata !0, metadata !DIExpression()), !dbg !15
- %1 = getelementptr inbounds %struct.Rect, %struct.Rect* %my_r0, i32 0, i32 0, !dbg !16 ; <%struct.Pt*> [#uses=1]
- %2 = getelementptr inbounds %struct.Pt, %struct.Pt* %1, i32 0, i32 0, !dbg !16 ; <double*> [#uses=1]
- %3 = load double, double* %2, align 8, !dbg !16 ; <double> [#uses=1]
- store double %3, double* %0, align 8, !dbg !16
- %4 = load double, double* %0, align 8, !dbg !16 ; <double> [#uses=1]
- store double %4, double* %retval, align 8, !dbg !16
+ call void @llvm.dbg.declare(metadata ptr %my_r0, metadata !0, metadata !DIExpression()), !dbg !15
+ %1 = load double, ptr %my_r0, align 8, !dbg !16 ; <double> [#uses=1]
+ store double %1, ptr %0, align 8, !dbg !16
+ %2 = load double, ptr %0, align 8, !dbg !16 ; <double> [#uses=1]
+ store double %2, ptr %retval, align 8, !dbg !16
br label %return, !dbg !16
return: ; preds = %entry
- %retval1 = load double, double* %retval, !dbg !16 ; <double> [#uses=1]
+ %retval1 = load double, ptr %retval, !dbg !16 ; <double> [#uses=1]
ret double %retval1, !dbg !16
}
define void @use_dbg_declare() #0 !dbg !7 {
entry:
%o = alloca %struct.Foo, align 4
- call void @llvm.dbg.declare(metadata %struct.Foo* %o, metadata !10, metadata !15), !dbg !16
- call void @escape_foo(%struct.Foo* %o), !dbg !17
+ call void @llvm.dbg.declare(metadata ptr %o, metadata !10, metadata !15), !dbg !16
+ call void @escape_foo(ptr %o), !dbg !17
ret void, !dbg !18
}
; Function Attrs: nounwind readnone speculatable
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
-declare void @escape_foo(%struct.Foo*)
+declare void @escape_foo(ptr)
attributes #0 = { noinline nounwind uwtable }
attributes #1 = { nounwind readnone speculatable }
%class.A = type { i32, i32, i32, i32 }
-define void @_Z3fooi(%class.A* sret(%class.A) %agg.result, i32 %i) ssp !dbg !19 {
+define void @_Z3fooi(ptr sret(%class.A) %agg.result, i32 %i) ssp !dbg !19 {
entry:
%i.addr = alloca i32, align 4
%j = alloca i32, align 4
%nrvo = alloca i1
%cleanup.dest.slot = alloca i32
- store i32 %i, i32* %i.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %i.addr, metadata !26, metadata !DIExpression()), !dbg !27
- call void @llvm.dbg.declare(metadata i32* %j, metadata !28, metadata !DIExpression()), !dbg !30
- store i32 0, i32* %j, align 4, !dbg !31
- %tmp = load i32, i32* %i.addr, align 4, !dbg !32
+ store i32 %i, ptr %i.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %i.addr, metadata !26, metadata !DIExpression()), !dbg !27
+ call void @llvm.dbg.declare(metadata ptr %j, metadata !28, metadata !DIExpression()), !dbg !30
+ store i32 0, ptr %j, align 4, !dbg !31
+ %tmp = load i32, ptr %i.addr, align 4, !dbg !32
%cmp = icmp eq i32 %tmp, 42, !dbg !32
br i1 %cmp, label %if.then, label %if.end, !dbg !32
if.then: ; preds = %entry
- %tmp1 = load i32, i32* %i.addr, align 4, !dbg !33
+ %tmp1 = load i32, ptr %i.addr, align 4, !dbg !33
%add = add nsw i32 %tmp1, 1, !dbg !33
- store i32 %add, i32* %j, align 4, !dbg !33
+ store i32 %add, ptr %j, align 4, !dbg !33
br label %if.end, !dbg !35
if.end: ; preds = %if.then, %entry
- store i1 false, i1* %nrvo, !dbg !36
- call void @llvm.dbg.declare(metadata %class.A* %agg.result, metadata !37, metadata !DIExpression()), !dbg !39
- %tmp2 = load i32, i32* %j, align 4, !dbg !40
- %x = getelementptr inbounds %class.A, %class.A* %agg.result, i32 0, i32 0, !dbg !40
- store i32 %tmp2, i32* %x, align 4, !dbg !40
- store i1 true, i1* %nrvo, !dbg !41
- store i32 1, i32* %cleanup.dest.slot
- %nrvo.val = load i1, i1* %nrvo, !dbg !42
+ store i1 false, ptr %nrvo, !dbg !36
+ call void @llvm.dbg.declare(metadata ptr %agg.result, metadata !37, metadata !DIExpression()), !dbg !39
+ %tmp2 = load i32, ptr %j, align 4, !dbg !40
+ store i32 %tmp2, ptr %agg.result, align 4, !dbg !40
+ store i1 true, ptr %nrvo, !dbg !41
+ store i32 1, ptr %cleanup.dest.slot
+ %nrvo.val = load i1, ptr %nrvo, !dbg !42
br i1 %nrvo.val, label %nrvo.skipdtor, label %nrvo.unused, !dbg !42
nrvo.unused: ; preds = %if.end
- call void @_ZN1AD1Ev(%class.A* %agg.result), !dbg !42
+ call void @_ZN1AD1Ev(ptr %agg.result), !dbg !42
br label %nrvo.skipdtor, !dbg !42
nrvo.skipdtor: ; preds = %nrvo.unused, %if.end
declare void @llvm.dbg.declare(metadata, metadata, metadata) nounwind readnone
-define linkonce_odr void @_ZN1AD1Ev(%class.A* %this) unnamed_addr ssp align 2 !dbg !22 {
+define linkonce_odr void @_ZN1AD1Ev(ptr %this) unnamed_addr ssp align 2 !dbg !22 {
entry:
- %this.addr = alloca %class.A*, align 8
- store %class.A* %this, %class.A** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %class.A** %this.addr, metadata !43, metadata !DIExpression()), !dbg !44
- %this1 = load %class.A*, %class.A** %this.addr
- call void @_ZN1AD2Ev(%class.A* %this1), !dbg !53
+ %this.addr = alloca ptr, align 8
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !43, metadata !DIExpression()), !dbg !44
+ %this1 = load ptr, ptr %this.addr
+ call void @_ZN1AD2Ev(ptr %this1), !dbg !53
ret void, !dbg !45
}
-define linkonce_odr void @_ZN1AD2Ev(%class.A* %this) unnamed_addr nounwind ssp align 2 !dbg !25 {
+define linkonce_odr void @_ZN1AD2Ev(ptr %this) unnamed_addr nounwind ssp align 2 !dbg !25 {
entry:
- %this.addr = alloca %class.A*, align 8
- store %class.A* %this, %class.A** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %class.A** %this.addr, metadata !46, metadata !DIExpression()), !dbg !47
- %this1 = load %class.A*, %class.A** %this.addr
- %x = getelementptr inbounds %class.A, %class.A* %this1, i32 0, i32 0, !dbg !48
- store i32 1, i32* %x, align 4, !dbg !48
+ %this.addr = alloca ptr, align 8
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !46, metadata !DIExpression()), !dbg !47
+ %this1 = load ptr, ptr %this.addr
+ store i32 1, ptr %this1, align 4, !dbg !48
ret void, !dbg !48
}
%struct.NonTrivial = type { i32 }
; Function Attrs: nounwind
-define void @f(<{ %struct.NonTrivial, i32, i32, i32 }>* inalloca(<{ %struct.NonTrivial, i32, i32, i32 }>)) local_unnamed_addr #0 !dbg !7 {
+define void @f(ptr inalloca(<{ %struct.NonTrivial, i32, i32, i32 }>)) local_unnamed_addr #0 !dbg !7 {
entry:
- %a = getelementptr inbounds <{ %struct.NonTrivial, i32, i32, i32 }>, <{ %struct.NonTrivial, i32, i32, i32 }>* %0, i32 0, i32 0
- %b = getelementptr inbounds <{ %struct.NonTrivial, i32, i32, i32 }>, <{ %struct.NonTrivial, i32, i32, i32 }>* %0, i32 0, i32 1
- call void @llvm.dbg.declare(metadata i32* %b, metadata !22, metadata !24), !dbg !26
- call void @llvm.dbg.declare(metadata %struct.NonTrivial* %a, metadata !23, metadata !24), !dbg !27
- %1 = load i32, i32* %b, align 4, !dbg !28, !tbaa !30
+ %a = getelementptr inbounds <{ %struct.NonTrivial, i32, i32, i32 }>, ptr %0, i32 0, i32 0
+ %b = getelementptr inbounds <{ %struct.NonTrivial, i32, i32, i32 }>, ptr %0, i32 0, i32 1
+ call void @llvm.dbg.declare(metadata ptr %b, metadata !22, metadata !24), !dbg !26
+ call void @llvm.dbg.declare(metadata ptr %a, metadata !23, metadata !24), !dbg !27
+ %1 = load i32, ptr %b, align 4, !dbg !28, !tbaa !30
%tobool = icmp eq i32 %1, 0, !dbg !28
br i1 %tobool, label %if.else, label %if.then, !dbg !34
if.then: ; preds = %entry
- %c = getelementptr inbounds <{ %struct.NonTrivial, i32, i32, i32 }>, <{ %struct.NonTrivial, i32, i32, i32 }>* %0, i32 0, i32 3
- call void @llvm.dbg.declare(metadata i32* %c, metadata !20, metadata !24), !dbg !25
- %2 = load i32, i32* %c, align 4, !dbg !35, !tbaa !30
+ %c = getelementptr inbounds <{ %struct.NonTrivial, i32, i32, i32 }>, ptr %0, i32 0, i32 3
+ call void @llvm.dbg.declare(metadata ptr %c, metadata !20, metadata !24), !dbg !25
+ %2 = load i32, ptr %c, align 4, !dbg !35, !tbaa !30
tail call void @g(i32 %2) #4, !dbg !37
br label %if.end, !dbg !38
if.else: ; preds = %entry
- %x = getelementptr inbounds <{ %struct.NonTrivial, i32, i32, i32 }>, <{ %struct.NonTrivial, i32, i32, i32 }>* %0, i32 0, i32 0, i32 0, !dbg !39
- %3 = load i32, i32* %x, align 4, !dbg !39, !tbaa !41
+ %x = getelementptr inbounds <{ %struct.NonTrivial, i32, i32, i32 }>, ptr %0, i32 0, i32 0, i32 0, !dbg !39
+ %3 = load i32, ptr %x, align 4, !dbg !39, !tbaa !41
tail call void @h(i32 %3) #4, !dbg !43
br label %if.end
if.end: ; preds = %if.else, %if.then
- tail call x86_thiscallcc void @"\01??1NonTrivial@@QAE@XZ"(%struct.NonTrivial* nonnull %a) #4, !dbg !44
+ tail call x86_thiscallcc void @"\01??1NonTrivial@@QAE@XZ"(ptr nonnull %a) #4, !dbg !44
ret void, !dbg !44
}
declare void @h(i32) local_unnamed_addr
; Function Attrs: nounwind
-declare x86_thiscallcc void @"\01??1NonTrivial@@QAE@XZ"(%struct.NonTrivial*) unnamed_addr #3
+declare x86_thiscallcc void @"\01??1NonTrivial@@QAE@XZ"(ptr) unnamed_addr #3
attributes #0 = { nounwind }
attributes #1 = { nounwind readnone speculatable }
; FIXME: There is no debug info to describe "a".
-define i32 @foo(i32* %x) nounwind uwtable ssp !dbg !5 {
+define i32 @foo(ptr %x) nounwind uwtable ssp !dbg !5 {
entry:
- %x.addr = alloca i32*, align 8
- %saved_stack = alloca i8*
+ %x.addr = alloca ptr, align 8
+ %saved_stack = alloca ptr
%cleanup.dest.slot = alloca i32
- store i32* %x, i32** %x.addr, align 8
- call void @llvm.dbg.declare(metadata i32** %x.addr, metadata !14, metadata !DIExpression()), !dbg !15
- %0 = load i32*, i32** %x.addr, align 8, !dbg !16
- %1 = load i32, i32* %0, align 4, !dbg !16
+ store ptr %x, ptr %x.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %x.addr, metadata !14, metadata !DIExpression()), !dbg !15
+ %0 = load ptr, ptr %x.addr, align 8, !dbg !16
+ %1 = load i32, ptr %0, align 4, !dbg !16
%2 = zext i32 %1 to i64, !dbg !16
- %3 = call i8* @llvm.stacksave(), !dbg !16
- store i8* %3, i8** %saved_stack, !dbg !16
+ %3 = call ptr @llvm.stacksave(), !dbg !16
+ store ptr %3, ptr %saved_stack, !dbg !16
%vla = alloca i8, i64 %2, align 16, !dbg !16
- call void @llvm.dbg.declare(metadata i8* %vla, metadata !18, metadata !DIExpression()), !dbg !23
- store i32 1, i32* %cleanup.dest.slot
- %4 = load i8*, i8** %saved_stack, !dbg !24
- call void @llvm.stackrestore(i8* %4), !dbg !24
+ call void @llvm.dbg.declare(metadata ptr %vla, metadata !18, metadata !DIExpression()), !dbg !23
+ store i32 1, ptr %cleanup.dest.slot
+ %4 = load ptr, ptr %saved_stack, !dbg !24
+ call void @llvm.stackrestore(ptr %4), !dbg !24
ret i32 0, !dbg !25
}
declare void @llvm.dbg.declare(metadata, metadata, metadata) nounwind readnone
-declare i8* @llvm.stacksave() nounwind
+declare ptr @llvm.stacksave() nounwind
-declare void @llvm.stackrestore(i8*) nounwind
+declare void @llvm.stackrestore(ptr) nounwind
!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!27}
; rdar://problem/8884898
; CHECK: file 1 "/Users/manav/one/two" "simple.c"
-declare i32 @printf(i8*, ...) nounwind
+declare i32 @printf(ptr, ...) nounwind
define i32 @main() nounwind !dbg !6 {
ret i32 0
entry:
%i.addr = alloca i32, align 4
%j = alloca i32, align 4
- store i32 %i, i32* %i.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %i.addr, metadata !7, metadata !DIExpression()), !dbg !8
- call void @llvm.dbg.declare(metadata i32* %j, metadata !9, metadata !DIExpression()), !dbg !11
- store i32 2, i32* %j, align 4, !dbg !12
- %tmp = load i32, i32* %j, align 4, !dbg !13
+ store i32 %i, ptr %i.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %i.addr, metadata !7, metadata !DIExpression()), !dbg !8
+ call void @llvm.dbg.declare(metadata ptr %j, metadata !9, metadata !DIExpression()), !dbg !11
+ store i32 2, ptr %j, align 4, !dbg !12
+ %tmp = load i32, ptr %j, align 4, !dbg !13
%inc = add nsw i32 %tmp, 1, !dbg !13
- store i32 %inc, i32* %j, align 4, !dbg !13
- %tmp1 = load i32, i32* %j, align 4, !dbg !14
- %tmp2 = load i32, i32* %i.addr, align 4, !dbg !14
+ store i32 %inc, ptr %j, align 4, !dbg !13
+ %tmp1 = load i32, ptr %j, align 4, !dbg !14
+ %tmp2 = load i32, ptr %i.addr, align 4, !dbg !14
%add = add nsw i32 %tmp1, %tmp2, !dbg !14
- store i32 %add, i32* %j, align 4, !dbg !14
- %tmp3 = load i32, i32* %j, align 4, !dbg !15
+ store i32 %add, ptr %j, align 4, !dbg !14
+ %tmp3 = load i32, ptr %j, align 4, !dbg !15
ret i32 %tmp3, !dbg !15
}
define i32 @main() nounwind ssp !dbg !6 {
entry:
%retval = alloca i32, align 4
- store i32 0, i32* %retval, !dbg !22
+ store i32 0, ptr %retval, !dbg !22
%call = call i32 @foo(i32 21), !dbg !16
ret i32 %call, !dbg !16
}
; a::E::f
; Function Attrs: uwtable
-define void @_ZN1a1E1f17h4fcb50ce732fb2a7E(i8* align 1 dereferenceable(1) %self) unnamed_addr #0 !dbg !13 {
+define void @_ZN1a1E1f17h4fcb50ce732fb2a7E(ptr align 1 dereferenceable(1) %self) unnamed_addr #0 !dbg !13 {
start:
- %self.dbg.spill = alloca i8*, align 8
- store i8* %self, i8** %self.dbg.spill, align 8
- call void @llvm.dbg.declare(metadata i8** %self.dbg.spill, metadata !19, metadata !DIExpression()), !dbg !21
+ %self.dbg.spill = alloca ptr, align 8
+ store ptr %self, ptr %self.dbg.spill, align 8
+ call void @llvm.dbg.declare(metadata ptr %self.dbg.spill, metadata !19, metadata !DIExpression()), !dbg !21
ret void, !dbg !22
}
; Function Attrs: nounwind ssp uwtable
define void @bar() #0 !dbg !11 {
entry:
- store i8 97, i8* getelementptr inbounds ([4294967296 x i8], [4294967296 x i8]* @s, i32 0, i64 0), align 1, !dbg !14
+ store i8 97, ptr @s, align 1, !dbg !14
ret void, !dbg !16
}
\r
define dso_local void @b() local_unnamed_addr !dbg !7 {\r
entry:\r
- call void @llvm.dbg.value(metadata i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), metadata !11, metadata !DIExpression()), !dbg !15\r
- call void @llvm.dbg.value(metadata !DIArgList(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0)), metadata !14, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_stack_value)), !dbg !15\r
- tail call void @a(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0)) #3, !dbg !16\r
+ call void @llvm.dbg.value(metadata ptr @.str, metadata !11, metadata !DIExpression()), !dbg !15\r
+ call void @llvm.dbg.value(metadata !DIArgList(ptr @.str), metadata !14, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_stack_value)), !dbg !15\r
+ tail call void @a(ptr @.str) #3, !dbg !16\r
ret void, !dbg !17\r
}\r
\r
-declare !dbg !18 dso_local void @a(i8*) local_unnamed_addr\r
+declare !dbg !18 dso_local void @a(ptr) local_unnamed_addr\r
declare void @llvm.dbg.value(metadata, metadata, metadata)\r
\r
\r
call void @llvm.dbg.value(metadata i32 7, metadata !10, metadata !DIExpression()), !dbg !18
%call1 = call i32 (...) @f1() #3, !dbg !19
call void @llvm.dbg.value(metadata i32 %call1, metadata !10, metadata !DIExpression()), !dbg !19
- store i32 %call1, i32* %i, align 4, !dbg !19, !tbaa !20
- call void @llvm.dbg.value(metadata i32* %i, metadata !10, metadata !DIExpression(DW_OP_deref)), !dbg !24
- call void @f2(i32* %i) #3, !dbg !24
+ store i32 %call1, ptr %i, align 4, !dbg !19, !tbaa !20
+ call void @llvm.dbg.value(metadata ptr %i, metadata !10, metadata !DIExpression(DW_OP_deref)), !dbg !24
+ call void @f2(ptr %i) #3, !dbg !24
ret i32 0, !dbg !25
}
declare i32 @f1(...)
-declare void @f2(i32*)
+declare void @f2(ptr)
; Function Attrs: nounwind readnone
declare void @llvm.dbg.value(metadata, metadata, metadata) #2
declare <4 x i32> @__amdil_get_global_id_int()
declare void @llvm.dbg.value(metadata, metadata, metadata)
-define void @__OpenCL_test_kernel(i32 addrspace(1)* %ip) nounwind !dbg !0 {
+define void @__OpenCL_test_kernel(ptr addrspace(1) %ip) nounwind !dbg !0 {
entry:
- call void @llvm.dbg.value(metadata i32 addrspace(1)* %ip, metadata !7, metadata !DIExpression()), !dbg !8
+ call void @llvm.dbg.value(metadata ptr addrspace(1) %ip, metadata !7, metadata !DIExpression()), !dbg !8
%0 = call <4 x i32> @__amdil_get_global_id_int() nounwind
%1 = extractelement <4 x i32> %0, i32 0
call void @llvm.dbg.value(metadata i32 %1, metadata !9, metadata !DIExpression()), !dbg !11
call void @llvm.dbg.value(metadata i32 0, metadata !21, metadata !DIExpression()), !dbg !14
- %tmp2 = load i32, i32 addrspace(1)* %ip, align 4, !dbg !15
+ %tmp2 = load i32, ptr addrspace(1) %ip, align 4, !dbg !15
%tmp3 = add i32 0, %tmp2, !dbg !15
call void @llvm.dbg.value(metadata i32 %tmp3, metadata !13, metadata !DIExpression()), !dbg !15
- %arrayidx = getelementptr i32, i32 addrspace(1)* %ip, i32 %1, !dbg !16
- store i32 %tmp3, i32 addrspace(1)* %arrayidx, align 4, !dbg !16
+ %arrayidx = getelementptr i32, ptr addrspace(1) %ip, i32 %1, !dbg !16
+ store i32 %tmp3, ptr addrspace(1) %arrayidx, align 4, !dbg !16
ret void, !dbg !17
}
!llvm.dbg.cu = !{!2}
%bumble.sroa.3.0.extract.shift = lshr i64 %bumble.coerce, 32
%bumble.sroa.3.0.extract.trunc = trunc i64 %bumble.sroa.3.0.extract.shift to i32
call void @llvm.dbg.value(metadata i32 %bumble.sroa.3.0.extract.trunc, metadata !18, metadata !DIExpression(DW_OP_LLVM_fragment, 32, 32)), !dbg !19
- store i32 1, i32* @global, align 4, !dbg !20
+ store i32 1, ptr @global, align 4, !dbg !20
call void @llvm.dbg.value(metadata i32 undef, metadata !21, metadata !DIExpression()), !dbg !19
%retval.sroa.2.0.insert.ext = zext i32 %bumble.sroa.3.0.extract.trunc to i64, !dbg !22
%retval.sroa.2.0.insert.shift = shl i64 %retval.sroa.2.0.insert.ext, 32, !dbg !22
; CHECK-NEXT: DBG_VALUE %[[STACKLOC]], $noreg, [[BARVAR]]
%p1 = alloca i32
- call void @llvm.dbg.value(metadata i32 *null, metadata !17, metadata !DIExpression()), !dbg !18
- store i32 0, i32 *%p1
- call void @llvm.dbg.value(metadata i32 *%p1, metadata !17, metadata !DIExpression()), !dbg !18
+ call void @llvm.dbg.value(metadata ptr null, metadata !17, metadata !DIExpression()), !dbg !18
+ store i32 0, ptr %p1
+ call void @llvm.dbg.value(metadata ptr %p1, metadata !17, metadata !DIExpression()), !dbg !18
br label %foo
foo:
; CHECK: DBG_VALUE %[[STACKLOC]], $noreg, [[BARVAR]]
call void @dud()
- call void @llvm.dbg.value(metadata i32 *%p1, metadata !17, metadata !DIExpression()), !dbg !18
+ call void @llvm.dbg.value(metadata ptr %p1, metadata !17, metadata !DIExpression()), !dbg !18
br label %bar
bar:
; CHECK-NEXT: CALL
; CHECK-NEXT: ADJCALLSTACKUP
; CHECK-NEXT: DBG_VALUE 0, $noreg, [[BARVAR]]
- call void @llvm.dbg.value(metadata i32 *%p1, metadata !17, metadata !DIExpression()), !dbg !18
+ call void @llvm.dbg.value(metadata ptr %p1, metadata !17, metadata !DIExpression()), !dbg !18
call void @dud()
- call void @llvm.dbg.value(metadata i32 *null, metadata !17, metadata !DIExpression()), !dbg !18
- %loaded = load i32, i32 *%p1
+ call void @llvm.dbg.value(metadata ptr null, metadata !17, metadata !DIExpression()), !dbg !18
+ %loaded = load i32, ptr %p1
ret i32 %loaded, !dbg !19
}
br label %while.cond
while.cond:
- call void @llvm.dbg.value(metadata i64* %end, metadata !5, metadata !6), !dbg !7
- %call = call i1 @fn(i64* %end, i64* %end, i64* null, i8* null, i64 0, i64* null, i32* null, i8* null), !dbg !7
+ call void @llvm.dbg.value(metadata ptr %end, metadata !5, metadata !6), !dbg !7
+ %call = call i1 @fn(ptr %end, ptr %end, ptr null, ptr null, i64 0, ptr null, ptr null, ptr null), !dbg !7
br label %while.body
while.body:
; Note: A previous version of this test checked for `[DW_OP_plus_uconst 8] [$rsp+0]`,
; which is incorrect, because it adds the stack offset after dereferencing the stack pointer.
-declare i1 @fn(i64*, i64*, i64*, i8*, i64, i64*, i32*, i8*)
+declare i1 @fn(ptr, ptr, ptr, ptr, i64, ptr, ptr, ptr)
declare void @llvm.dbg.value(metadata, metadata, metadata)
!llvm.dbg.cu = !{!0}
entry:
%tmp.sroa.0 = alloca i64, align 8
%tmp.sroa.4 = alloca i64, align 8
- call void @llvm.dbg.declare(metadata i64* %tmp.sroa.0, metadata !19, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !21
- call void @llvm.dbg.declare(metadata i64* %tmp.sroa.4, metadata !19, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 64)), !dbg !21
+ call void @llvm.dbg.declare(metadata ptr %tmp.sroa.0, metadata !19, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !21
+ call void @llvm.dbg.declare(metadata ptr %tmp.sroa.4, metadata !19, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 64)), !dbg !21
call void @llvm.dbg.value(metadata i64 %s1.coerce0, metadata !17, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !22
call void @llvm.dbg.value(metadata i64 %s1.coerce1, metadata !17, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 64)), !dbg !22
call void @llvm.dbg.value(metadata i64 %s2.coerce0, metadata !18, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !23
call void @llvm.dbg.value(metadata i64 %s2.coerce1, metadata !18, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 64)), !dbg !23
- %tmp.sroa.0.0..sroa_cast = bitcast i64* %tmp.sroa.0 to i8*, !dbg !24
- call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %tmp.sroa.0.0..sroa_cast), !dbg !24
- %tmp.sroa.4.0..sroa_cast = bitcast i64* %tmp.sroa.4 to i8*, !dbg !24
- call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %tmp.sroa.4.0..sroa_cast), !dbg !24
- store volatile i64 0, i64* %tmp.sroa.0, align 8, !dbg !21
- store volatile i64 0, i64* %tmp.sroa.4, align 8, !dbg !21
+ call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %tmp.sroa.0), !dbg !24
+ call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %tmp.sroa.4), !dbg !24
+ store volatile i64 0, ptr %tmp.sroa.0, align 8, !dbg !21
+ store volatile i64 0, ptr %tmp.sroa.4, align 8, !dbg !21
tail call void @bar(i64 %s1.coerce0, i64 %s1.coerce1, i64 %s2.coerce0, i64 %s2.coerce1, i64 0, i64 0) #4, !dbg !25
call void @llvm.dbg.value(metadata i64 %s2.coerce0, metadata !17, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !22
call void @llvm.dbg.value(metadata i64 %s2.coerce1, metadata !17, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 64)), !dbg !22
%s2.coerce1.tr = trunc i64 %s2.coerce1 to i32, !dbg !26
%conv = shl i32 %s2.coerce1.tr, 1, !dbg !26
- call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %tmp.sroa.0.0..sroa_cast), !dbg !27
- call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %tmp.sroa.4.0..sroa_cast), !dbg !27
+ call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %tmp.sroa.0), !dbg !27
+ call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %tmp.sroa.4), !dbg !27
ret i32 %conv, !dbg !28
}
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
declare void @llvm.dbg.value(metadata, metadata, metadata) #1
-declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #2
-declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #2
+declare void @llvm.lifetime.start.p0(i64, ptr nocapture) #2
+declare void @llvm.lifetime.end.p0(i64, ptr nocapture) #2
declare dso_local void @bar(i64, i64, i64, i64, i64, i64) local_unnamed_addr
source_filename = "test/DebugInfo/X86/dbg-value-inlined-parameter.ll"
-%struct.S1 = type { float*, i32 }
+%struct.S1 = type { ptr, i32 }
@p = common global %struct.S1 zeroinitializer, align 8, !dbg !0
; Function Attrs: nounwind optsize ssp
-define i32 @foo(%struct.S1* nocapture %sp, i32 %nums) #0 !dbg !15 {
+define i32 @foo(ptr nocapture %sp, i32 %nums) #0 !dbg !15 {
entry:
- tail call void @llvm.dbg.value(metadata %struct.S1* %sp, metadata !19, metadata !22), !dbg !23
+ tail call void @llvm.dbg.value(metadata ptr %sp, metadata !19, metadata !22), !dbg !23
tail call void @llvm.dbg.value(metadata i32 %nums, metadata !21, metadata !22), !dbg !24
- %tmp2 = getelementptr inbounds %struct.S1, %struct.S1* %sp, i64 0, i32 1, !dbg !25
- store i32 %nums, i32* %tmp2, align 4, !dbg !25
- %call = tail call float* @bar(i32 %nums) #3, !dbg !27
- %tmp5 = getelementptr inbounds %struct.S1, %struct.S1* %sp, i64 0, i32 0, !dbg !27
- store float* %call, float** %tmp5, align 8, !dbg !27
- %cmp = icmp ne float* %call, null, !dbg !28
+ %tmp2 = getelementptr inbounds %struct.S1, ptr %sp, i64 0, i32 1, !dbg !25
+ store i32 %nums, ptr %tmp2, align 4, !dbg !25
+ %call = tail call ptr @bar(i32 %nums) #3, !dbg !27
+ store ptr %call, ptr %sp, align 8, !dbg !27
+ %cmp = icmp ne ptr %call, null, !dbg !28
%cond = zext i1 %cmp to i32, !dbg !28
ret i32 %cond, !dbg !28
}
; Function Attrs: optsize
-declare float* @bar(i32) #1
+declare ptr @bar(i32) #1
; Function Attrs: nounwind optsize ssp
define void @foobar() #0 !dbg !29 {
entry:
- tail call void @llvm.dbg.value(metadata %struct.S1* @p, metadata !19, metadata !22) #4, !dbg !32
+ tail call void @llvm.dbg.value(metadata ptr @p, metadata !19, metadata !22) #4, !dbg !32
tail call void @llvm.dbg.value(metadata i32 1, metadata !21, metadata !22) #4, !dbg !35
- store i32 1, i32* getelementptr inbounds (%struct.S1, %struct.S1* @p, i64 0, i32 1), align 8, !dbg !36
- %call.i = tail call float* @bar(i32 1) #3, !dbg !37
- store float* %call.i, float** getelementptr inbounds (%struct.S1, %struct.S1* @p, i64 0, i32 0), align 8, !dbg !37
+ store i32 1, ptr getelementptr inbounds (%struct.S1, ptr @p, i64 0, i32 1), align 8, !dbg !36
+ %call.i = tail call ptr @bar(i32 1) #3, !dbg !37
+ store ptr %call.i, ptr @p, align 8, !dbg !37
ret void, !dbg !38
}
; PR 9879
; CHECK: ##DEBUG_VALUE: tid <-
-%0 = type { i8*, i8*, i8*, i8*, i32 }
+%0 = type { ptr, ptr, ptr, ptr, i32 }
@sgv = internal addrspace(2) constant [1 x i8] zeroinitializer
@fgv = internal addrspace(2) constant [1 x i8] zeroinitializer
-@lvgv = internal constant [0 x i8*] zeroinitializer
-@llvm.global.annotations = appending global [1 x %0] [%0 { i8* bitcast (void (i32 addrspace(1)*)* @__OpenCL_nbt02_kernel to i8*), i8* addrspacecast ([1 x i8] addrspace(2)* @sgv to i8*), i8* addrspacecast ([1 x i8] addrspace(2)* @fgv to i8*), i8* bitcast ([0 x i8*]* @lvgv to i8*), i32 0 }], section "llvm.metadata"
+@lvgv = internal constant [0 x ptr] zeroinitializer
+@llvm.global.annotations = appending global [1 x %0] [%0 { ptr @__OpenCL_nbt02_kernel, ptr addrspacecast (ptr addrspace(2) @sgv to ptr), ptr addrspacecast (ptr addrspace(2) @fgv to ptr), ptr @lvgv, i32 0 }], section "llvm.metadata"
-define void @__OpenCL_nbt02_kernel(i32 addrspace(1)* %ip) nounwind !dbg !0 {
+define void @__OpenCL_nbt02_kernel(ptr addrspace(1) %ip) nounwind !dbg !0 {
entry:
- call void @llvm.dbg.value(metadata i32 addrspace(1)* %ip, metadata !8, metadata !DIExpression()), !dbg !9
+ call void @llvm.dbg.value(metadata ptr addrspace(1) %ip, metadata !8, metadata !DIExpression()), !dbg !9
%0 = call <4 x i32> @__amdil_get_local_id_int() nounwind
%1 = extractelement <4 x i32> %0, i32 0
br label %2
call void @llvm.dbg.value(metadata i32 %20, metadata !15, metadata !DIExpression()), !dbg !16
%tmp5 = add i32 %6, %13, !dbg !17
%tmp7 = add i32 %tmp5, %20, !dbg !17
- store i32 %tmp7, i32 addrspace(1)* %ip, align 4, !dbg !17
+ store i32 %tmp7, ptr addrspace(1) %ip, align 4, !dbg !17
br label %return, !dbg !17
return: ; preds = %get_local_size.exit
\r
declare <4 x i32> @__amdil_get_global_id_int()\r
declare void @llvm.dbg.value(metadata, metadata, metadata)\r
-define void @__OpenCL_test_kernel(i32 addrspace(1)* %ip) nounwind !dbg !0 {\r
+define void @__OpenCL_test_kernel(ptr addrspace(1) %ip) nounwind !dbg !0 {\r
entry:\r
- call void @llvm.dbg.value(metadata !DIArgList(i32 addrspace(1)* %ip), metadata !7, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_stack_value)), !dbg !8\r
+ call void @llvm.dbg.value(metadata !DIArgList(ptr addrspace(1) %ip), metadata !7, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_stack_value)), !dbg !8\r
%0 = call <4 x i32> @__amdil_get_global_id_int() nounwind\r
%1 = extractelement <4 x i32> %0, i32 0\r
call void @llvm.dbg.value(metadata !DIArgList(i32 %1), metadata !9, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_stack_value)), !dbg !11\r
call void @llvm.dbg.value(metadata !DIArgList(i32 0), metadata !21, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_stack_value)), !dbg !14\r
- %tmp2 = load i32, i32 addrspace(1)* %ip, align 4, !dbg !15\r
+ %tmp2 = load i32, ptr addrspace(1) %ip, align 4, !dbg !15\r
%tmp3 = add i32 0, %tmp2, !dbg !15\r
call void @llvm.dbg.value(metadata !DIArgList(i32 %tmp3), metadata !13, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_stack_value)), !dbg !15\r
- %arrayidx = getelementptr i32, i32 addrspace(1)* %ip, i32 %1, !dbg !16\r
- store i32 %tmp3, i32 addrspace(1)* %arrayidx, align 4, !dbg !16\r
+ %arrayidx = getelementptr i32, ptr addrspace(1) %ip, i32 %1, !dbg !16\r
+ store i32 %tmp3, ptr addrspace(1) %arrayidx, align 4, !dbg !16\r
ret void, !dbg !17\r
}\r
!llvm.dbg.cu = !{!2}\r
declare void @llvm.dbg.declare(metadata, metadata, metadata) nounwind readnone
-define i32 @foo(i32 %dev, i64 %cmd, i8* %data, i32 %data2) nounwind optsize ssp !dbg !0 {
+define i32 @foo(i32 %dev, i64 %cmd, ptr %data, i32 %data2) nounwind optsize ssp !dbg !0 {
entry:
call void @llvm.dbg.value(metadata i32 %dev, metadata !12, metadata !DIExpression()), !dbg !13
- %tmp.i = load i32, i32* @dfm, align 4, !dbg !14
+ %tmp.i = load i32, ptr @dfm, align 4, !dbg !14
%cmp.i = icmp eq i32 %tmp.i, 0, !dbg !14
br i1 %cmp.i, label %if.else, label %if.end.i, !dbg !14
ret i32 0
}
-declare hidden fastcc i32 @bar(i32, i32* nocapture) nounwind optsize ssp
+declare hidden fastcc i32 @bar(i32, ptr nocapture) nounwind optsize ssp
declare hidden fastcc i32 @bar2(i32) nounwind optsize ssp
declare hidden fastcc i32 @bar3(i32) nounwind optsize ssp
declare void @llvm.dbg.value(metadata, metadata, metadata) nounwind readnone
%struct.a = type { i32 }
-define i32 @bar(%struct.a* nocapture %b) nounwind ssp !dbg !0 {
+define i32 @bar(ptr nocapture %b) nounwind ssp !dbg !0 {
entry:
- tail call void @llvm.dbg.value(metadata %struct.a* %b, metadata !6, metadata !DIExpression()), !dbg !13
- %tmp1 = getelementptr inbounds %struct.a, %struct.a* %b, i64 0, i32 0, !dbg !14
- %tmp2 = load i32, i32* %tmp1, align 4, !dbg !14
+ tail call void @llvm.dbg.value(metadata ptr %b, metadata !6, metadata !DIExpression()), !dbg !13
+ %tmp2 = load i32, ptr %b, align 4, !dbg !14
tail call void @llvm.dbg.value(metadata i32 %tmp2, metadata !11, metadata !DIExpression()), !dbg !14
%call = tail call i32 (...) @foo(i32 %tmp2) nounwind , !dbg !18
%add = add nsw i32 %tmp2, 1, !dbg !19
@x = common global i32 0, align 4, !dbg !0
; Function Attrs: nounwind uwtable
-define i32 @main(i32 %argc, i8** nocapture readnone %argv) #0 !dbg !12 {
+define i32 @main(i32 %argc, ptr nocapture readnone %argv) #0 !dbg !12 {
entry:
- tail call void @llvm.dbg.value(metadata i8** %argv, metadata !19, metadata !21), !dbg !22
+ tail call void @llvm.dbg.value(metadata ptr %argv, metadata !19, metadata !21), !dbg !22
tail call void @llvm.dbg.value(metadata i32 %argc, metadata !20, metadata !21), !dbg !23
- store volatile i32 1, i32* @x, align 4, !dbg !24, !tbaa !25
+ store volatile i32 1, ptr @x, align 4, !dbg !24, !tbaa !25
tail call void @clobber() #2, !dbg !29
- store volatile i32 2, i32* @x, align 4, !dbg !30, !tbaa !25
- %0 = load volatile i32, i32* @x, align 4, !dbg !31, !tbaa !25
+ store volatile i32 2, ptr @x, align 4, !dbg !30, !tbaa !25
+ %0 = load volatile i32, ptr @x, align 4, !dbg !31, !tbaa !25
%tobool = icmp eq i32 %0, 0, !dbg !31
br i1 %tobool, label %if.else, label %if.then, !dbg !33
if.then: ; preds = %entry
- store volatile i32 3, i32* @x, align 4, !dbg !34, !tbaa !25
+ store volatile i32 3, ptr @x, align 4, !dbg !34, !tbaa !25
br label %if.end, !dbg !36
if.else: ; preds = %entry
- store volatile i32 4, i32* @x, align 4, !dbg !37, !tbaa !25
+ store volatile i32 4, ptr @x, align 4, !dbg !37, !tbaa !25
br label %if.end
if.end: ; preds = %if.else, %if.then
%a = type { i32, i32 }
-define hidden fastcc %a* @test() #1 !dbg !1 {
+define hidden fastcc ptr @test() #1 !dbg !1 {
entry:
- %0 = icmp eq %a* undef, null, !dbg !12
+ %0 = icmp eq ptr undef, null, !dbg !12
br i1 %0, label %"14", label %return, !dbg !12
"14": ; preds = %"8"
br i1 undef, label %may_unswitch_on.exit, label %"44.i", !dbg !12
"44.i": ; preds = %"42.i"
- %2 = load %a*, %a** undef, align 8, !dbg !12
- %3 = bitcast %a* %2 to %a*, !dbg !12
- call void @llvm.dbg.value(metadata %a* %3, metadata !6, metadata !DIExpression(DW_OP_deref)), !dbg !12
+ %2 = load ptr, ptr undef, align 8, !dbg !12
+ call void @llvm.dbg.value(metadata ptr %2, metadata !6, metadata !DIExpression(DW_OP_deref)), !dbg !12
br label %may_unswitch_on.exit, !dbg !12
"45.i": ; preds = %"38.i"
unreachable
may_unswitch_on.exit: ; preds = %"44.i", %"42.i", %"41.i", %"39.i", %"23.i", %"21.i", %VEC_edge_base_index.exit7.i, %VEC_edge_base_index.exit.i, %"10.i", %"6.i", %"21"
- %4 = phi %a* [ %3, %"44.i" ], [ null, %"6.i" ], [ null, %"10.i" ], [ null, %VEC_edge_base_index.exit7.i ], [ null, %VEC_edge_base_index.exit.i ], [ null, %"21.i" ], [ null, %"23.i" ], [ null, %"39.i" ], [ null, %"42.i" ], [ null, %"41.i" ], [ null, %"21" ]
+ %3 = phi ptr [ %2, %"44.i" ], [ null, %"6.i" ], [ null, %"10.i" ], [ null, %VEC_edge_base_index.exit7.i ], [ null, %VEC_edge_base_index.exit.i ], [ null, %"21.i" ], [ null, %"23.i" ], [ null, %"39.i" ], [ null, %"42.i" ], [ null, %"41.i" ], [ null, %"21" ]
br label %return
"25": ; preds = %"14"
unreachable
"return":
- %result = phi %a* [ null, %entry ], [ %4, %may_unswitch_on.exit ]
- ret %a* %result, !dbg !12
+ %result = phi ptr [ null, %entry ], [ %3, %may_unswitch_on.exit ]
+ ret ptr %result, !dbg !12
}
attributes #0 = { nounwind readnone }
; while (cell) {
; unsigned bit_offset = cell_offset ? __builtin_ctz(cell) : 32;
; unsigned bit_mask = 1U << bit_offset;
-; unsigned slot = (cell_offset + bit_offset) << /*log2(sizeof(void*))*/ 3;
+; unsigned slot = (cell_offset + bit_offset) << /*log2(sizeof(ptr))*/ 3;
; cell ^= bit_mask + page_start_[slot];
; }
; }
declare i32 @if_then()
; Function Attrs: noinline nounwind readonly uwtable
-define void @f(i32 %cell_offset, i32* nocapture %page_start_) local_unnamed_addr #0 !dbg !31 {
+define void @f(i32 %cell_offset, ptr nocapture %page_start_) local_unnamed_addr #0 !dbg !31 {
entry:
- %0 = load i32, i32* %page_start_, align 4, !dbg !45
+ %0 = load i32, ptr %page_start_, align 4, !dbg !45
%tobool14 = icmp eq i32 %0, 0, !dbg !47
br i1 %tobool14, label %while.end, label %while.body, !dbg !47
%add = add i32 %cond, %cell_offset, !dbg !54
%shl2 = shl i32 %add, 3, !dbg !55
%idxprom = zext i32 %shl2 to i64, !dbg !57
- %arrayidx3 = getelementptr inbounds i32, i32* %page_start_, i64 %idxprom, !dbg !57
- %2 = load i32, i32* %arrayidx3, align 4, !dbg !57
+ %arrayidx3 = getelementptr inbounds i32, ptr %page_start_, i64 %idxprom, !dbg !57
+ %2 = load i32, ptr %arrayidx3, align 4, !dbg !57
%add4 = add i32 %2, %shl, !dbg !58
%xor = xor i32 %add4, %cell.015, !dbg !59
tail call void @llvm.dbg.value(metadata i32 %xor, metadata !38, metadata !DIExpression()), !dbg !46
define dso_local void @test() !dbg !9 {
%1 = alloca <6 x float>, align 32
- call void @llvm.dbg.declare(metadata <6 x float>* %1, metadata !13, metadata !DIExpression()), !dbg !19
- %2 = bitcast <6 x float>* %1 to i8*, !dbg !20
- call void @foo(i8* %2), !dbg !21
+ call void @llvm.dbg.declare(metadata ptr %1, metadata !13, metadata !DIExpression()), !dbg !19
+ call void @foo(ptr %1), !dbg !21
ret void, !dbg !22
}
declare void @llvm.dbg.declare(metadata, metadata, metadata)
-declare dso_local void @foo(i8*)
+declare dso_local void @foo(ptr)
!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!5, !6, !7}
@__asan_mapping_offset = linkonce_odr constant i64 2147450880
@__asan_mapping_scale = linkonce_odr constant i64 3
-@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 1, void ()* @asan.module_ctor, i8* null }]
+@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 1, ptr @asan.module_ctor, ptr null }]
@___asan_gen_ = private unnamed_addr constant [16 x i8] c"1 32 4 5 .addr \00", align 1
; Function Attrs: sanitize_address uwtable
-define void @_Z4funci(%struct.A* noalias sret(%struct.A) %agg.result, i32) #0 "stack-protector-buffer-size"="1" !dbg !4 {
+define void @_Z4funci(ptr noalias sret(%struct.A) %agg.result, i32) #0 "stack-protector-buffer-size"="1" !dbg !4 {
entry:
%MyAlloca = alloca [96 x i8], align 32
- %1 = ptrtoint [96 x i8]* %MyAlloca to i64
+ %1 = ptrtoint ptr %MyAlloca to i64
%2 = add i64 %1, 32
- %3 = inttoptr i64 %2 to i32*
- %4 = inttoptr i64 %1 to i64*
- store i64 1102416563, i64* %4
+ %3 = inttoptr i64 %2 to ptr
+ %4 = inttoptr i64 %1 to ptr
+ store i64 1102416563, ptr %4
%5 = add i64 %1, 8
- %6 = inttoptr i64 %5 to i64*
- store i64 ptrtoint ([16 x i8]* @___asan_gen_ to i64), i64* %6
+ %6 = inttoptr i64 %5 to ptr
+ store i64 ptrtoint (ptr @___asan_gen_ to i64), ptr %6
%7 = add i64 %1, 16
- %8 = inttoptr i64 %7 to i64*
- store i64 ptrtoint (void (%struct.A*, i32)* @_Z4funci to i64), i64* %8
+ %8 = inttoptr i64 %7 to ptr
+ store i64 ptrtoint (ptr @_Z4funci to i64), ptr %8
%9 = lshr i64 %1, 3
%10 = add i64 %9, 2147450880
- %11 = inttoptr i64 %10 to i32*
- store i32 -235802127, i32* %11
+ %11 = inttoptr i64 %10 to ptr
+ store i32 -235802127, ptr %11
%12 = add i64 %10, 4
- %13 = inttoptr i64 %12 to i32*
- store i32 -185273340, i32* %13
+ %13 = inttoptr i64 %12 to ptr
+ store i32 -185273340, ptr %13
%14 = add i64 %10, 8
- %15 = inttoptr i64 %14 to i32*
- store i32 -202116109, i32* %15
- %16 = ptrtoint i32* %3 to i64
+ %15 = inttoptr i64 %14 to ptr
+ store i32 -202116109, ptr %15
+ %16 = ptrtoint ptr %3 to i64
%17 = lshr i64 %16, 3
%18 = add i64 %17, 2147450880
- %19 = inttoptr i64 %18 to i8*
- %20 = load i8, i8* %19
+ %19 = inttoptr i64 %18 to ptr
+ %20 = load i8, ptr %19
%21 = icmp ne i8 %20, 0
- call void @llvm.dbg.declare(metadata i32* %3, metadata !23, metadata !28), !dbg !DILocation(scope: !4)
+ call void @llvm.dbg.declare(metadata ptr %3, metadata !23, metadata !28), !dbg !DILocation(scope: !4)
br i1 %21, label %22, label %28
; <label>:22 ; preds = %entry
unreachable
; <label>:28 ; preds = %22, %entry
- store i32 %0, i32* %3, align 4
- call void @llvm.dbg.declare(metadata %struct.A* %agg.result, metadata !24, metadata !DIExpression()), !dbg !25
- call void @_ZN1AC1Ev(%struct.A* %agg.result), !dbg !25
- store i64 1172321806, i64* %4, !dbg !26
- %29 = inttoptr i64 %10 to i32*, !dbg !26
- store i32 0, i32* %29, !dbg !26
+ store i32 %0, ptr %3, align 4
+ call void @llvm.dbg.declare(metadata ptr %agg.result, metadata !24, metadata !DIExpression()), !dbg !25
+ call void @_ZN1AC1Ev(ptr %agg.result), !dbg !25
+ store i64 1172321806, ptr %4, !dbg !26
+ %29 = inttoptr i64 %10 to ptr, !dbg !26
+ store i32 0, ptr %29, !dbg !26
%30 = add i64 %10, 4, !dbg !26
- %31 = inttoptr i64 %30 to i32*, !dbg !26
- store i32 0, i32* %31, !dbg !26
+ %31 = inttoptr i64 %30 to ptr, !dbg !26
+ store i32 0, ptr %31, !dbg !26
%32 = add i64 %10, 8, !dbg !26
- %33 = inttoptr i64 %32 to i32*, !dbg !26
- store i32 0, i32* %33, !dbg !26
+ %33 = inttoptr i64 %32 to ptr, !dbg !26
+ store i32 0, ptr %33, !dbg !26
ret void, !dbg !26
}
; Function Attrs: nounwind readnone
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
-declare void @_ZN1AC1Ev(%struct.A*) #2
+declare void @_ZN1AC1Ev(ptr) #2
define internal void @asan.module_ctor() "stack-protector-buffer-size"="1" {
call void @__asan_init_v3()
- %1 = load volatile i64, i64* @__asan_mapping_offset
- %2 = load volatile i64, i64* @__asan_mapping_scale
+ %1 = load volatile i64, ptr @__asan_mapping_offset
+ %2 = load volatile i64, ptr @__asan_mapping_scale
ret void
}
; Based on the following reproducer:
;
; #include <stdint.h>
-; extern void callee(uint8_t, uint16_t, uint32_t, void *);
+; extern void callee(uint8_t, uint16_t, uint32_t, ptr);
; int caller() {
-; callee(0, 0, 0, (void *)0);
+; callee(0, 0, 0, (ptr)0);
; return 1;
; }
; Function Attrs: nounwind uwtable
define i32 @caller() #0 !dbg !15 {
entry:
- tail call void @callee(i8 zeroext 0, i16 zeroext 0, i32 0, i8* null), !dbg !19
+ tail call void @callee(i8 zeroext 0, i16 zeroext 0, i32 0, ptr null), !dbg !19
ret i32 1, !dbg !20
}
-declare !dbg !5 void @callee(i8 zeroext, i16 zeroext, i32, i8*)
+declare !dbg !5 void @callee(i8 zeroext, i16 zeroext, i32, ptr)
attributes #0 = { nounwind uwtable }
define dso_local i32 @main() local_unnamed_addr !dbg !7 {
%1 = alloca i32, align 4
- %2 = load i32, i32* @b, align 1, !dbg !13
+ %2 = load i32, ptr @b, align 1, !dbg !13
; CHECK: call void @llvm.dbg.value(metadata i32 undef
call void @llvm.dbg.value(metadata i32 %2, metadata !12, metadata !DIExpression()), !dbg !13
- store i32 %2, i32* %1, align 4, !dbg !13
+ store i32 %2, ptr %1, align 4, !dbg !13
ret i32 0, !dbg !13
}
%struct.myClass = type { i8 }
; Function Attrs: noinline nounwind optnone uwtable
-define dso_local double @_ZN7myClass7findMaxEv(%struct.myClass* %this) #0 align 2 !dbg !7 {
+define dso_local double @_ZN7myClass7findMaxEv(ptr %this) #0 align 2 !dbg !7 {
entry:
- %this.addr = alloca %struct.myClass*, align 8
- store %struct.myClass* %this, %struct.myClass** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %struct.myClass** %this.addr, metadata !17, metadata !DIExpression()), !dbg !19
- %this1 = load %struct.myClass*, %struct.myClass** %this.addr, align 8
+ %this.addr = alloca ptr, align 8
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !17, metadata !DIExpression()), !dbg !19
+ %this1 = load ptr, ptr %this.addr, align 8
ret double 0.000000e+00, !dbg !20
}
; Function Attrs: nounwind readnone speculatable willreturn
%0 = type opaque
%struct.__block_descriptor = type { i64, i64 }
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
-define internal void @"__24-[Main initWithContext:]_block_invoke"(i8* %.block_descriptor, i8* %obj) #0 !dbg !38 {
- %block = bitcast i8* %.block_descriptor to <{ i8*, i32, i32, i8*, %struct.__block_descriptor*, %0* }>*, !dbg !84
- %block.captured-self = getelementptr inbounds <{ i8*, i32, i32, i8*, %struct.__block_descriptor*, %0* }>, <{ i8*, i32, i32, i8*, %struct.__block_descriptor*, %0* }>* %block, i32 0, i32 5, !dbg !84
- call void @llvm.dbg.declare(metadata <{ i8*, i32, i32, i8*, %struct.__block_descriptor*, %0* }>* %block, metadata !86, metadata !110), !dbg !87
+define internal void @"__24-[Main initWithContext:]_block_invoke"(ptr %.block_descriptor, ptr %obj) #0 !dbg !38 {
+ %block.captured-self = getelementptr inbounds <{ ptr, i32, i32, ptr, ptr, ptr }>, ptr %.block_descriptor, i32 0, i32 5, !dbg !84
+ call void @llvm.dbg.declare(metadata ptr %.block_descriptor, metadata !86, metadata !110), !dbg !87
ret void, !dbg !87
}
-define internal void @"__24-[Main initWithContext:]_block_invoke_2"(i8* %.block_descriptor, i8* %object) #0 !dbg !42 {
- %block = bitcast i8* %.block_descriptor to <{ i8*, i32, i32, i8*, %struct.__block_descriptor*, %0* }>*, !dbg !103
- %block.captured-self = getelementptr inbounds <{ i8*, i32, i32, i8*, %struct.__block_descriptor*, %0* }>, <{ i8*, i32, i32, i8*, %struct.__block_descriptor*, %0* }>* %block, i32 0, i32 5, !dbg !103
- call void @llvm.dbg.declare(metadata <{ i8*, i32, i32, i8*, %struct.__block_descriptor*, %0* }>* %block, metadata !105, metadata !109), !dbg !106
+define internal void @"__24-[Main initWithContext:]_block_invoke_2"(ptr %.block_descriptor, ptr %object) #0 !dbg !42 {
+ %block.captured-self = getelementptr inbounds <{ ptr, i32, i32, ptr, ptr, ptr }>, ptr %.block_descriptor, i32 0, i32 5, !dbg !103
+ call void @llvm.dbg.declare(metadata ptr %.block_descriptor, metadata !105, metadata !109), !dbg !106
ret void, !dbg !106
}
define i32 @main() !dbg !6 {
entry:
%retval = alloca i32, align 4
- store i32 0, i32* %retval, align 4
+ store i32 0, ptr %retval, align 4
ret i32 0, !dbg !10
}
entry:
%retval = alloca i32, align 4
%instance_C = alloca %class.C, align 4
- store i32 0, i32* %retval
- call void @llvm.dbg.declare(metadata %class.C* %instance_C, metadata !29, metadata !30), !dbg !31
- %d = getelementptr inbounds %class.C, %class.C* %instance_C, i32 0, i32 0, !dbg !32
- store i32 8, i32* %d, align 4, !dbg !32
- %0 = load i32, i32* @_ZN1C1cE, align 4, !dbg !33
+ store i32 0, ptr %retval
+ call void @llvm.dbg.declare(metadata ptr %instance_C, metadata !29, metadata !30), !dbg !31
+ store i32 8, ptr %instance_C, align 4, !dbg !32
+ %0 = load i32, ptr @_ZN1C1cE, align 4, !dbg !33
ret i32 %0, !dbg !33
}
define dso_local i32 @main() #0 !dbg !7 {
entry:
%newChar = alloca i8, align 64
- call void @llvm.dbg.declare(metadata i8* %newChar, metadata !12, metadata !DIExpression()), !dbg !15
+ call void @llvm.dbg.declare(metadata ptr %newChar, metadata !12, metadata !DIExpression()), !dbg !15
ret i32 0, !dbg !16
}
%retval = alloca i32, align 4
%f1 = alloca %class.foo, align 1
%f2 = alloca %class.foo.0, align 1
- store i32 0, i32* %retval, align 4
- call void @llvm.dbg.declare(metadata %class.foo* %f1, metadata !11, metadata !DIExpression()), !dbg !16
- call void @llvm.dbg.declare(metadata %class.foo.0* %f2, metadata !17, metadata !DIExpression()), !dbg !23
+ store i32 0, ptr %retval, align 4
+ call void @llvm.dbg.declare(metadata ptr %f1, metadata !11, metadata !DIExpression()), !dbg !16
+ call void @llvm.dbg.declare(metadata ptr %f2, metadata !17, metadata !DIExpression()), !dbg !23
ret i32 0, !dbg !24
}
; Function Attrs: nounwind readnone speculatable willreturn
; CHECK-NEXT: Tag: DW_TAG_variable
; CHECK-NEXT: DW_IDX_die_offset: 0x{{[0-9a-f]*}}
-@foobar = common dso_local global i8* null, align 8, !dbg !0
+@foobar = common dso_local global ptr null, align 8, !dbg !0
!llvm.dbg.cu = !{!2}
!llvm.module.flags = !{!7, !8, !9}
; low_pc for the compile unit.
; CHECK-NOT: .rela.debug_ranges
-@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 0, void ()* @__msan_init, i8* null }]
+@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 0, ptr @__msan_init, ptr null }]
@str = private unnamed_addr constant [4 x i8] c"zzz\00"
@__msan_retval_tls = external thread_local(initialexec) global [8 x i64]
@__msan_retval_origin_tls = external thread_local(initialexec) global i32
; Function Attrs: sanitize_memory uwtable
define void @_Z1fv() #0 !dbg !4 {
entry:
- %p = alloca i32*, align 8
- %0 = ptrtoint i32** %p to i64, !dbg !19
+ %p = alloca ptr, align 8
+ %0 = ptrtoint ptr %p to i64, !dbg !19
%1 = and i64 %0, -70368744177672, !dbg !19
- %2 = inttoptr i64 %1 to i64*, !dbg !19
- store i64 -1, i64* %2, align 8, !dbg !19
- store i64 0, i64* getelementptr inbounds ([1000 x i64], [1000 x i64]* @__msan_param_tls, i64 0, i64 0), align 8, !dbg !19
- store i64 0, i64* getelementptr inbounds ([8 x i64], [8 x i64]* @__msan_retval_tls, i64 0, i64 0), align 8, !dbg !19
- %call = call i8* @_Znwm(i64 4) #4, !dbg !19
- %_msret = load i64, i64* getelementptr inbounds ([8 x i64], [8 x i64]* @__msan_retval_tls, i64 0, i64 0), align 8, !dbg !19
- %3 = bitcast i8* %call to i32*, !dbg !19
- tail call void @llvm.dbg.value(metadata i32* %3, metadata !9, metadata !DIExpression()), !dbg !19
- %4 = inttoptr i64 %1 to i64*, !dbg !19
- store i64 %_msret, i64* %4, align 8, !dbg !19
- store volatile i32* %3, i32** %p, align 8, !dbg !19
- tail call void @llvm.dbg.value(metadata i32** %p, metadata !9, metadata !DIExpression()), !dbg !19
- %p.0.p.0. = load volatile i32*, i32** %p, align 8, !dbg !20
- %_msld = load i64, i64* %4, align 8, !dbg !20
+ %2 = inttoptr i64 %1 to ptr, !dbg !19
+ store i64 -1, ptr %2, align 8, !dbg !19
+ store i64 0, ptr @__msan_param_tls, align 8, !dbg !19
+ store i64 0, ptr @__msan_retval_tls, align 8, !dbg !19
+ %call = call ptr @_Znwm(i64 4) #4, !dbg !19
+ %_msret = load i64, ptr @__msan_retval_tls, align 8, !dbg !19
+ tail call void @llvm.dbg.value(metadata ptr %call, metadata !9, metadata !DIExpression()), !dbg !19
+ %3 = inttoptr i64 %1 to ptr, !dbg !19
+ store i64 %_msret, ptr %3, align 8, !dbg !19
+ store volatile ptr %call, ptr %p, align 8, !dbg !19
+ tail call void @llvm.dbg.value(metadata ptr %p, metadata !9, metadata !DIExpression()), !dbg !19
+ %p.0.p.0. = load volatile ptr, ptr %p, align 8, !dbg !20
+ %_msld = load i64, ptr %3, align 8, !dbg !20
%_mscmp = icmp eq i64 %_msld, 0, !dbg !20
- br i1 %_mscmp, label %6, label %5, !dbg !20, !prof !22
+ br i1 %_mscmp, label %5, label %4, !dbg !20, !prof !22
; <label>:5 ; preds = %entry
call void @__msan_warning_noreturn(), !dbg !20
unreachable, !dbg !20
; <label>:6 ; preds = %entry
- %7 = load i32, i32* %p.0.p.0., align 4, !dbg !20, !tbaa !23
- %8 = ptrtoint i32* %p.0.p.0. to i64, !dbg !20
- %9 = and i64 %8, -70368744177665, !dbg !20
- %10 = inttoptr i64 %9 to i32*, !dbg !20
- %_msld2 = load i32, i32* %10, align 4, !dbg !20
- %11 = icmp ne i32 %_msld2, 0, !dbg !20
- %12 = xor i32 %_msld2, -1, !dbg !20
- %13 = and i32 %7, %12, !dbg !20
- %14 = icmp eq i32 %13, 0, !dbg !20
- %_msprop_icmp = and i1 %11, %14, !dbg !20
- br i1 %_msprop_icmp, label %15, label %16, !dbg !20, !prof !27
-
-; <label>:15 ; preds = %6
+ %6 = load i32, ptr %p.0.p.0., align 4, !dbg !20, !tbaa !23
+ %7 = ptrtoint ptr %p.0.p.0. to i64, !dbg !20
+ %8 = and i64 %7, -70368744177665, !dbg !20
+ %9 = inttoptr i64 %8 to ptr, !dbg !20
+ %_msld2 = load i32, ptr %9, align 4, !dbg !20
+ %10 = icmp ne i32 %_msld2, 0, !dbg !20
+ %11 = xor i32 %_msld2, -1, !dbg !20
+ %12 = and i32 %6, %11, !dbg !20
+ %13 = icmp eq i32 %12, 0, !dbg !20
+ %_msprop_icmp = and i1 %10, %13, !dbg !20
+ br i1 %_msprop_icmp, label %14, label %15, !dbg !20, !prof !27
+
+; <label>:15 ; preds = %5
call void @__msan_warning_noreturn(), !dbg !20
call void asm sideeffect "", ""() #3, !dbg !20
unreachable, !dbg !20
-; <label>:16 ; preds = %6
- %tobool = icmp eq i32 %7, 0, !dbg !20
+; <label>:16 ; preds = %5
+ %tobool = icmp eq i32 %6, 0, !dbg !20
br i1 %tobool, label %if.end, label %if.then, !dbg !20
-if.then: ; preds = %16
- store i64 0, i64* getelementptr inbounds ([1000 x i64], [1000 x i64]* @__msan_param_tls, i64 0, i64 0), align 8, !dbg !28
- store i32 0, i32* bitcast ([8 x i64]* @__msan_retval_tls to i32*), align 8, !dbg !28
- %puts = call i32 @puts(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str, i64 0, i64 0)), !dbg !28
+if.then: ; preds = %15
+ store i64 0, ptr @__msan_param_tls, align 8, !dbg !28
+ store i32 0, ptr @__msan_retval_tls, align 8, !dbg !28
+ %puts = call i32 @puts(ptr @str), !dbg !28
br label %if.end, !dbg !28
-if.end: ; preds = %16, %if.then
+if.end: ; preds = %15, %if.then
ret void, !dbg !29
}
; Function Attrs: nobuiltin
-declare i8* @_Znwm(i64) #1
+declare ptr @_Znwm(i64) #1
; Function Attrs: sanitize_memory uwtable
define i32 @main() #0 !dbg !13 {
entry:
- %p.i = alloca i32*, align 8
- %0 = ptrtoint i32** %p.i to i64, !dbg !30
+ %p.i = alloca ptr, align 8
+ %0 = ptrtoint ptr %p.i to i64, !dbg !30
%1 = and i64 %0, -70368744177672, !dbg !30
- %2 = inttoptr i64 %1 to i64*, !dbg !30
- store i64 -1, i64* %2, align 8, !dbg !30
- %p.i.0..sroa_cast = bitcast i32** %p.i to i8*, !dbg !30
- call void @llvm.lifetime.start(i64 8, i8* %p.i.0..sroa_cast), !dbg !30
- store i64 0, i64* getelementptr inbounds ([1000 x i64], [1000 x i64]* @__msan_param_tls, i64 0, i64 0), align 8, !dbg !30
- store i64 0, i64* getelementptr inbounds ([8 x i64], [8 x i64]* @__msan_retval_tls, i64 0, i64 0), align 8, !dbg !30
- %call.i = call i8* @_Znwm(i64 4) #4, !dbg !30
- %_msret = load i64, i64* getelementptr inbounds ([8 x i64], [8 x i64]* @__msan_retval_tls, i64 0, i64 0), align 8, !dbg !30
- %3 = bitcast i8* %call.i to i32*, !dbg !30
- tail call void @llvm.dbg.value(metadata i32* %3, metadata !32, metadata !DIExpression()), !dbg !30
- %4 = inttoptr i64 %1 to i64*, !dbg !30
- store i64 %_msret, i64* %4, align 8, !dbg !30
- store volatile i32* %3, i32** %p.i, align 8, !dbg !30
- tail call void @llvm.dbg.value(metadata i32** %p.i, metadata !32, metadata !DIExpression()), !dbg !30
- %p.i.0.p.0.p.0..i = load volatile i32*, i32** %p.i, align 8, !dbg !33
- %_msld = load i64, i64* %4, align 8, !dbg !33
+ %2 = inttoptr i64 %1 to ptr, !dbg !30
+ store i64 -1, ptr %2, align 8, !dbg !30
+ call void @llvm.lifetime.start(i64 8, ptr %p.i), !dbg !30
+ store i64 0, ptr @__msan_param_tls, align 8, !dbg !30
+ store i64 0, ptr @__msan_retval_tls, align 8, !dbg !30
+ %call.i = call ptr @_Znwm(i64 4) #4, !dbg !30
+ %_msret = load i64, ptr @__msan_retval_tls, align 8, !dbg !30
+ tail call void @llvm.dbg.value(metadata ptr %call.i, metadata !32, metadata !DIExpression()), !dbg !30
+ %3 = inttoptr i64 %1 to ptr, !dbg !30
+ store i64 %_msret, ptr %3, align 8, !dbg !30
+ store volatile ptr %call.i, ptr %p.i, align 8, !dbg !30
+ tail call void @llvm.dbg.value(metadata ptr %p.i, metadata !32, metadata !DIExpression()), !dbg !30
+ %p.i.0.p.0.p.0..i = load volatile ptr, ptr %p.i, align 8, !dbg !33
+ %_msld = load i64, ptr %3, align 8, !dbg !33
%_mscmp = icmp eq i64 %_msld, 0, !dbg !33
- br i1 %_mscmp, label %6, label %5, !dbg !33, !prof !22
+ br i1 %_mscmp, label %5, label %4, !dbg !33, !prof !22
; <label>:5 ; preds = %entry
call void @__msan_warning_noreturn(), !dbg !33
unreachable, !dbg !33
; <label>:6 ; preds = %entry
- %7 = load i32, i32* %p.i.0.p.0.p.0..i, align 4, !dbg !33, !tbaa !23
- %8 = ptrtoint i32* %p.i.0.p.0.p.0..i to i64, !dbg !33
- %9 = and i64 %8, -70368744177665, !dbg !33
- %10 = inttoptr i64 %9 to i32*, !dbg !33
- %_msld2 = load i32, i32* %10, align 4, !dbg !33
- %11 = icmp ne i32 %_msld2, 0, !dbg !33
- %12 = xor i32 %_msld2, -1, !dbg !33
- %13 = and i32 %7, %12, !dbg !33
- %14 = icmp eq i32 %13, 0, !dbg !33
- %_msprop_icmp = and i1 %11, %14, !dbg !33
- br i1 %_msprop_icmp, label %15, label %16, !dbg !33, !prof !27
-
-; <label>:15 ; preds = %6
+ %6 = load i32, ptr %p.i.0.p.0.p.0..i, align 4, !dbg !33, !tbaa !23
+ %7 = ptrtoint ptr %p.i.0.p.0.p.0..i to i64, !dbg !33
+ %8 = and i64 %7, -70368744177665, !dbg !33
+ %9 = inttoptr i64 %8 to ptr, !dbg !33
+ %_msld2 = load i32, ptr %9, align 4, !dbg !33
+ %10 = icmp ne i32 %_msld2, 0, !dbg !33
+ %11 = xor i32 %_msld2, -1, !dbg !33
+ %12 = and i32 %6, %11, !dbg !33
+ %13 = icmp eq i32 %12, 0, !dbg !33
+ %_msprop_icmp = and i1 %10, %13, !dbg !33
+ br i1 %_msprop_icmp, label %14, label %15, !dbg !33, !prof !27
+
+; <label>:15 ; preds = %5
call void @__msan_warning_noreturn(), !dbg !33
call void asm sideeffect "", ""() #3, !dbg !33
unreachable, !dbg !33
-; <label>:16 ; preds = %6
- %tobool.i = icmp eq i32 %7, 0, !dbg !33
+; <label>:16 ; preds = %5
+ %tobool.i = icmp eq i32 %6, 0, !dbg !33
br i1 %tobool.i, label %_Z1fv.exit, label %if.then.i, !dbg !33
-if.then.i: ; preds = %16
- store i64 0, i64* getelementptr inbounds ([1000 x i64], [1000 x i64]* @__msan_param_tls, i64 0, i64 0), align 8, !dbg !34
- store i32 0, i32* bitcast ([8 x i64]* @__msan_retval_tls to i32*), align 8, !dbg !34
- %puts.i = call i32 @puts(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @str, i64 0, i64 0)), !dbg !34
+if.then.i: ; preds = %15
+ store i64 0, ptr @__msan_param_tls, align 8, !dbg !34
+ store i32 0, ptr @__msan_retval_tls, align 8, !dbg !34
+ %puts.i = call i32 @puts(ptr @str), !dbg !34
br label %_Z1fv.exit, !dbg !34
-_Z1fv.exit: ; preds = %16, %if.then.i
- call void @llvm.lifetime.end(i64 8, i8* %p.i.0..sroa_cast), !dbg !35
- store i32 0, i32* bitcast ([8 x i64]* @__msan_retval_tls to i32*), align 8, !dbg !36
+_Z1fv.exit: ; preds = %15, %if.then.i
+ call void @llvm.lifetime.end(i64 8, ptr %p.i), !dbg !35
+ store i32 0, ptr @__msan_retval_tls, align 8, !dbg !36
ret i32 0, !dbg !36
}
declare void @llvm.dbg.value(metadata, metadata, metadata) #2
; Function Attrs: nounwind
-declare i32 @puts(i8* nocapture readonly) #3
+declare i32 @puts(ptr nocapture readonly) #3
; Function Attrs: nounwind
-declare void @llvm.lifetime.start(i64, i8* nocapture) #3
+declare void @llvm.lifetime.start(i64, ptr nocapture) #3
; Function Attrs: nounwind
-declare void @llvm.lifetime.end(i64, i8* nocapture) #3
+declare void @llvm.lifetime.end(i64, ptr nocapture) #3
declare void @__msan_warning_noreturn()
declare void @__msan_maybe_warning_1(i8, i32)
-declare void @__msan_maybe_store_origin_1(i8, i8*, i32)
+declare void @__msan_maybe_store_origin_1(i8, ptr, i32)
declare void @__msan_maybe_warning_2(i16, i32)
-declare void @__msan_maybe_store_origin_2(i16, i8*, i32)
+declare void @__msan_maybe_store_origin_2(i16, ptr, i32)
declare void @__msan_maybe_warning_4(i32, i32)
-declare void @__msan_maybe_store_origin_4(i32, i8*, i32)
+declare void @__msan_maybe_store_origin_4(i32, ptr, i32)
declare void @__msan_maybe_warning_8(i64, i32)
-declare void @__msan_maybe_store_origin_8(i64, i8*, i32)
+declare void @__msan_maybe_store_origin_8(i64, ptr, i32)
-declare void @__msan_set_alloca_origin4(i8*, i64, i8*, i64)
+declare void @__msan_set_alloca_origin4(ptr, i64, ptr, i64)
-declare void @__msan_poison_stack(i8*, i64)
+declare void @__msan_poison_stack(ptr, i64)
declare i32 @__msan_chain_origin(i32)
-declare i8* @__msan_memmove(i8*, i8*, i64)
+declare ptr @__msan_memmove(ptr, ptr, i64)
-declare i8* @__msan_memcpy(i8*, i8*, i64)
+declare ptr @__msan_memcpy(ptr, ptr, i64)
-declare i8* @__msan_memset(i8*, i32, i64)
+declare ptr @__msan_memset(ptr, i32, i64)
; Function Attrs: nounwind
-declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i1) #3
+declare void @llvm.memset.p0.i64(ptr nocapture, i8, i64, i1) #3
attributes #0 = { sanitize_memory uwtable "less-precise-fpmad"="false" "frame-pointer"="none" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { nobuiltin "less-precise-fpmad"="false" "frame-pointer"="none" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
}
; Function Attrs: norecurse uwtable
-define weak_odr hidden i32* @_ZTW3var() local_unnamed_addr #1 {
- ret i32* @var
+define weak_odr hidden ptr @_ZTW3var() local_unnamed_addr #1 {
+ ret ptr @var
}
attributes #0 = { norecurse nounwind readnone uwtable }
source_filename = "test/DebugInfo/X86/decl-derived-member.ll"
%struct.foo = type { %struct.base }
-%struct.base = type { i32 (...)** }
+%struct.base = type { ptr }
$_ZN3fooC2Ev = comdat any
@f = global %struct.foo zeroinitializer, align 8, !dbg !0
@__dso_handle = external global i8
-@_ZTV4base = external unnamed_addr constant [4 x i8*]
-@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__sub_I_decl_derived_member.cpp, i8* null }]
+@_ZTV4base = external unnamed_addr constant [4 x ptr]
+@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_decl_derived_member.cpp, ptr null }]
define internal void @__cxx_global_var_init() section ".text.startup" !dbg !15 {
entry:
- call void @_ZN3fooC2Ev(%struct.foo* @f) #2, !dbg !18
- %0 = call i32 @__cxa_atexit(void (i8*)* bitcast (void (%struct.foo*)* @_ZN3fooD2Ev to void (i8*)*), i8* bitcast (%struct.foo* @f to i8*), i8* @__dso_handle) #2, !dbg !18
+ call void @_ZN3fooC2Ev(ptr @f) #2, !dbg !18
+ %0 = call i32 @__cxa_atexit(ptr @_ZN3fooD2Ev, ptr @f, ptr @__dso_handle) #2, !dbg !18
ret void, !dbg !18
}
; Function Attrs: inlinehint nounwind uwtable
-define linkonce_odr void @_ZN3fooC2Ev(%struct.foo* %this) unnamed_addr #0 comdat align 2 !dbg !19 {
+define linkonce_odr void @_ZN3fooC2Ev(ptr %this) unnamed_addr #0 comdat align 2 !dbg !19 {
entry:
- %this.addr = alloca %struct.foo*, align 8
- store %struct.foo* %this, %struct.foo** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %struct.foo** %this.addr, metadata !24, metadata !26), !dbg !27
- %this1 = load %struct.foo*, %struct.foo** %this.addr
- %b = getelementptr inbounds %struct.foo, %struct.foo* %this1, i32 0, i32 0, !dbg !28
- call void @_ZN4baseC2Ev(%struct.base* %b) #2, !dbg !28
+ %this.addr = alloca ptr, align 8
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !24, metadata !26), !dbg !27
+ %this1 = load ptr, ptr %this.addr
+ call void @_ZN4baseC2Ev(ptr %this1) #2, !dbg !28
ret void, !dbg !28
}
; Function Attrs: inlinehint uwtable
-define linkonce_odr void @_ZN3fooD2Ev(%struct.foo* %this) unnamed_addr #1 comdat align 2 !dbg !29 {
+define linkonce_odr void @_ZN3fooD2Ev(ptr %this) unnamed_addr #1 comdat align 2 !dbg !29 {
entry:
- %this.addr = alloca %struct.foo*, align 8
- store %struct.foo* %this, %struct.foo** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %struct.foo** %this.addr, metadata !31, metadata !26), !dbg !32
- %this1 = load %struct.foo*, %struct.foo** %this.addr
- %b = getelementptr inbounds %struct.foo, %struct.foo* %this1, i32 0, i32 0, !dbg !33
- call void @_ZN4baseD1Ev(%struct.base* %b), !dbg !33
+ %this.addr = alloca ptr, align 8
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !31, metadata !26), !dbg !32
+ %this1 = load ptr, ptr %this.addr
+ call void @_ZN4baseD1Ev(ptr %this1), !dbg !33
ret void, !dbg !35
}
; Function Attrs: nounwind
-declare i32 @__cxa_atexit(void (i8*)*, i8*, i8*) #2
+declare i32 @__cxa_atexit(ptr, ptr, ptr) #2
; Function Attrs: nounwind readnone
declare void @llvm.dbg.declare(metadata, metadata, metadata) #3
; Function Attrs: inlinehint nounwind uwtable
-define linkonce_odr void @_ZN4baseC2Ev(%struct.base* %this) unnamed_addr #0 comdat align 2 !dbg !36 {
+define linkonce_odr void @_ZN4baseC2Ev(ptr %this) unnamed_addr #0 comdat align 2 !dbg !36 {
entry:
- %this.addr = alloca %struct.base*, align 8
- store %struct.base* %this, %struct.base** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %struct.base** %this.addr, metadata !41, metadata !26), !dbg !43
- %this1 = load %struct.base*, %struct.base** %this.addr
- %0 = bitcast %struct.base* %this1 to i32 (...)***, !dbg !44
- store i32 (...)** bitcast (i8** getelementptr inbounds ([4 x i8*], [4 x i8*]* @_ZTV4base, i64 0, i64 2) to i32 (...)**), i32 (...)*** %0, !dbg !44
+ %this.addr = alloca ptr, align 8
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !41, metadata !26), !dbg !43
+ %this1 = load ptr, ptr %this.addr
+ store ptr getelementptr inbounds ([4 x ptr], ptr @_ZTV4base, i64 0, i64 2), ptr %this1, !dbg !44
ret void, !dbg !44
}
-declare void @_ZN4baseD1Ev(%struct.base*) #4
+declare void @_ZN4baseD1Ev(ptr) #4
define internal void @_GLOBAL__sub_I_decl_derived_member.cpp() section ".text.startup" {
entry:
br i1 undef, label %exit, label %bb
bb: ; preds = %entry
- call void @llvm.dbg.value(metadata i8* undef, metadata !15, metadata !16), !dbg !17
+ call void @llvm.dbg.value(metadata ptr undef, metadata !15, metadata !16), !dbg !17
br label %exit
exit: ; preds = %bb, %entry
alloca_0:
%"var$1" = alloca [8 x i64], align 8
%"use_external_module_$X" = alloca float, align 8
- call void @llvm.dbg.declare(metadata float* %"use_external_module_$X", metadata !13, metadata !DIExpression()), !dbg !17
- %func_result = call i32 @for_set_reentrancy(i32* @0), !dbg !18
- %external_module_mp_dummy__fetch = load float, float* @external_module_mp_dummy_, align 1, !dbg !19
+ call void @llvm.dbg.declare(metadata ptr %"use_external_module_$X", metadata !13, metadata !DIExpression()), !dbg !17
+ %func_result = call i32 @for_set_reentrancy(ptr @0), !dbg !18
+ %external_module_mp_dummy__fetch = load float, ptr @external_module_mp_dummy_, align 1, !dbg !19
%add = fadd reassoc ninf nsz arcp contract afn float 2.000000e+00, %external_module_mp_dummy__fetch, !dbg !20
- store float %add, float* %"use_external_module_$X", align 1, !dbg !19
+ store float %add, ptr %"use_external_module_$X", align 1, !dbg !19
ret void, !dbg !21
}
; Function Attrs: nofree nosync nounwind readnone speculatable willreturn
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
-declare i32 @for_set_reentrancy(i32*)
+declare i32 @for_set_reentrancy(ptr)
attributes #0 = { noinline nounwind uwtable "intel-lang"="fortran" "min-legal-vector-width"="0" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" }
attributes #1 = { nofree nosync nounwind readnone speculatable willreturn }
entry:
%retval = alloca i32, align 4
%i.addr = alloca i32, align 4
- store i32 %i, i32* %i.addr, align 4
- %0 = load i32, i32* %i.addr, align 4, !dbg !10
+ store i32 %i, ptr %i.addr, align 4
+ %0 = load i32, ptr %i.addr, align 4, !dbg !10
%cmp = icmp slt i32 %0, 10, !dbg !10
br i1 %cmp, label %if.then, label %if.end, !dbg !10
if.then: ; preds = %entry
- %1 = load i32, i32* %i.addr, align 4, !dbg !14
+ %1 = load i32, ptr %i.addr, align 4, !dbg !14
%sub = sub nsw i32 %1, 1, !dbg !14
- store i32 %sub, i32* %retval, !dbg !14
+ store i32 %sub, ptr %retval, !dbg !14
br label %return, !dbg !14
if.end: ; preds = %entry
- store i32 0, i32* %retval, !dbg !12
+ store i32 0, ptr %retval, !dbg !12
br label %return, !dbg !12
return: ; preds = %if.end, %if.then
- %2 = load i32, i32* %retval, !dbg !13
+ %2 = load i32, ptr %retval, !dbg !13
ret i32 %2, !dbg !13
}
; Function Attrs: uwtable
define void @_Z3bazi(i32) #0 !dbg !6 {
%2 = alloca i32, align 4
- store i32 %0, i32* %2, align 4
- call void @llvm.dbg.declare(metadata i32* %2, metadata !10, metadata !11), !dbg !12
- %3 = load i32, i32* %2, align 4, !dbg !13
+ store i32 %0, ptr %2, align 4
+ call void @llvm.dbg.declare(metadata ptr %2, metadata !10, metadata !11), !dbg !12
+ %3 = load i32, ptr %2, align 4, !dbg !13
%4 = icmp ne i32 %3, 0, !dbg !13
br i1 %4, label %5, label %8, !dbg !15
; <label>:5: ; preds = %1
- %6 = load i32, i32* %2, align 4, !dbg !16
+ %6 = load i32, ptr %2, align 4, !dbg !16
%7 = add nsw i32 %6, 1, !dbg !19
call void @_Z3fooi(i32 %7), !dbg !20
br label %8, !dbg !21
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
-%"QNCA_a0$i8*$rank0$" = type { i8*, i64, i64, i64, i64, i64 }
+%"QNCA_a0$ptr$rank0$" = type { ptr, i64, i64, i64, i64, i64 }
@0 = internal unnamed_addr constant [7 x i8] c"Goodbye"
@1 = internal unnamed_addr constant [5 x i8] c"Hello"
-@"assumedlength_$DEFERRED" = internal global %"QNCA_a0$i8*$rank0$" zeroinitializer, !dbg !0
+@"assumedlength_$DEFERRED" = internal global %"QNCA_a0$ptr$rank0$" zeroinitializer, !dbg !0
@2 = internal unnamed_addr constant i32 2
; Function Attrs: noinline nounwind uwtable
alloca_0:
%"var$1" = alloca [8 x i64], align 8
%"var$2" = alloca i64, align 8
- %strlit = load [7 x i8], [7 x i8]* @0, align 1
- %strlit1 = load [5 x i8], [5 x i8]* @1, align 1
- %func_result = call i32 @for_set_reentrancy(i32* @2), !dbg !12
- %val_fetch = load i64, i64* getelementptr inbounds (%"QNCA_a0$i8*$rank0$", %"QNCA_a0$i8*$rank0$"* @"assumedlength_$DEFERRED", i32 0, i32 1), align 1, !dbg !13
- %val_fetch4 = load i64, i64* getelementptr inbounds (%"QNCA_a0$i8*$rank0$", %"QNCA_a0$i8*$rank0$"* @"assumedlength_$DEFERRED", i32 0, i32 3), align 1, !dbg !13
+ %strlit = load [7 x i8], ptr @0, align 1
+ %strlit1 = load [5 x i8], ptr @1, align 1
+ %func_result = call i32 @for_set_reentrancy(ptr @2), !dbg !12
+ %val_fetch = load i64, ptr getelementptr inbounds (%"QNCA_a0$ptr$rank0$", ptr @"assumedlength_$DEFERRED", i32 0, i32 1), align 1, !dbg !13
+ %val_fetch4 = load i64, ptr getelementptr inbounds (%"QNCA_a0$ptr$rank0$", ptr @"assumedlength_$DEFERRED", i32 0, i32 3), align 1, !dbg !13
%and = and i64 %val_fetch4, 256, !dbg !13
%lshr = lshr i64 %and, 8, !dbg !13
%shl = shl i64 %lshr, 8, !dbg !13
%and7 = and i64 %or, -1030792151041, !dbg !13
%shl8 = shl i64 %lshr6, 36, !dbg !13
%or9 = or i64 %and7, %shl8, !dbg !13
- store i64 %or9, i64* getelementptr inbounds (%"QNCA_a0$i8*$rank0$", %"QNCA_a0$i8*$rank0$"* @"assumedlength_$DEFERRED", i32 0, i32 3), align 1, !dbg !13
- store i64 10, i64* getelementptr inbounds (%"QNCA_a0$i8*$rank0$", %"QNCA_a0$i8*$rank0$"* @"assumedlength_$DEFERRED", i32 0, i32 1), align 1, !dbg !13
- store i64 0, i64* getelementptr inbounds (%"QNCA_a0$i8*$rank0$", %"QNCA_a0$i8*$rank0$"* @"assumedlength_$DEFERRED", i32 0, i32 4), align 1, !dbg !13
- store i64 0, i64* getelementptr inbounds (%"QNCA_a0$i8*$rank0$", %"QNCA_a0$i8*$rank0$"* @"assumedlength_$DEFERRED", i32 0, i32 2), align 1, !dbg !13
- %val_fetch10 = load i64, i64* getelementptr inbounds (%"QNCA_a0$i8*$rank0$", %"QNCA_a0$i8*$rank0$"* @"assumedlength_$DEFERRED", i32 0, i32 3), align 1, !dbg !13
- %val_fetch11 = load i64, i64* getelementptr inbounds (%"QNCA_a0$i8*$rank0$", %"QNCA_a0$i8*$rank0$"* @"assumedlength_$DEFERRED", i32 0, i32 3), align 1, !dbg !13
+ store i64 %or9, ptr getelementptr inbounds (%"QNCA_a0$ptr$rank0$", ptr @"assumedlength_$DEFERRED", i32 0, i32 3), align 1, !dbg !13
+ store i64 10, ptr getelementptr inbounds (%"QNCA_a0$ptr$rank0$", ptr @"assumedlength_$DEFERRED", i32 0, i32 1), align 1, !dbg !13
+ store i64 0, ptr getelementptr inbounds (%"QNCA_a0$ptr$rank0$", ptr @"assumedlength_$DEFERRED", i32 0, i32 4), align 1, !dbg !13
+ store i64 0, ptr getelementptr inbounds (%"QNCA_a0$ptr$rank0$", ptr @"assumedlength_$DEFERRED", i32 0, i32 2), align 1, !dbg !13
+ %val_fetch10 = load i64, ptr getelementptr inbounds (%"QNCA_a0$ptr$rank0$", ptr @"assumedlength_$DEFERRED", i32 0, i32 3), align 1, !dbg !13
+ %val_fetch11 = load i64, ptr getelementptr inbounds (%"QNCA_a0$ptr$rank0$", ptr @"assumedlength_$DEFERRED", i32 0, i32 3), align 1, !dbg !13
%and12 = and i64 %val_fetch11, -68451041281, !dbg !13
%or13 = or i64 %and12, 1073741824, !dbg !13
- store i64 %or13, i64* getelementptr inbounds (%"QNCA_a0$i8*$rank0$", %"QNCA_a0$i8*$rank0$"* @"assumedlength_$DEFERRED", i32 0, i32 3), align 1, !dbg !13
+ store i64 %or13, ptr getelementptr inbounds (%"QNCA_a0$ptr$rank0$", ptr @"assumedlength_$DEFERRED", i32 0, i32 3), align 1, !dbg !13
%and14 = and i64 %val_fetch10, 1, !dbg !13
%shl15 = shl i64 %and14, 1, !dbg !13
%int_zext = trunc i64 %shl15 to i32, !dbg !13
%or35 = or i32 %and32, %int_zext34, !dbg !13
%and36 = and i32 %or35, -2031617, !dbg !13
%or37 = or i32 %and36, 262144, !dbg !13
- %func_result3 = call i32 @for_alloc_allocatable(i64 10, i8** getelementptr inbounds (%"QNCA_a0$i8*$rank0$", %"QNCA_a0$i8*$rank0$"* @"assumedlength_$DEFERRED", i32 0, i32 0), i32 %or37), !dbg !13
- call void @assumedlength_IP_sub_(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @1, i32 0, i32 0), i64 5), !dbg !14
- call void @assumedlength_IP_sub_(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @0, i32 0, i32 0), i64 7), !dbg !15
+ %func_result3 = call i32 @for_alloc_allocatable(i64 10, ptr @"assumedlength_$DEFERRED", i32 %or37), !dbg !13
+ call void @assumedlength_IP_sub_(ptr @1, i64 5), !dbg !14
+ call void @assumedlength_IP_sub_(ptr @0, i64 7), !dbg !15
ret void, !dbg !16
}
; Function Attrs: noinline nounwind uwtable
-define void @assumedlength_IP_sub_(i8* noalias nocapture readonly %STRING, i64 %"STRING.len$val") #0 !dbg !17 {
+define void @assumedlength_IP_sub_(ptr noalias nocapture readonly %STRING, i64 %"STRING.len$val") #0 !dbg !17 {
alloca_1:
%"var$3" = alloca [8 x i64], align 8
%STRING.len = alloca i64, align 8, !dbg !23
%"var$4" = alloca i32, align 4, !dbg !23
%"(&)val$" = alloca [4 x i8], align 1, !dbg !23
- %argblock = alloca { i64, i8* }, align 8, !dbg !23
- call void @llvm.dbg.declare(metadata i64* %STRING.len, metadata !19, metadata !DIExpression()), !dbg !23
- call void @llvm.dbg.declare(metadata i8* %STRING, metadata !21, metadata !DIExpression()), !dbg !24
- store i64 %"STRING.len$val", i64* %STRING.len, align 8
- %strlit = load [7 x i8], [7 x i8]* @0, align 1, !dbg !25
- %strlit1 = load [5 x i8], [5 x i8]* @1, align 1, !dbg !25
- %STRING.len_fetch = load i64, i64* %STRING.len, align 1, !dbg !26
- store [4 x i8] c"8\04\01\00", [4 x i8]* %"(&)val$", align 1, !dbg !26
- %BLKFIELD_ = getelementptr inbounds { i64, i8* }, { i64, i8* }* %argblock, i32 0, i32 0, !dbg !26
- store i64 %STRING.len_fetch, i64* %BLKFIELD_, align 1, !dbg !26
- %BLKFIELD_3 = getelementptr inbounds { i64, i8* }, { i64, i8* }* %argblock, i32 0, i32 1, !dbg !26
- store i8* %STRING, i8** %BLKFIELD_3, align 1, !dbg !26
- %"(i8*)var$3$" = bitcast [8 x i64]* %"var$3" to i8*, !dbg !26
- %"(i8*)(&)val$$" = bitcast [4 x i8]* %"(&)val$" to i8*, !dbg !26
- %"(i8*)argblock$" = bitcast { i64, i8* }* %argblock to i8*, !dbg !26
- %func_result = call i32 (i8*, i32, i64, i8*, i8*, ...) @for_write_seq_lis(i8* %"(i8*)var$3$", i32 -1, i64 1239157112576, i8* %"(i8*)(&)val$$", i8* %"(i8*)argblock$"), !dbg !26
+ %argblock = alloca { i64, ptr }, align 8, !dbg !23
+ call void @llvm.dbg.declare(metadata ptr %STRING.len, metadata !19, metadata !DIExpression()), !dbg !23
+ call void @llvm.dbg.declare(metadata ptr %STRING, metadata !21, metadata !DIExpression()), !dbg !24
+ store i64 %"STRING.len$val", ptr %STRING.len, align 8
+ %strlit = load [7 x i8], ptr @0, align 1, !dbg !25
+ %strlit1 = load [5 x i8], ptr @1, align 1, !dbg !25
+ %STRING.len_fetch = load i64, ptr %STRING.len, align 1, !dbg !26
+ store [4 x i8] c"8\04\01\00", ptr %"(&)val$", align 1, !dbg !26
+ %BLKFIELD_ = getelementptr inbounds { i64, ptr }, ptr %argblock, i32 0, i32 0, !dbg !26
+ store i64 %STRING.len_fetch, ptr %BLKFIELD_, align 1, !dbg !26
+ %BLKFIELD_3 = getelementptr inbounds { i64, ptr }, ptr %argblock, i32 0, i32 1, !dbg !26
+ store ptr %STRING, ptr %BLKFIELD_3, align 1, !dbg !26
+ %func_result = call i32 (ptr, i32, i64, ptr, ptr, ...) @for_write_seq_lis(ptr %"var$3", i32 -1, i64 1239157112576, ptr %"(&)val$", ptr %argblock), !dbg !26
ret void, !dbg !27
}
-declare i32 @for_set_reentrancy(i32*)
+declare i32 @for_set_reentrancy(ptr)
-declare i32 @for_alloc_allocatable(i64, i8**, i32)
+declare i32 @for_alloc_allocatable(i64, ptr, i32)
; Function Attrs: nofree nosync nounwind readnone speculatable willreturn
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
-declare i32 @for_write_seq_lis(i8*, i32, i64, i8*, i8*, ...)
+declare i32 @for_write_seq_lis(ptr, i32, i64, ptr, ptr, ...)
attributes #0 = { noinline nounwind uwtable "intel-lang"="fortran" "min-legal-vector-width"="0" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" }
attributes #1 = { nofree nosync nounwind readnone speculatable willreturn }
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
-define internal void @sub1_.t0p(float* %arg0) #0 !dbg !23 {
+define internal void @sub1_.t0p(ptr %arg0) #0 !dbg !23 {
wrap_start11:
- call void (...) @sub1_(float* %arg0), !dbg !25
+ call void (...) @sub1_(ptr %arg0), !dbg !25
ret void, !dbg !25
}
declare void @llvm.dbg.declare(metadata, metadata, metadata)
-define void @f(i32* byval(i32) %p, i1 %c) !dbg !5 {
+define void @f(ptr byval(i32) %p, i1 %c) !dbg !5 {
br i1 %c, label %x, label %y
x:
- call void @llvm.dbg.declare(metadata i32* %p, metadata !10, metadata !DIExpression()), !dbg !12
- store i32 42, i32* @g, !dbg !12
+ call void @llvm.dbg.declare(metadata ptr %p, metadata !10, metadata !DIExpression()), !dbg !12
+ store i32 42, ptr @g, !dbg !12
br label %done
y:
- call void @llvm.dbg.declare(metadata i32* %p, metadata !10, metadata !DIExpression()), !dbg !12
- store i32 42, i32* @h, !dbg !12
+ call void @llvm.dbg.declare(metadata ptr %p, metadata !10, metadata !DIExpression()), !dbg !12
+ store i32 42, ptr @h, !dbg !12
br label %done
done:
%call = tail call i32 @_Z3fooi(i32 2), !dbg !23
%call1 = tail call i32 @_Z4foo2i(i32 1), !dbg !23
%add = add nsw i32 %call1, %call, !dbg !23
- %0 = load i32, i32* @global, align 4, !dbg !23, !tbaa !24
+ %0 = load i32, ptr @global, align 4, !dbg !23, !tbaa !24
%add2 = add nsw i32 %add, %0, !dbg !23
ret i32 %add2, !dbg !23
}
define void @some_code() !dbg !13 {
entry:
- %0 = load i32, i32* @some_data, align 4, !dbg !16
- %1 = load i32, i32* @some_other, align 4, !dbg !16
+ %0 = load i32, ptr @some_data, align 4, !dbg !16
+ %1 = load i32, ptr @some_other, align 4, !dbg !16
%add = add nsw i32 %0, %1, !dbg !16
- %2 = load i32, i32* @some_bss, align 4, !dbg !16
+ %2 = load i32, ptr @some_bss, align 4, !dbg !16
%add1 = add nsw i32 %2, %add, !dbg !16
- store i32 %add1, i32* @some_bss, align 4, !dbg !16
+ store i32 %add1, ptr @some_bss, align 4, !dbg !16
ret void, !dbg !17
}
define void @__has_no_subprogram() {
entry:
- %0 = load volatile i32, i32* @sink, align 4
+ %0 = load volatile i32, ptr @sink, align 4
%inc = add nsw i32 %0, 1
- store volatile i32 %inc, i32* @sink, align 4
+ store volatile i32 %inc, ptr @sink, align 4
ret void
}
; OBJ: DW_AT_name ("bat")
define void @_Z3batv() !dbg !13 {
entry:
- %0 = load volatile i32, i32* @sink, align 4, !dbg !16, !tbaa !17
+ %0 = load volatile i32, ptr @sink, align 4, !dbg !16, !tbaa !17
%inc = add nsw i32 %0, 1, !dbg !16
- store volatile i32 %inc, i32* @sink, align 4, !dbg !16, !tbaa !17
+ store volatile i32 %inc, ptr @sink, align 4, !dbg !16, !tbaa !17
ret void, !dbg !21
}
; OBJ: DW_AT_name ("bar")
define void @_Z3barv() !dbg !22 {
entry:
- %0 = load volatile i32, i32* @sink, align 4, !dbg !23, !tbaa !17
+ %0 = load volatile i32, ptr @sink, align 4, !dbg !23, !tbaa !17
%inc = add nsw i32 %0, 1, !dbg !23
- store volatile i32 %inc, i32* @sink, align 4, !dbg !23, !tbaa !17
+ store volatile i32 %inc, ptr @sink, align 4, !dbg !23, !tbaa !17
ret void, !dbg !24
}
entry:
call void @_Z3foov(), !dbg !32
- %indirect_target = load void ()*, void ()** undef
+ %indirect_target = load ptr, ptr undef
call void %indirect_target()
call void asm sideeffect "", "~{dirflag},~{fpsr},~{flags}"()
; Function Attrs: nounwind uwtable
define i32 @_ZN4test3barEv() #0 !dbg !11 {
entry:
- %0 = load i32, i32* @_ZN4test10global_varE, align 4, !dbg !14
+ %0 = load i32, ptr @_ZN4test10global_varE, align 4, !dbg !14
ret i32 %0, !dbg !15
}
fence acquire, !dbg !9
fence release, !dbg !9
%retval = alloca i32, align 4
- store i32 0, i32* %retval, align 4
+ store i32 0, ptr %retval, align 4
ret i32 0, !dbg !9
}
entry:
%x.addr = alloca i32, align 4
%z = alloca i32, align 4
- store i32 %x, i32* %x.addr, align 4
- %0 = load i32, i32* %x.addr, align 4, !dbg !8
+ store i32 %x, ptr %x.addr, align 4
+ %0 = load i32, ptr %x.addr, align 4, !dbg !8
%tobool = icmp ne i32 %0, 0, !dbg !8
br i1 %tobool, label %if.then, label %if.end, !dbg !8
if.then: ; preds = %entry
- call void @_Z3barPi(i32* %z), !dbg !9
+ call void @_Z3barPi(ptr %z), !dbg !9
br label %if.end, !dbg !9
if.end: ; preds = %if.then, %entry
- call void @_Z3bazPi(i32* %z), !dbg !12
+ call void @_Z3bazPi(ptr %z), !dbg !12
ret void, !dbg !14
}
;
; DISABLE-NOT: .loc 1 0
-declare void @_Z3barPi(i32*)
+declare void @_Z3barPi(ptr)
-declare void @_Z3bazPi(i32*)
+declare void @_Z3bazPi(ptr)
!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!3, !4}
@_ZN2ns25global_namespace_variableE = global i32 1, align 4, !dbg !17
; Function Attrs: nounwind uwtable
-define void @_ZN1C15member_functionEv(%struct.C* %this) #0 align 2 !dbg !23 {
+define void @_ZN1C15member_functionEv(ptr %this) #0 align 2 !dbg !23 {
entry:
- %this.addr = alloca %struct.C*, align 8
- store %struct.C* %this, %struct.C** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %struct.C** %this.addr, metadata !24, metadata !26), !dbg !27
- %this1 = load %struct.C*, %struct.C** %this.addr
- store i32 0, i32* @_ZN1C22static_member_variableE, align 4, !dbg !28
+ %this.addr = alloca ptr, align 8
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !24, metadata !26), !dbg !27
+ %this1 = load ptr, ptr %this.addr
+ store i32 0, ptr @_ZN1C22static_member_variableE, align 4, !dbg !28
ret void, !dbg !29
}
; Function Attrs: nounwind uwtable
define i32 @_ZN1C22static_member_functionEv() #0 align 2 !dbg !30 {
entry:
- %0 = load i32, i32* @_ZN1C22static_member_variableE, align 4, !dbg !31
+ %0 = load i32, ptr @_ZN1C22static_member_variableE, align 4, !dbg !31
ret i32 %0, !dbg !31
}
; Function Attrs: nounwind uwtable
define void @_ZN2ns25global_namespace_functionEv() #0 !dbg !34 {
entry:
- call void @_ZN1C15member_functionEv(%struct.C* @global_variable), !dbg !37
+ call void @_ZN1C15member_functionEv(ptr @global_variable), !dbg !37
ret void, !dbg !38
}
define i32 @main() #0 !dbg !4 {
entry:
%retval = alloca i32, align 4
- store i32 0, i32* %retval
+ store i32 0, ptr %retval
ret i32 0, !dbg !10
}
source_filename = "/tmp/usemodulealias.ll"
%struct_mymod_8_ = type <{ [12 x i8] }>
-%struct.struct_ul_MAIN__348 = type { i8* }
+%struct.struct_ul_MAIN__348 = type { ptr }
@_mymod_8_ = global %struct_mymod_8_ <{ [12 x i8] c"\0B\00\00\00\0C\00\00\00\0D\00\00\00" }>, align 64, !dbg !0, !dbg !7, !dbg !10
@.C330_MAIN_ = internal constant i32 0
define void @MAIN_() !dbg !15 {
L.entry:
%.S0000_353 = alloca %struct.struct_ul_MAIN__348, align 8
- %0 = bitcast i32* @.C330_MAIN_ to i8*
- %1 = bitcast void (...)* @fort_init to void (i8*, ...)*
- call void (i8*, ...) %1(i8* %0)
+ call void (ptr, ...) @fort_init(ptr @.C330_MAIN_)
br label %L.LB2_357
L.LB2_357: ; preds = %L.entry
- %2 = bitcast %struct.struct_ul_MAIN__348* %.S0000_353 to i64*, !dbg !23
- call void @main_use_renamed(i64* %2), !dbg !23
+ call void @main_use_renamed(ptr %.S0000_353), !dbg !23
ret void, !dbg !24
}
-define internal void @main_use_renamed(i64* noalias %.S0000) !dbg !14 {
+define internal void @main_use_renamed(ptr noalias %.S0000) !dbg !14 {
L.entry:
ret void, !dbg !25
}
define void @MAIN_() !dbg !5 {
L.entry:
- %.Z0640_333 = alloca i32*, align 8
+ %.Z0640_333 = alloca ptr, align 8
%"arr$sd1_349" = alloca [16 x i64], align 8
- call void @llvm.dbg.declare(metadata [16 x i64]* %"arr$sd1_349", metadata !8, metadata !DIExpression()), !dbg !13
- call void @llvm.dbg.declare(metadata i32** %.Z0640_333, metadata !14, metadata !DIExpression()), !dbg !13
+ call void @llvm.dbg.declare(metadata ptr %"arr$sd1_349", metadata !8, metadata !DIExpression()), !dbg !13
+ call void @llvm.dbg.declare(metadata ptr %.Z0640_333, metadata !14, metadata !DIExpression()), !dbg !13
ret void, !dbg !16
}
define void @MAIN_() !dbg !5 {
L.entry:
- %.Z0640_333 = alloca i32*, align 8
+ %.Z0640_333 = alloca ptr, align 8
%"arr$sd1_349" = alloca [16 x i64], align 8
- call void @llvm.dbg.declare(metadata [16 x i64]* %"arr$sd1_349", metadata !8, metadata !DIExpression()), !dbg !17
- call void @llvm.dbg.declare(metadata i32** %.Z0640_333, metadata !13, metadata !DIExpression()), !dbg !17
- call void @llvm.dbg.declare(metadata i32** %.Z0640_333, metadata !15, metadata !DIExpression()), !dbg !17
+ call void @llvm.dbg.declare(metadata ptr %"arr$sd1_349", metadata !8, metadata !DIExpression()), !dbg !17
+ call void @llvm.dbg.declare(metadata ptr %.Z0640_333, metadata !13, metadata !DIExpression()), !dbg !17
+ call void @llvm.dbg.declare(metadata ptr %.Z0640_333, metadata !15, metadata !DIExpression()), !dbg !17
ret void, !dbg !18
}
define void @MAIN_() !dbg !5 {
L.entry:
- %.Z0640_333 = alloca i32*, align 8
+ %.Z0640_333 = alloca ptr, align 8
%"arr$sd1_349" = alloca [16 x i64], align 8
- call void @llvm.dbg.declare(metadata [16 x i64]* %"arr$sd1_349", metadata !8, metadata !DIExpression()), !dbg !13
- call void @llvm.dbg.declare(metadata i32** %.Z0640_333, metadata !14, metadata !DIExpression()), !dbg !13
+ call void @llvm.dbg.declare(metadata ptr %"arr$sd1_349", metadata !8, metadata !DIExpression()), !dbg !13
+ call void @llvm.dbg.declare(metadata ptr %.Z0640_333, metadata !14, metadata !DIExpression()), !dbg !13
ret void, !dbg !16
}
define void @MAIN_() !dbg !5 {
L.entry:
- %.Z0640_333 = alloca i32*, align 8
+ %.Z0640_333 = alloca ptr, align 8
%"arr$sd1_349" = alloca [16 x i64], align 8
- call void @llvm.dbg.declare(metadata [16 x i64]* %"arr$sd1_349", metadata !8, metadata !DIExpression()), !dbg !17
- call void @llvm.dbg.declare(metadata i32** %.Z0640_333, metadata !13, metadata !DIExpression()), !dbg !17
- call void @llvm.dbg.declare(metadata i32** %.Z0640_333, metadata !15, metadata !DIExpression()), !dbg !17
+ call void @llvm.dbg.declare(metadata ptr %"arr$sd1_349", metadata !8, metadata !DIExpression()), !dbg !17
+ call void @llvm.dbg.declare(metadata ptr %.Z0640_333, metadata !13, metadata !DIExpression()), !dbg !17
+ call void @llvm.dbg.declare(metadata ptr %.Z0640_333, metadata !15, metadata !DIExpression()), !dbg !17
ret void, !dbg !18
}
; ModuleID = 'dwarfdump-generic_subrange.ll'
source_filename = "dwarfdump-generic_subrange.ll"
-define void @sub_(i64* noalias %arank, i64* noalias %"arank$sd") !dbg !5 {
+define void @sub_(ptr noalias %arank, ptr noalias %"arank$sd") !dbg !5 {
L.entry:
- call void @llvm.dbg.value(metadata i64* %arank, metadata !17, metadata !DIExpression()), !dbg !18
- call void @llvm.dbg.declare(metadata i64* %"arank$sd", metadata !19, metadata !DIExpression()), !dbg !18
- call void @llvm.dbg.declare(metadata i64* %"arank$sd", metadata !29, metadata !DIExpression()), !dbg !18
+ call void @llvm.dbg.value(metadata ptr %arank, metadata !17, metadata !DIExpression()), !dbg !18
+ call void @llvm.dbg.declare(metadata ptr %"arank$sd", metadata !19, metadata !DIExpression()), !dbg !18
+ call void @llvm.dbg.declare(metadata ptr %"arank$sd", metadata !29, metadata !DIExpression()), !dbg !18
ret void, !dbg !18
}
; ModuleID = 'dwarfdump-subrange_const.ll'
source_filename = "dwarfdump-subrange_const.ll"
-define void @sub_(i64* noalias %arank, i64* noalias %"arank$sd") !dbg !5 {
+define void @sub_(ptr noalias %arank, ptr noalias %"arank$sd") !dbg !5 {
L.entry:
- call void @llvm.dbg.value(metadata i64* %arank, metadata !17, metadata !DIExpression()), !dbg !18
- call void @llvm.dbg.declare(metadata i64* %"arank$sd", metadata !19, metadata !DIExpression()), !dbg !18
- call void @llvm.dbg.declare(metadata i64* %"arank$sd", metadata !29, metadata !DIExpression()), !dbg !18
+ call void @llvm.dbg.value(metadata ptr %arank, metadata !17, metadata !DIExpression()), !dbg !18
+ call void @llvm.dbg.declare(metadata ptr %"arank$sd", metadata !19, metadata !DIExpression()), !dbg !18
+ call void @llvm.dbg.declare(metadata ptr %"arank$sd", metadata !29, metadata !DIExpression()), !dbg !18
ret void, !dbg !18
}
; ModuleID = 'dwarfdump-rank.ll'
source_filename = "dwarfdump-rank.ll"
-define void @sub_(i64* noalias %arank, i64* noalias %"arank$sd") !dbg !5 {
+define void @sub_(ptr noalias %arank, ptr noalias %"arank$sd") !dbg !5 {
L.entry:
- call void @llvm.dbg.value(metadata i64* %arank, metadata !17, metadata !DIExpression()), !dbg !18
- call void @llvm.dbg.declare(metadata i64* %"arank$sd", metadata !19, metadata !DIExpression()), !dbg !18
- call void @llvm.dbg.declare(metadata i64* %"arank$sd", metadata !29, metadata !DIExpression()), !dbg !18
+ call void @llvm.dbg.value(metadata ptr %arank, metadata !17, metadata !DIExpression()), !dbg !18
+ call void @llvm.dbg.declare(metadata ptr %"arank$sd", metadata !19, metadata !DIExpression()), !dbg !18
+ call void @llvm.dbg.declare(metadata ptr %"arank$sd", metadata !29, metadata !DIExpression()), !dbg !18
ret void, !dbg !18
}
define void @MAIN_() !dbg !5 {
L.entry:
- %.Z0655_362 = alloca i32*, align 8
+ %.Z0655_362 = alloca ptr, align 8
%"arr$sd1_379" = alloca [28 x i64], align 8
- call void @llvm.dbg.declare(metadata i32** %.Z0655_362, metadata !8, metadata !DIExpression()), !dbg !11
- call void @llvm.dbg.declare(metadata i32** %.Z0655_362, metadata !12, metadata !DIExpression()), !dbg !11
- call void @llvm.dbg.declare(metadata [28 x i64]* %"arr$sd1_379", metadata !14, metadata !DIExpression()), !dbg !11
- call void @llvm.dbg.declare(metadata [28 x i64]* %"arr$sd1_379", metadata !19, metadata !DIExpression()), !dbg !11
+ call void @llvm.dbg.declare(metadata ptr %.Z0655_362, metadata !8, metadata !DIExpression()), !dbg !11
+ call void @llvm.dbg.declare(metadata ptr %.Z0655_362, metadata !12, metadata !DIExpression()), !dbg !11
+ call void @llvm.dbg.declare(metadata ptr %"arr$sd1_379", metadata !14, metadata !DIExpression()), !dbg !11
+ call void @llvm.dbg.declare(metadata ptr %"arr$sd1_379", metadata !19, metadata !DIExpression()), !dbg !11
ret void, !dbg !25
}
; ModuleID = 'dwarfdump-rank.ll'
source_filename = "dwarfdump-rank.ll"
-define void @sub_(i64* noalias %arank, i64* noalias %"arank$sd") !dbg !5 {
+define void @sub_(ptr noalias %arank, ptr noalias %"arank$sd") !dbg !5 {
L.entry:
- call void @llvm.dbg.value(metadata i64* %arank, metadata !17, metadata !DIExpression()), !dbg !18
- call void @llvm.dbg.declare(metadata i64* %"arank$sd", metadata !19, metadata !DIExpression()), !dbg !18
- call void @llvm.dbg.declare(metadata i64* %"arank$sd", metadata !29, metadata !DIExpression()), !dbg !18
+ call void @llvm.dbg.value(metadata ptr %arank, metadata !17, metadata !DIExpression()), !dbg !18
+ call void @llvm.dbg.declare(metadata ptr %"arank$sd", metadata !19, metadata !DIExpression()), !dbg !18
+ call void @llvm.dbg.declare(metadata ptr %"arank$sd", metadata !29, metadata !DIExpression()), !dbg !18
ret void, !dbg !18
}
; ModuleID = 'dwarfdump-rank.ll'
source_filename = "dwarfdump-rank.ll"
-define void @sub_(i64* noalias %arank, i64* noalias %"arank$sd") !dbg !5 {
+define void @sub_(ptr noalias %arank, ptr noalias %"arank$sd") !dbg !5 {
L.entry:
- call void @llvm.dbg.value(metadata i64* %arank, metadata !17, metadata !DIExpression()), !dbg !18
- call void @llvm.dbg.declare(metadata i64* %"arank$sd", metadata !19, metadata !DIExpression()), !dbg !18
- call void @llvm.dbg.declare(metadata i64* %"arank$sd", metadata !29, metadata !DIExpression()), !dbg !18
+ call void @llvm.dbg.value(metadata ptr %arank, metadata !17, metadata !DIExpression()), !dbg !18
+ call void @llvm.dbg.declare(metadata ptr %"arank$sd", metadata !19, metadata !DIExpression()), !dbg !18
+ call void @llvm.dbg.declare(metadata ptr %"arank$sd", metadata !29, metadata !DIExpression()), !dbg !18
ret void, !dbg !18
}
; ModuleID = 'dwarfdump-signed_const.ll'
source_filename = "dwarfdump-signed_const.ll"
-define void @sub_(i64* noalias %arank, i64* noalias %"arank$sd") !dbg !5 {
+define void @sub_(ptr noalias %arank, ptr noalias %"arank$sd") !dbg !5 {
L.entry:
- call void @llvm.dbg.value(metadata i64* %arank, metadata !17, metadata !DIExpression()), !dbg !18
- call void @llvm.dbg.declare(metadata i64* %"arank$sd", metadata !19, metadata !DIExpression()), !dbg !18
- call void @llvm.dbg.declare(metadata i64* %"arank$sd", metadata !29, metadata !DIExpression()), !dbg !18
+ call void @llvm.dbg.value(metadata ptr %arank, metadata !17, metadata !DIExpression()), !dbg !18
+ call void @llvm.dbg.declare(metadata ptr %"arank$sd", metadata !19, metadata !DIExpression()), !dbg !18
+ call void @llvm.dbg.declare(metadata ptr %"arank$sd", metadata !29, metadata !DIExpression()), !dbg !18
ret void, !dbg !18
}
; This used to crash because early dup was not ignoring debug instructions.
-%struct.cpp_dir = type { %struct.cpp_dir*, i8*, i32, i8, i8**, i8*, i8* (i8*, %struct.cpp_dir*)*, i64, i32, i8 }
+%struct.cpp_dir = type { ptr, ptr, i32, i8, ptr, ptr, ptr, i64, i32, i8 }
declare void @llvm.dbg.value(metadata, metadata, metadata) nounwind readnone
-define internal i8* @framework_construct_pathname(i8* %fname, %struct.cpp_dir* %dir) nounwind ssp !dbg !2 {
+define internal ptr @framework_construct_pathname(ptr %fname, ptr %dir) nounwind ssp !dbg !2 {
entry:
br i1 undef, label %bb33, label %bb
br i1 undef, label %bb18, label %bb31.preheader
bb31.preheader: ; preds = %bb19, %bb
- %tmp2 = getelementptr inbounds i8, i8* %fname, i32 0
br label %bb31
bb18: ; preds = %bb
br i1 false, label %bb33, label %bb22
bb33: ; preds = %bb31, %bb22, %bb18, %entry
- ret i8* undef
+ ret ptr undef
}
declare void @foobar(i32)
%class.D = type { i32, i32, i32, i32 }
-@_ZN1DC1Ev = alias void (%class.D*), void (%class.D*)* @_ZN1DC2Ev
-@_ZN1DC1ERKS_ = alias void (%class.D*, %class.D*), void (%class.D*, %class.D*)* @_ZN1DC2ERKS_
+@_ZN1DC1Ev = alias void (ptr), ptr @_ZN1DC2Ev
+@_ZN1DC1ERKS_ = alias void (ptr, ptr), ptr @_ZN1DC2ERKS_
-define void @_ZN1DC2Ev(%class.D* nocapture %this) unnamed_addr nounwind uwtable align 2 !dbg !5 {
+define void @_ZN1DC2Ev(ptr nocapture %this) unnamed_addr nounwind uwtable align 2 !dbg !5 {
entry:
- tail call void @llvm.dbg.value(metadata %class.D* %this, metadata !29, metadata !DIExpression()), !dbg !36
- %c1 = getelementptr inbounds %class.D, %class.D* %this, i64 0, i32 0, !dbg !37
- store i32 1, i32* %c1, align 4, !dbg !37
- %c2 = getelementptr inbounds %class.D, %class.D* %this, i64 0, i32 1, !dbg !42
- store i32 2, i32* %c2, align 4, !dbg !42
- %c3 = getelementptr inbounds %class.D, %class.D* %this, i64 0, i32 2, !dbg !43
- store i32 3, i32* %c3, align 4, !dbg !43
- %c4 = getelementptr inbounds %class.D, %class.D* %this, i64 0, i32 3, !dbg !44
- store i32 4, i32* %c4, align 4, !dbg !44
+ tail call void @llvm.dbg.value(metadata ptr %this, metadata !29, metadata !DIExpression()), !dbg !36
+ store i32 1, ptr %this, align 4, !dbg !37
+ %c2 = getelementptr inbounds %class.D, ptr %this, i64 0, i32 1, !dbg !42
+ store i32 2, ptr %c2, align 4, !dbg !42
+ %c3 = getelementptr inbounds %class.D, ptr %this, i64 0, i32 2, !dbg !43
+ store i32 3, ptr %c3, align 4, !dbg !43
+ %c4 = getelementptr inbounds %class.D, ptr %this, i64 0, i32 3, !dbg !44
+ store i32 4, ptr %c4, align 4, !dbg !44
ret void, !dbg !45
}
-define void @_ZN1DC2ERKS_(%class.D* nocapture %this, %class.D* nocapture %d) unnamed_addr nounwind uwtable align 2 !dbg !31 {
+define void @_ZN1DC2ERKS_(ptr nocapture %this, ptr nocapture %d) unnamed_addr nounwind uwtable align 2 !dbg !31 {
entry:
- tail call void @llvm.dbg.value(metadata %class.D* %this, metadata !34, metadata !DIExpression()), !dbg !46
- tail call void @llvm.dbg.value(metadata %class.D* %d, metadata !35, metadata !DIExpression()), !dbg !46
- %c1 = getelementptr inbounds %class.D, %class.D* %d, i64 0, i32 0, !dbg !47
- %0 = load i32, i32* %c1, align 4, !dbg !47
- %c12 = getelementptr inbounds %class.D, %class.D* %this, i64 0, i32 0, !dbg !47
- store i32 %0, i32* %c12, align 4, !dbg !47
- %c2 = getelementptr inbounds %class.D, %class.D* %d, i64 0, i32 1, !dbg !49
- %1 = load i32, i32* %c2, align 4, !dbg !49
- %c23 = getelementptr inbounds %class.D, %class.D* %this, i64 0, i32 1, !dbg !49
- store i32 %1, i32* %c23, align 4, !dbg !49
- %c3 = getelementptr inbounds %class.D, %class.D* %d, i64 0, i32 2, !dbg !50
- %2 = load i32, i32* %c3, align 4, !dbg !50
- %c34 = getelementptr inbounds %class.D, %class.D* %this, i64 0, i32 2, !dbg !50
- store i32 %2, i32* %c34, align 4, !dbg !50
- %c4 = getelementptr inbounds %class.D, %class.D* %d, i64 0, i32 3, !dbg !51
- %3 = load i32, i32* %c4, align 4, !dbg !51
- %c45 = getelementptr inbounds %class.D, %class.D* %this, i64 0, i32 3, !dbg !51
- store i32 %3, i32* %c45, align 4, !dbg !51
+ tail call void @llvm.dbg.value(metadata ptr %this, metadata !34, metadata !DIExpression()), !dbg !46
+ tail call void @llvm.dbg.value(metadata ptr %d, metadata !35, metadata !DIExpression()), !dbg !46
+ %0 = load i32, ptr %d, align 4, !dbg !47
+ store i32 %0, ptr %this, align 4, !dbg !47
+ %c2 = getelementptr inbounds %class.D, ptr %d, i64 0, i32 1, !dbg !49
+ %1 = load i32, ptr %c2, align 4, !dbg !49
+ %c23 = getelementptr inbounds %class.D, ptr %this, i64 0, i32 1, !dbg !49
+ store i32 %1, ptr %c23, align 4, !dbg !49
+ %c3 = getelementptr inbounds %class.D, ptr %d, i64 0, i32 2, !dbg !50
+ %2 = load i32, ptr %c3, align 4, !dbg !50
+ %c34 = getelementptr inbounds %class.D, ptr %this, i64 0, i32 2, !dbg !50
+ store i32 %2, ptr %c34, align 4, !dbg !50
+ %c4 = getelementptr inbounds %class.D, ptr %d, i64 0, i32 3, !dbg !51
+ %3 = load i32, ptr %c4, align 4, !dbg !51
+ %c45 = getelementptr inbounds %class.D, ptr %this, i64 0, i32 3, !dbg !51
+ store i32 %3, ptr %c45, align 4, !dbg !51
ret void, !dbg !52
}
entry:
%x.addr = alloca i32, align 4
%y = alloca i32, align 4
- store i32 %x, i32* %x.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %x.addr, metadata !12, metadata !DIExpression()), !dbg !13
- call void @llvm.dbg.declare(metadata i32* %y, metadata !14, metadata !DIExpression()), !dbg !16
- %0 = load i32, i32* %x.addr, align 4, !dbg !17
- %1 = load i32, i32* %x.addr, align 4, !dbg !17
+ store i32 %x, ptr %x.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %x.addr, metadata !12, metadata !DIExpression()), !dbg !13
+ call void @llvm.dbg.declare(metadata ptr %y, metadata !14, metadata !DIExpression()), !dbg !16
+ %0 = load i32, ptr %x.addr, align 4, !dbg !17
+ %1 = load i32, ptr %x.addr, align 4, !dbg !17
%mul = mul nsw i32 %0, %1, !dbg !17
- store i32 %mul, i32* %y, align 4, !dbg !17
- %2 = load i32, i32* %y, align 4, !dbg !18
+ store i32 %mul, ptr %y, align 4, !dbg !17
+ %2 = load i32, ptr %y, align 4, !dbg !18
%sub = sub nsw i32 %2, 2, !dbg !18
ret i32 %sub, !dbg !18
}
; CHECK-NEXT: DW_AT_location {{.*}} (DW_OP_fbreg -8, DW_OP_deref)
; CHECK-NEXT: DW_AT_name {{.*}} "foo"
-define void @f(i8* %bar) !dbg !6 {
+define void @f(ptr %bar) !dbg !6 {
entry:
- %foo.addr = alloca i8*
- store i8* %bar, i8** %foo.addr
- call void @llvm.dbg.declare(metadata i8** %foo.addr, metadata !12, metadata !13), !dbg !14
+ %foo.addr = alloca ptr
+ store ptr %bar, ptr %foo.addr
+ call void @llvm.dbg.declare(metadata ptr %foo.addr, metadata !12, metadata !13), !dbg !14
ret void, !dbg !15
}
entry:
%a = alloca i16, align 4
%b = alloca i16, align 4
- call void @llvm.dbg.declare(metadata i16* %a, metadata !11, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 16)), !dbg !14
- store i16 1, i16* %a, align 4, !dbg !14
- call void @llvm.dbg.declare(metadata i16* %b, metadata !11, metadata !DIExpression(DW_OP_LLVM_fragment, 16, 16)), !dbg !16
- call void @llvm.dbg.declare(metadata i16* %a, metadata !11, metadata !13), !dbg !17
- store i16 2, i16* %b, align 4, !dbg !17
+ call void @llvm.dbg.declare(metadata ptr %a, metadata !11, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 16)), !dbg !14
+ store i16 1, ptr %a, align 4, !dbg !14
+ call void @llvm.dbg.declare(metadata ptr %b, metadata !11, metadata !DIExpression(DW_OP_LLVM_fragment, 16, 16)), !dbg !16
+ call void @llvm.dbg.declare(metadata ptr %a, metadata !11, metadata !13), !dbg !17
+ store i16 2, ptr %b, align 4, !dbg !17
ret void
}
entry:
tail call void @llvm.dbg.value(metadata i32 1, metadata !13, metadata !DIExpression()), !dbg !30
tail call void @llvm.dbg.value(metadata i32 0, metadata !14, metadata !DIExpression()), !dbg !31
- %c.promoted9 = load i32, i32* @c, align 4, !dbg !32, !tbaa !33
+ %c.promoted9 = load i32, ptr @c, align 4, !dbg !32, !tbaa !33
br label %for.cond1.preheader, !dbg !31
for.cond1.preheader: ; preds = %for.inc16, %entry
for.body9: ; preds = %for.body9, %for.cond7.preheader
%and2 = phi i32 [ %and.lcssa5, %for.cond7.preheader ], [ %and, %for.body9 ], !dbg !40
%e.01 = phi i32 [ 0, %for.cond7.preheader ], [ %inc, %for.body9 ]
- tail call void @llvm.dbg.value(metadata i32* @c, metadata !19, metadata !DIExpression()), !dbg !40
+ tail call void @llvm.dbg.value(metadata ptr @c, metadata !19, metadata !DIExpression()), !dbg !40
%and = and i32 %and2, 1, !dbg !32
%inc = add i32 %e.01, 1, !dbg !39
tail call void @llvm.dbg.value(metadata i32 %inc, metadata !18, metadata !DIExpression()), !dbg !42
br i1 %exitcond13, label %for.end18, label %for.cond1.preheader, !dbg !31
for.end18: ; preds = %for.inc16
- store i32 %and, i32* @c, align 4, !dbg !32, !tbaa !33
+ store i32 %and, ptr @c, align 4, !dbg !32, !tbaa !33
ret void, !dbg !42
}
!38 = !DILocation(line: 9, scope: !22)
!39 = !DILocation(line: 10, scope: !21)
!40 = !DILocation(line: 12, scope: !20)
-!41 = !{i32* @c}
+!41 = !{ptr @c}
!42 = !DILocation(line: 15, scope: !8)
!43 = !{i32 1, !"Debug Info Version", i32 3}
!44 = !{i32 0}
; Function Attrs: nounwind optsize readnone uwtable
define void @foo() #0 !dbg !7 {
entry:
- tail call void @llvm.dbg.declare(metadata float* undef, metadata !13, metadata !19), !dbg !20
+ tail call void @llvm.dbg.declare(metadata ptr undef, metadata !13, metadata !19), !dbg !20
tail call void @llvm.dbg.value(metadata i32 1078523331, metadata !13, metadata !19), !dbg !20
tail call void @llvm.dbg.value(metadata i32 0, metadata !13, metadata !19), !dbg !20
; CHECK: DW_AT_const_value [DW_FORM_sdata] (0)
define void @foo(i32 %map) #0 !dbg !4 {
entry:
%map.addr = alloca i32, align 4
- store i32 %map, i32* %map.addr, align 4, !tbaa !15
- call void @llvm.dbg.declare(metadata i32* %map.addr, metadata !10, metadata !DIExpression()), !dbg !14
- %call = call i32 (i32*, ...) bitcast (i32 (...)* @lookup to i32 (i32*, ...)*)(i32* %map.addr) #3, !dbg !19
+ store i32 %map, ptr %map.addr, align 4, !tbaa !15
+ call void @llvm.dbg.declare(metadata ptr %map.addr, metadata !10, metadata !DIExpression()), !dbg !14
+ %call = call i32 (ptr, ...) @lookup(ptr %map.addr) #3, !dbg !19
; Ensure that all dbg intrinsics have the same scope after
; LowerDbgDeclare is finished with them.
;
; LOWERING: call void @llvm.dbg.value{{.*}}, !dbg ![[LOC:.*]]
; LOWERING: call void @llvm.dbg.value{{.*}}, !dbg ![[LOC]]
; LOWERING: call void @llvm.dbg.value{{.*}}, !dbg ![[LOC]]
-%0 = load i32, i32* %map.addr, align 4, !dbg !20, !tbaa !15
- %call1 = call i32 (i32, ...) bitcast (i32 (...)* @verify to i32 (i32, ...)*)(i32 %0) #3, !dbg !20
+%0 = load i32, ptr %map.addr, align 4, !dbg !20, !tbaa !15
+ %call1 = call i32 (i32, ...) @verify(i32 %0) #3, !dbg !20
ret void, !dbg !22
}
entry:
%retval = alloca i32, align 4
%i = alloca i32, align 4
- store i32 0, i32* %retval
- call void @llvm.dbg.declare(metadata i32* %i, metadata !20, metadata !16), !dbg !21
- store i32 20, i32* %i, align 4, !dbg !21
- %0 = load i32, i32* %i, align 4, !dbg !22
+ store i32 0, ptr %retval
+ call void @llvm.dbg.declare(metadata ptr %i, metadata !20, metadata !16), !dbg !21
+ store i32 20, ptr %i, align 4, !dbg !21
+ %0 = load i32, ptr %i, align 4, !dbg !22
%call = call i32 @foo(i32 %0), !dbg !23
ret i32 %call, !dbg !24
}
@_ZN7echidna8capybara8mongoose6animalE = global %"class.echidna::capybara::mongoose::fluffy" zeroinitializer, align 4, !dbg !6
@w = internal global %"struct.<anonymous namespace>::walrus" zeroinitializer, align 1, !dbg !16
@wom = global %struct.wombat zeroinitializer, align 4, !dbg !25
-@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I_a, i8* null }]
+@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__I_a, ptr null }]
; Function Attrs: nounwind uwtable
define void @_Z3foov() #0 !dbg !40 {
entry:
%b = alloca %struct.baz, align 1
- call void @llvm.dbg.declare(metadata %struct.baz* %b, metadata !43, metadata !45), !dbg !46
+ call void @llvm.dbg.declare(metadata ptr %b, metadata !43, metadata !45), !dbg !46
ret void, !dbg !47
}
define internal void @__cxx_global_var_init() section ".text.startup" !dbg !48 {
entry:
- call void @_ZN12_GLOBAL__N_16walrusC2Ev(%"struct.<anonymous namespace>::walrus"* @w), !dbg !49
+ call void @_ZN12_GLOBAL__N_16walrusC2Ev(ptr @w), !dbg !49
ret void, !dbg !49
}
; Function Attrs: nounwind uwtable
-define internal void @_ZN12_GLOBAL__N_16walrusC2Ev(%"struct.<anonymous namespace>::walrus"* %this) unnamed_addr #0 align 2 !dbg !50 {
+define internal void @_ZN12_GLOBAL__N_16walrusC2Ev(ptr %this) unnamed_addr #0 align 2 !dbg !50 {
entry:
- %this.addr = alloca %"struct.<anonymous namespace>::walrus"*, align 8
- store %"struct.<anonymous namespace>::walrus"* %this, %"struct.<anonymous namespace>::walrus"** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %"struct.<anonymous namespace>::walrus"** %this.addr, metadata !51, metadata !45), !dbg !53
- %this1 = load %"struct.<anonymous namespace>::walrus"*, %"struct.<anonymous namespace>::walrus"** %this.addr
+ %this.addr = alloca ptr, align 8
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !51, metadata !45), !dbg !53
+ %this1 = load ptr, ptr %this.addr
ret void, !dbg !54
}
target triple = "x86_64-apple-macosx10.13.0"
@i = global i32 23, align 4
-@indirect = global i32* @i, align 8, !dbg !6, !dbg !0, !dbg !14, !dbg !15, !dbg !16
+@indirect = global ptr @i, align 8, !dbg !6, !dbg !0, !dbg !14, !dbg !15, !dbg !16
!llvm.dbg.cu = !{!2}
!llvm.module.flags = !{!10, !11, !12, !13}
define void @foo(i32 %in) #0 {
entry:
%in.addr = alloca i32, align 4
- store i32 %in, i32* %in.addr, align 4
- %0 = load i32, i32* %in.addr, align 4
+ store i32 %in, ptr %in.addr, align 4
+ %0 = load i32, ptr %in.addr, align 4
%conv = sitofp i32 %0 to x86_fp80
- store x86_fp80 %conv, x86_fp80* getelementptr inbounds ([2 x x86_fp80], [2 x x86_fp80]* @array, i64 0, i64 0), align 16
+ store x86_fp80 %conv, ptr @array, align 16
ret void
}
define void @bar(i32 %in) #0 {
entry:
%in.addr = alloca i32, align 4
- store i32 %in, i32* %in.addr, align 4
- %0 = load i32, i32* %in.addr, align 4
+ store i32 %in, ptr %in.addr, align 4
+ %0 = load i32, ptr %in.addr, align 4
%conv = sitofp i32 %0 to x86_fp80
- store x86_fp80 %conv, x86_fp80* getelementptr inbounds ([2 x x86_fp80], [2 x x86_fp80]* @array, i64 0, i64 1), align 16
+ store x86_fp80 %conv, ptr getelementptr inbounds ([2 x x86_fp80], ptr @array, i64 0, i64 1), align 16
ret void
}
; Function Attrs: noinline nounwind optnone uwtable
-define i32 @main(i32 %argc, i8** %argv) #0 !dbg !14 {
+define i32 @main(i32 %argc, ptr %argv) #0 !dbg !14 {
entry:
%retval = alloca i32, align 4
%argc.addr = alloca i32, align 4
- %argv.addr = alloca i8**, align 8
- store i32 0, i32* %retval, align 4
- store i32 %argc, i32* %argc.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %argc.addr, metadata !21, metadata !DIExpression()), !dbg !22
- store i8** %argv, i8*** %argv.addr, align 8
- call void @llvm.dbg.declare(metadata i8*** %argv.addr, metadata !23, metadata !DIExpression()), !dbg !24
- %0 = load i8**, i8*** %argv.addr, align 8, !dbg !25
- %arrayidx = getelementptr inbounds i8*, i8** %0, i64 0, !dbg !25
- %1 = load i8*, i8** %arrayidx, align 8, !dbg !25
- %arrayidx1 = getelementptr inbounds i8, i8* %1, i64 1, !dbg !25
- %2 = load i8, i8* %arrayidx1, align 1, !dbg !25
+ %argv.addr = alloca ptr, align 8
+ store i32 0, ptr %retval, align 4
+ store i32 %argc, ptr %argc.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %argc.addr, metadata !21, metadata !DIExpression()), !dbg !22
+ store ptr %argv, ptr %argv.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %argv.addr, metadata !23, metadata !DIExpression()), !dbg !24
+ %0 = load ptr, ptr %argv.addr, align 8, !dbg !25
+ %1 = load ptr, ptr %0, align 8, !dbg !25
+ %arrayidx1 = getelementptr inbounds i8, ptr %1, i64 1, !dbg !25
+ %2 = load i8, ptr %arrayidx1, align 1, !dbg !25
%conv = sext i8 %2 to i32, !dbg !25
call void @foo(i32 %conv), !dbg !26
- %3 = load i8**, i8*** %argv.addr, align 8, !dbg !27
- %arrayidx2 = getelementptr inbounds i8*, i8** %3, i64 0, !dbg !27
- %4 = load i8*, i8** %arrayidx2, align 8, !dbg !27
- %arrayidx3 = getelementptr inbounds i8, i8* %4, i64 1, !dbg !27
- %5 = load i8, i8* %arrayidx3, align 1, !dbg !27
+ %3 = load ptr, ptr %argv.addr, align 8, !dbg !27
+ %4 = load ptr, ptr %3, align 8, !dbg !27
+ %arrayidx3 = getelementptr inbounds i8, ptr %4, i64 1, !dbg !27
+ %5 = load i8, ptr %arrayidx3, align 1, !dbg !27
%conv4 = sext i8 %5 to i32, !dbg !27
call void @bar(i32 %conv4), !dbg !28
- %6 = load x86_fp80, x86_fp80* getelementptr inbounds ([2 x x86_fp80], [2 x x86_fp80]* @array, i64 0, i64 0), align 16, !dbg !29
- %7 = load x86_fp80, x86_fp80* getelementptr inbounds ([2 x x86_fp80], [2 x x86_fp80]* @array, i64 0, i64 1), align 16, !dbg !30
+ %6 = load x86_fp80, ptr @array, align 16, !dbg !29
+ %7 = load x86_fp80, ptr getelementptr inbounds ([2 x x86_fp80], ptr @array, i64 0, i64 1), align 16, !dbg !30
%add = fadd x86_fp80 %6, %7, !dbg !31
%cmp = fcmp ogt x86_fp80 %add, 0xK00000000000000000000, !dbg !32
%conv5 = zext i1 %cmp to i32, !dbg !32
define void @foo(i32 %in) #0 {
entry:
%in.addr = alloca i32, align 4
- store i32 %in, i32* %in.addr, align 4
- %0 = load i32, i32* %in.addr, align 4
+ store i32 %in, ptr %in.addr, align 4
+ %0 = load i32, ptr %in.addr, align 4
%conv = sitofp i32 %0 to x86_fp80
- store x86_fp80 %conv, x86_fp80* getelementptr inbounds (%struct.mystruct, %struct.mystruct* @static_struct, i32 0, i32 0), align 16
+ store x86_fp80 %conv, ptr @static_struct, align 16
ret void
}
define void @bar(i32 %in) #0 {
entry:
%in.addr = alloca i32, align 4
- store i32 %in, i32* %in.addr, align 4
- %0 = load i32, i32* %in.addr, align 4
- store i32 %0, i32* getelementptr inbounds (%struct.mystruct, %struct.mystruct* @static_struct, i32 0, i32 1), align 16
+ store i32 %in, ptr %in.addr, align 4
+ %0 = load i32, ptr %in.addr, align 4
+ store i32 %0, ptr getelementptr inbounds (%struct.mystruct, ptr @static_struct, i32 0, i32 1), align 16
ret void
}
; Function Attrs: noinline nounwind optnone uwtable
-define i32 @main(i32 %argc, i8** %argv) #0 !dbg !16 {
+define i32 @main(i32 %argc, ptr %argv) #0 !dbg !16 {
entry:
%retval = alloca i32, align 4
%argc.addr = alloca i32, align 4
- %argv.addr = alloca i8**, align 8
- store i32 0, i32* %retval, align 4
- store i32 %argc, i32* %argc.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %argc.addr, metadata !22, metadata !DIExpression()), !dbg !23
- store i8** %argv, i8*** %argv.addr, align 8
- call void @llvm.dbg.declare(metadata i8*** %argv.addr, metadata !24, metadata !DIExpression()), !dbg !25
- %0 = load i8**, i8*** %argv.addr, align 8, !dbg !26
- %arrayidx = getelementptr inbounds i8*, i8** %0, i64 0, !dbg !26
- %1 = load i8*, i8** %arrayidx, align 8, !dbg !26
- %arrayidx1 = getelementptr inbounds i8, i8* %1, i64 1, !dbg !26
- %2 = load i8, i8* %arrayidx1, align 1, !dbg !26
+ %argv.addr = alloca ptr, align 8
+ store i32 0, ptr %retval, align 4
+ store i32 %argc, ptr %argc.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %argc.addr, metadata !22, metadata !DIExpression()), !dbg !23
+ store ptr %argv, ptr %argv.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %argv.addr, metadata !24, metadata !DIExpression()), !dbg !25
+ %0 = load ptr, ptr %argv.addr, align 8, !dbg !26
+ %1 = load ptr, ptr %0, align 8, !dbg !26
+ %arrayidx1 = getelementptr inbounds i8, ptr %1, i64 1, !dbg !26
+ %2 = load i8, ptr %arrayidx1, align 1, !dbg !26
%conv = sext i8 %2 to i32, !dbg !26
call void @foo(i32 %conv), !dbg !27
- %3 = load i8**, i8*** %argv.addr, align 8, !dbg !28
- %arrayidx2 = getelementptr inbounds i8*, i8** %3, i64 0, !dbg !28
- %4 = load i8*, i8** %arrayidx2, align 8, !dbg !28
- %arrayidx3 = getelementptr inbounds i8, i8* %4, i64 1, !dbg !28
- %5 = load i8, i8* %arrayidx3, align 1, !dbg !28
+ %3 = load ptr, ptr %argv.addr, align 8, !dbg !28
+ %4 = load ptr, ptr %3, align 8, !dbg !28
+ %arrayidx3 = getelementptr inbounds i8, ptr %4, i64 1, !dbg !28
+ %5 = load i8, ptr %arrayidx3, align 1, !dbg !28
%conv4 = sext i8 %5 to i32, !dbg !28
call void @bar(i32 %conv4), !dbg !29
- %6 = load x86_fp80, x86_fp80* getelementptr inbounds (%struct.mystruct, %struct.mystruct* @static_struct, i32 0, i32 0), align 16, !dbg !30
- %7 = load i32, i32* getelementptr inbounds (%struct.mystruct, %struct.mystruct* @static_struct, i32 0, i32 1), align 16, !dbg !31
+ %6 = load x86_fp80, ptr @static_struct, align 16, !dbg !30
+ %7 = load i32, ptr getelementptr inbounds (%struct.mystruct, ptr @static_struct, i32 0, i32 1), align 16, !dbg !31
%conv5 = sitofp i32 %7 to x86_fp80, !dbg !32
%add = fadd x86_fp80 %6, %conv5, !dbg !33
%cmp = fcmp ogt x86_fp80 %add, 0xK00000000000000000000, !dbg !34
@.C330_sub_ = internal constant i32 0
@.C332_sub_ = internal constant i32 1
-define void @sub_(i64* noalias %inode, i64* noalias %node) !dbg !2 {
+define void @sub_(ptr noalias %inode, ptr noalias %node) !dbg !2 {
L.entry:
- call void @llvm.dbg.declare(metadata i64* %inode, metadata !16, metadata !DIExpression()), !dbg !17
- call void @llvm.dbg.declare(metadata i64* %node, metadata !18, metadata !DIExpression()), !dbg !17
+ call void @llvm.dbg.declare(metadata ptr %inode, metadata !16, metadata !DIExpression()), !dbg !17
+ call void @llvm.dbg.declare(metadata ptr %node, metadata !18, metadata !DIExpression()), !dbg !17
br label %L.LB1_360
L.LB1_360: ; preds = %L.entry
- %0 = bitcast i64* %inode to i32*, !dbg !19
- %1 = load i32, i32* %0, align 4, !dbg !19
- %2 = icmp ne i32 %1, 1, !dbg !19
- br i1 %2, label %L.LB1_356, label %L.LB1_370, !dbg !19
+ %0 = load i32, ptr %inode, align 4, !dbg !19
+ %1 = icmp ne i32 %0, 1, !dbg !19
+ br i1 %1, label %L.LB1_356, label %L.LB1_370, !dbg !19
L.LB1_370: ; preds = %L.LB1_360
- %3 = bitcast i64* %node to i32*, !dbg !20
- %4 = load i32, i32* %3, align 4, !dbg !20
- %5 = bitcast %struct.BSS1* @.BSS1 to i32*, !dbg !20
- store i32 %4, i32* %5, align 4, !dbg !20
- %6 = bitcast i64* %node to i32*, !dbg !21
- %7 = load i32, i32* %6, align 4, !dbg !21
- %8 = bitcast %struct.BSS1* @.BSS1 to i8*, !dbg !21
- %9 = getelementptr i8, i8* %8, i64 4, !dbg !21
- %10 = bitcast i8* %9 to i32*, !dbg !21
- store i32 %7, i32* %10, align 4, !dbg !21
- %11 = bitcast %struct.BSS1* @.BSS1 to i8*, !dbg !22
- %12 = getelementptr i8, i8* %11, i64 8, !dbg !22
- %13 = bitcast i8* %12 to i32*, !dbg !22
- store i32 0, i32* %13, align 4, !dbg !22
+ %2 = load i32, ptr %node, align 4, !dbg !20
+ store i32 %2, ptr @.BSS1, align 4, !dbg !20
+ %3 = load i32, ptr %node, align 4, !dbg !21
+ %4 = getelementptr i8, ptr @.BSS1, i64 4, !dbg !21
+ store i32 %3, ptr %4, align 4, !dbg !21
+ %5 = getelementptr i8, ptr @.BSS1, i64 8, !dbg !22
+ store i32 0, ptr %5, align 4, !dbg !22
br label %L.LB1_357, !dbg !23
L.LB1_356: ; preds = %L.LB1_360
- %14 = bitcast i64* %node to i32*, !dbg !24
- %15 = load i32, i32* %14, align 4, !dbg !24
- %16 = add nsw i32 %15, 1, !dbg !24
- %17 = bitcast %struct.BSS1* @.BSS1 to i32*, !dbg !24
- %18 = load i32, i32* %17, align 4, !dbg !24
- %19 = add nsw i32 %16, %18, !dbg !24
- %20 = bitcast %struct.BSS1* @.BSS1 to i8*, !dbg !24
- %21 = getelementptr i8, i8* %20, i64 4, !dbg !24
- %22 = bitcast i8* %21 to i32*, !dbg !24
- %23 = load i32, i32* %22, align 4, !dbg !24
- %24 = add nsw i32 %19, %23, !dbg !24
- %25 = bitcast %struct.BSS1* @.BSS1 to i8*, !dbg !24
- %26 = getelementptr i8, i8* %25, i64 8, !dbg !24
- %27 = bitcast i8* %26 to i32*, !dbg !24
- %28 = load i32, i32* %27, align 4, !dbg !24
- %29 = add nsw i32 %24, %28, !dbg !24
- %30 = bitcast %struct.BSS1* @.BSS1 to i8*, !dbg !24
- %31 = getelementptr i8, i8* %30, i64 8, !dbg !24
- %32 = bitcast i8* %31 to i32*, !dbg !24
- store i32 %29, i32* %32, align 4, !dbg !24
+ %6 = load i32, ptr %node, align 4, !dbg !24
+ %7 = add nsw i32 %6, 1, !dbg !24
+ %8 = load i32, ptr @.BSS1, align 4, !dbg !24
+ %9 = add nsw i32 %7, %8, !dbg !24
+ %10 = getelementptr i8, ptr @.BSS1, i64 4, !dbg !24
+ %11 = load i32, ptr %10, align 4, !dbg !24
+ %12 = add nsw i32 %9, %11, !dbg !24
+ %13 = getelementptr i8, ptr @.BSS1, i64 8, !dbg !24
+ %14 = load i32, ptr %13, align 4, !dbg !24
+ %15 = add nsw i32 %12, %14, !dbg !24
+ %16 = getelementptr i8, ptr @.BSS1, i64 8, !dbg !24
+ store i32 %15, ptr %16, align 4, !dbg !24
br label %L.LB1_354, !dbg !25
L.LB1_357: ; preds = %L.LB1_370
}
; Function Attrs: norecurse uwtable
-define weak_odr hidden i32* @_ZTW3var() local_unnamed_addr #1 {
- ret i32* @var
+define weak_odr hidden ptr @_ZTW3var() local_unnamed_addr #1 {
+ ret ptr @var
}
attributes #0 = { norecurse nounwind readnone uwtable }
@_ZN5outer12_GLOBAL__N_11cE = internal global i32 0, align 4, !dbg !50
; Function Attrs: noinline nounwind optnone uwtable
-define dso_local void @_ZN1C15member_functionEv(%struct.C* %this) #0 align 2 !dbg !61 {
+define dso_local void @_ZN1C15member_functionEv(ptr %this) #0 align 2 !dbg !61 {
entry:
- %this.addr = alloca %struct.C*, align 8
- store %struct.C* %this, %struct.C** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %struct.C** %this.addr, metadata !62, metadata !DIExpression()), !dbg !64
- %this1 = load %struct.C*, %struct.C** %this.addr, align 8
- store i32 0, i32* @_ZN1C22static_member_variableE, align 4, !dbg !65
+ %this.addr = alloca ptr, align 8
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !62, metadata !DIExpression()), !dbg !64
+ %this1 = load ptr, ptr %this.addr, align 8
+ store i32 0, ptr @_ZN1C22static_member_variableE, align 4, !dbg !65
ret void, !dbg !66
}
; Function Attrs: noinline nounwind optnone uwtable
define dso_local i32 @_ZN1C22static_member_functionEv() #0 align 2 !dbg !67 {
entry:
- %0 = load i32, i32* @_ZN1C22static_member_variableE, align 4, !dbg !68
+ %0 = load i32, ptr @_ZN1C22static_member_variableE, align 4, !dbg !68
ret i32 %0, !dbg !69
}
; Function Attrs: noinline nounwind optnone uwtable
define dso_local void @_ZN2ns25global_namespace_functionEv() #0 !dbg !72 {
entry:
- call void @_ZN1C15member_functionEv(%struct.C* @global_variable), !dbg !75
+ call void @_ZN1C15member_functionEv(ptr @global_variable), !dbg !75
ret void, !dbg !76
}
; Function Attrs: noinline nounwind optnone uwtable
-define dso_local i32* @_Z2f3v() #0 !dbg !39 {
+define dso_local ptr @_Z2f3v() #0 !dbg !39 {
entry:
- ret i32* @_ZZ2f3vE1z, !dbg !77
+ ret ptr @_ZZ2f3vE1z, !dbg !77
}
; Function Attrs: noinline nounwind optnone uwtable
define dso_local i32 @_Z2f7v() #0 !dbg !78 {
entry:
- %0 = load i32, i32* @_ZN12_GLOBAL__N_11iE, align 4, !dbg !79
- %call = call i32* @_Z2f3v(), !dbg !80
- %1 = load i32, i32* %call, align 4, !dbg !81
+ %0 = load i32, ptr @_ZN12_GLOBAL__N_11iE, align 4, !dbg !79
+ %call = call ptr @_Z2f3v(), !dbg !80
+ %1 = load i32, ptr %call, align 4, !dbg !81
%add = add nsw i32 %0, %1, !dbg !82
- %2 = load i32, i32* @_ZN12_GLOBAL__N_15inner1bE, align 4, !dbg !83
+ %2 = load i32, ptr @_ZN12_GLOBAL__N_15inner1bE, align 4, !dbg !83
%add1 = add nsw i32 %add, %2, !dbg !84
- %3 = load i32, i32* @_ZN5outer12_GLOBAL__N_11cE, align 4, !dbg !85
+ %3 = load i32, ptr @_ZN5outer12_GLOBAL__N_11cE, align 4, !dbg !85
%add2 = add nsw i32 %add1, %3, !dbg !86
%add3 = add nsw i32 %add2, 0, !dbg !87
%add4 = add nsw i32 %add3, 0, !dbg !88
call void @llvm.dbg.value(metadata double 3.140000e+00, metadata !12, metadata !DIExpression()), !dbg !14
call void @llvm.dbg.value(metadata double 4.700000e+01, metadata !17, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64)), !dbg !14
call void @llvm.dbg.value(metadata double 7.400000e+01, metadata !17, metadata !DIExpression(DW_OP_LLVM_fragment, 64, 64)), !dbg !14
- %puts = call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @str, i64 0, i64 0)), !dbg !15
+ %puts = call i32 @puts(ptr nonnull dereferenceable(1) @str), !dbg !15
call void @llvm.dbg.value(metadata double undef, metadata !12, metadata !DIExpression()), !dbg !14
ret i32 0, !dbg !16
}
declare void @llvm.dbg.value(metadata, metadata, metadata) #1
; Function Attrs: nofree nounwind
-declare i32 @puts(i8* nocapture readonly) local_unnamed_addr #2
+declare i32 @puts(ptr nocapture readonly) local_unnamed_addr #2
attributes #0 = { nofree nounwind uwtable }
attributes #1 = { nounwind readnone speculatable willreturn }
define dso_local i32 @main() local_unnamed_addr #0 !dbg !7 {
entry:
call void @llvm.dbg.value(metadata float 0x40091EB860000000, metadata !12, metadata !DIExpression()), !dbg !14
- %puts = call i32 @puts(i8* nonnull dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @str, i64 0, i64 0)), !dbg !15
+ %puts = call i32 @puts(ptr nonnull dereferenceable(1) @str), !dbg !15
call void @llvm.dbg.value(metadata float undef, metadata !12, metadata !DIExpression()), !dbg !14
ret i32 0, !dbg !16
}
declare void @llvm.dbg.value(metadata, metadata, metadata) #1
; Function Attrs: nofree nounwind
-declare i32 @puts(i8* nocapture readonly) local_unnamed_addr #2
+declare i32 @puts(ptr nocapture readonly) local_unnamed_addr #2
attributes #0 = { nofree nounwind uwtable }
attributes #1 = { nounwind readnone speculatable willreturn }
; Function Attrs: uwtable
define i32 @main() #0 !dbg !17 {
entry:
- %this.addr.i = alloca %struct.foo*, align 8
+ %this.addr.i = alloca ptr, align 8
%x.addr.i = alloca i32, align 4
%retval = alloca i32, align 4
%tmp = alloca %struct.foo, align 1
- store i32 0, i32* %retval
- %0 = load i32, i32* @i, align 4, !dbg !20
- store %struct.foo* %tmp, %struct.foo** %this.addr.i, align 8
- call void @llvm.dbg.declare(metadata %struct.foo** %this.addr.i, metadata !21, metadata !24), !dbg !25
- store i32 %0, i32* %x.addr.i, align 4
- call void @llvm.dbg.declare(metadata i32* %x.addr.i, metadata !26, metadata !24), !dbg !27
- %this1.i = load %struct.foo*, %struct.foo** %this.addr.i
- %1 = load i32, i32* %x.addr.i, align 4, !dbg !27
+ store i32 0, ptr %retval
+ %0 = load i32, ptr @i, align 4, !dbg !20
+ store ptr %tmp, ptr %this.addr.i, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr.i, metadata !21, metadata !24), !dbg !25
+ store i32 %0, ptr %x.addr.i, align 4
+ call void @llvm.dbg.declare(metadata ptr %x.addr.i, metadata !26, metadata !24), !dbg !27
+ %this1.i = load ptr, ptr %this.addr.i
+ %1 = load i32, ptr %x.addr.i, align 4, !dbg !27
%add.i = add nsw i32 %1, 2, !dbg !27
ret i32 %add.i, !dbg !20
}
entry:
%y.addr.i = alloca i32, align 4
%x = alloca i32, align 4
- call void @llvm.dbg.declare(metadata i32* %x, metadata !15, metadata !DIExpression()), !dbg !17
- %0 = load volatile i32, i32* %x, align 4, !dbg !18
- store i32 %0, i32* %y.addr.i, align 4
- call void @llvm.dbg.declare(metadata i32* %y.addr.i, metadata !19, metadata !DIExpression()), !dbg !20
- %1 = load i32, i32* %y.addr.i, align 4, !dbg !21
+ call void @llvm.dbg.declare(metadata ptr %x, metadata !15, metadata !DIExpression()), !dbg !17
+ %0 = load volatile i32, ptr %x, align 4, !dbg !18
+ store i32 %0, ptr %y.addr.i, align 4
+ call void @llvm.dbg.declare(metadata ptr %y.addr.i, metadata !19, metadata !DIExpression()), !dbg !20
+ %1 = load i32, ptr %y.addr.i, align 4, !dbg !21
%tobool.i = icmp ne i32 %1, 0, !dbg !21
%cond.i = select i1 %tobool.i, i32 4, i32 7, !dbg !21
- store volatile i32 %cond.i, i32* %x, align 4, !dbg !18
+ store volatile i32 %cond.i, ptr %x, align 4, !dbg !18
ret void, !dbg !22
}
; CHECK: movl $1
entry:
- %0 = load volatile i32, i32* @x, align 4, !dbg !15, !tbaa !19
+ %0 = load volatile i32, ptr @x, align 4, !dbg !15, !tbaa !19
%mul.i = mul nsw i32 %0, 3, !dbg !23
%cmp.i = icmp slt i32 %mul.i, 14, !dbg !24
%..i = select i1 %cmp.i, i32 1, i32 2, !dbg !25
- store volatile i32 %..i, i32* @x, align 4, !dbg !27, !tbaa !19
- %1 = load volatile i32, i32* @x, align 4, !dbg !28, !tbaa !19
+ store volatile i32 %..i, ptr @x, align 4, !dbg !27, !tbaa !19
+ %1 = load volatile i32, ptr @x, align 4, !dbg !28, !tbaa !19
%tobool = icmp ne i32 %1, 0, !dbg !28
br i1 %tobool, label %select.end, label %select.mid
select.end: ; preds = %select.mid, %entry
%cond = phi i32 [ 1, %entry ], [ 2, %select.mid ]
- store volatile i32 %cond, i32* @x, align 4, !dbg !29, !tbaa !19
+ store volatile i32 %cond, ptr @x, align 4, !dbg !29, !tbaa !19
ret i32 0, !dbg !30
}
define dso_local i32 @p() local_unnamed_addr !dbg !11 {
entry:
- %conv = load i32, i32* @a, align 4, !dbg !14
+ %conv = load i32, ptr @a, align 4, !dbg !14
%0 = and i32 %conv, 65535, !dbg !14
; CHECK: metadata !DIExpression(DW_OP_constu, 65535, DW_OP_and, DW_OP_stack_value))
call void @llvm.dbg.value(metadata i32 %0, metadata !15, metadata !DIExpression()), !dbg !14
; Verify that we emit the same intrinsic at most once.
; rdar://problem/13056109
;
-; CHECK: call void @llvm.dbg.value(metadata %struct.i14** %p
-; CHECK-NOT: call void @llvm.dbg.value(metadata %struct.i14** %p
+; CHECK: call void @llvm.dbg.value(metadata ptr %p
+; CHECK-NOT: call void @llvm.dbg.value(metadata ptr %p
; CHECK-NEXT: call i32 @foo
; CHECK: ret
;
; long i;
; } i14;
;
-; int foo(i14**);
+; int foo(ptr);
;
; void init() {
-; i14* p = 0;
+; ptr p = 0;
; foo(&p);
; p->i |= 4;
; foo(&p);
; Function Attrs: nounwind ssp uwtable
define void @init() #0 !dbg !4 {
- %p = alloca %struct.i14*, align 8
- call void @llvm.dbg.declare(metadata %struct.i14** %p, metadata !11, metadata !DIExpression()), !dbg !18
- store %struct.i14* null, %struct.i14** %p, align 8, !dbg !18
- %1 = call i32 @foo(%struct.i14** %p), !dbg !19
- %2 = load %struct.i14*, %struct.i14** %p, align 8, !dbg !20
- %3 = getelementptr inbounds %struct.i14, %struct.i14* %2, i32 0, i32 0, !dbg !20
- %4 = load i64, i64* %3, align 8, !dbg !20
- %5 = or i64 %4, 4, !dbg !20
- store i64 %5, i64* %3, align 8, !dbg !20
- %6 = call i32 @foo(%struct.i14** %p), !dbg !21
+ %p = alloca ptr, align 8
+ call void @llvm.dbg.declare(metadata ptr %p, metadata !11, metadata !DIExpression()), !dbg !18
+ store ptr null, ptr %p, align 8, !dbg !18
+ %1 = call i32 @foo(ptr %p), !dbg !19
+ %2 = load ptr, ptr %p, align 8, !dbg !20
+ %3 = load i64, ptr %2, align 8, !dbg !20
+ %4 = or i64 %3, 4, !dbg !20
+ store i64 %4, ptr %2, align 8, !dbg !20
+ %5 = call i32 @foo(ptr %p), !dbg !21
ret void, !dbg !22
}
; Function Attrs: nounwind readnone
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
-declare i32 @foo(%struct.i14**)
+declare i32 @foo(ptr)
attributes #0 = { nounwind ssp uwtable }
attributes #1 = { nounwind readnone }
%struct.incomplete_struct = type { i32 }
@"\01?multi_dim_arr@@3PAY146DA" = global [2 x [5 x [7 x i8]]] zeroinitializer, align 1, !dbg !0
-@"\01?p_incomplete_struct_arr@@3PAY02Uincomplete_struct@@A" = global [3 x i8]* null, align 4, !dbg !6
+@"\01?p_incomplete_struct_arr@@3PAY02Uincomplete_struct@@A" = global ptr null, align 4, !dbg !6
@"\01?incomplete_struct_arr@@3PAUincomplete_struct@@A" = global [3 x %struct.incomplete_struct] zeroinitializer, align 4, !dbg !16
@"\01?typedef_arr@@3SDHD" = constant [4 x i32] zeroinitializer, align 4, !dbg !18
define void @"\01?foo@@YAXH@Z"(i32 %x) #0 !dbg !35 {
entry:
%x.addr = alloca i32, align 4
- %saved_stack = alloca i8*, align 4
- store i32 %x, i32* %x.addr, align 4
- %0 = load i32, i32* %x.addr, align 4, !dbg !41
- %1 = call i8* @llvm.stacksave(), !dbg !42
- store i8* %1, i8** %saved_stack, align 4, !dbg !42
+ %saved_stack = alloca ptr, align 4
+ store i32 %x, ptr %x.addr, align 4
+ %0 = load i32, ptr %x.addr, align 4, !dbg !41
+ %1 = call ptr @llvm.stacksave(), !dbg !42
+ store ptr %1, ptr %saved_stack, align 4, !dbg !42
%vla = alloca i32, i32 %0, align 4, !dbg !42
;; This dbg.declare turns into a DBG_INSTR_REF, rather than an argument
;; DBG_VALUE. It needs to keep the extra indirectness.
- call void @llvm.dbg.declare(metadata i32* %vla, metadata !43, metadata !47), !dbg !48
- %arrayidx = getelementptr inbounds i32, i32* %vla, i32 0, !dbg !49
- store i32 0, i32* %arrayidx, align 4, !dbg !50
- %2 = load i8*, i8** %saved_stack, align 4, !dbg !51
- call void @llvm.stackrestore(i8* %2), !dbg !51
+ call void @llvm.dbg.declare(metadata ptr %vla, metadata !43, metadata !47), !dbg !48
+ store i32 0, ptr %vla, align 4, !dbg !50
+ %2 = load ptr, ptr %saved_stack, align 4, !dbg !51
+ call void @llvm.stackrestore(ptr %2), !dbg !51
ret void, !dbg !51
}
declare void @llvm.dbg.declare(metadata, metadata, metadata)
; Function Attrs: nounwind
-declare i8* @llvm.stacksave()
+declare ptr @llvm.stacksave()
; Function Attrs: nounwind
-declare void @llvm.stackrestore(i8*)
+declare void @llvm.stackrestore(ptr)
!llvm.dbg.cu = !{!2}
!llvm.module.flags = !{!32, !33}
%struct.incomplete_struct = type { i32 }
@"\01?multi_dim_arr@@3PAY146DA" = global [2 x [5 x [7 x i8]]] zeroinitializer, align 1, !dbg !0
-@"\01?p_incomplete_struct_arr@@3PAY02Uincomplete_struct@@A" = global [3 x i8]* null, align 4, !dbg !6
+@"\01?p_incomplete_struct_arr@@3PAY02Uincomplete_struct@@A" = global ptr null, align 4, !dbg !6
@"\01?incomplete_struct_arr@@3PAUincomplete_struct@@A" = global [3 x %struct.incomplete_struct] zeroinitializer, align 4, !dbg !16
@"\01?typedef_arr@@3SDHD" = constant [4 x i32] zeroinitializer, align 4, !dbg !18
define void @"\01?foo@@YAXH@Z"(i32 %x) #0 !dbg !35 {
entry:
%x.addr = alloca i32, align 4
- %saved_stack = alloca i8*, align 4
- store i32 %x, i32* %x.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %x.addr, metadata !38, metadata !39), !dbg !40
- %0 = load i32, i32* %x.addr, align 4, !dbg !41
- %1 = call i8* @llvm.stacksave(), !dbg !42
- store i8* %1, i8** %saved_stack, align 4, !dbg !42
+ %saved_stack = alloca ptr, align 4
+ store i32 %x, ptr %x.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %x.addr, metadata !38, metadata !39), !dbg !40
+ %0 = load i32, ptr %x.addr, align 4, !dbg !41
+ %1 = call ptr @llvm.stacksave(), !dbg !42
+ store ptr %1, ptr %saved_stack, align 4, !dbg !42
%vla = alloca i32, i32 %0, align 4, !dbg !42
- call void @llvm.dbg.declare(metadata i32* %vla, metadata !43, metadata !47), !dbg !48
- %arrayidx = getelementptr inbounds i32, i32* %vla, i32 0, !dbg !49
- store i32 0, i32* %arrayidx, align 4, !dbg !50
- %2 = load i8*, i8** %saved_stack, align 4, !dbg !51
- call void @llvm.stackrestore(i8* %2), !dbg !51
+ call void @llvm.dbg.declare(metadata ptr %vla, metadata !43, metadata !47), !dbg !48
+ store i32 0, ptr %vla, align 4, !dbg !50
+ %2 = load ptr, ptr %saved_stack, align 4, !dbg !51
+ call void @llvm.stackrestore(ptr %2), !dbg !51
ret void, !dbg !51
}
declare void @llvm.dbg.declare(metadata, metadata, metadata)
; Function Attrs: nounwind
-declare i8* @llvm.stacksave()
+declare ptr @llvm.stacksave()
; Function Attrs: nounwind
-declare void @llvm.stackrestore(i8*)
+declare void @llvm.stackrestore(ptr)
!llvm.dbg.cu = !{!2}
!llvm.module.flags = !{!32, !33}
%struct.incomplete_struct = type { i32 }
@"\01?multi_dim_arr@@3PAY146DA" = global [2 x [5 x [7 x i8]]] zeroinitializer, align 1, !dbg !0
-@"\01?p_incomplete_struct_arr@@3PAY02Uincomplete_struct@@A" = global [3 x i8]* null, align 4, !dbg !6
+@"\01?p_incomplete_struct_arr@@3PAY02Uincomplete_struct@@A" = global ptr null, align 4, !dbg !6
@"\01?incomplete_struct_arr@@3PAUincomplete_struct@@A" = global [3 x %struct.incomplete_struct] zeroinitializer, align 4, !dbg !16
@"\01?typedef_arr@@3SDHD" = constant [4 x i32] zeroinitializer, align 4, !dbg !18
define void @"\01?foo@@YAXH@Z"(i32 %x) #0 !dbg !35 {
entry:
%x.addr = alloca i32, align 4
- %saved_stack = alloca i8*, align 4
- store i32 %x, i32* %x.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %x.addr, metadata !38, metadata !39), !dbg !40
- %0 = load i32, i32* %x.addr, align 4, !dbg !41
- %1 = call i8* @llvm.stacksave(), !dbg !42
- store i8* %1, i8** %saved_stack, align 4, !dbg !42
+ %saved_stack = alloca ptr, align 4
+ store i32 %x, ptr %x.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %x.addr, metadata !38, metadata !39), !dbg !40
+ %0 = load i32, ptr %x.addr, align 4, !dbg !41
+ %1 = call ptr @llvm.stacksave(), !dbg !42
+ store ptr %1, ptr %saved_stack, align 4, !dbg !42
%vla = alloca i32, i32 %0, align 4, !dbg !42
- call void @llvm.dbg.declare(metadata i32* %vla, metadata !43, metadata !47), !dbg !48
- %arrayidx = getelementptr inbounds i32, i32* %vla, i32 0, !dbg !49
- store i32 0, i32* %arrayidx, align 4, !dbg !50
- %2 = load i8*, i8** %saved_stack, align 4, !dbg !51
- call void @llvm.stackrestore(i8* %2), !dbg !51
+ call void @llvm.dbg.declare(metadata ptr %vla, metadata !43, metadata !47), !dbg !48
+ store i32 0, ptr %vla, align 4, !dbg !50
+ %2 = load ptr, ptr %saved_stack, align 4, !dbg !51
+ call void @llvm.stackrestore(ptr %2), !dbg !51
ret void, !dbg !51
}
declare void @llvm.dbg.declare(metadata, metadata, metadata)
; Function Attrs: nounwind
-declare i8* @llvm.stacksave()
+declare ptr @llvm.stacksave()
; Function Attrs: nounwind
-declare void @llvm.stackrestore(i8*)
+declare void @llvm.stackrestore(ptr)
!llvm.dbg.cu = !{!2}
!llvm.module.flags = !{!32, !33}
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
-@_ZTIPi = external dso_local constant i8*
+@_ZTIPi = external dso_local constant ptr
-define dso_local void @_Z1av() local_unnamed_addr #0 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) !dbg !8 {
+define dso_local void @_Z1av() local_unnamed_addr #0 personality ptr @__gxx_personality_v0 !dbg !8 {
entry:
invoke void @_Z1av()
to label %try.cont unwind label %lpad, !dbg !17
lpad: ; preds = %entry
- %0 = landingpad { i8*, i32 }
- catch i8* bitcast (i8** @_ZTIPi to i8*), !dbg !19
- %1 = extractvalue { i8*, i32 } %0, 1, !dbg !19
- %2 = tail call i32 @llvm.eh.typeid.for(i8* bitcast (i8** @_ZTIPi to i8*)) #3, !dbg !20
+ %0 = landingpad { ptr, i32 }
+ catch ptr @_ZTIPi, !dbg !19
+ %1 = extractvalue { ptr, i32 } %0, 1, !dbg !19
+ %2 = tail call i32 @llvm.eh.typeid.for(ptr @_ZTIPi) #3, !dbg !20
%matches = icmp eq i32 %1, %2, !dbg !20
br i1 %matches, label %catch, label %eh.resume, !dbg !20
catch: ; preds = %lpad
- %3 = extractvalue { i8*, i32 } %0, 0, !dbg !19
- %4 = tail call i8* @__cxa_begin_catch(i8* %3) #3, !dbg !20
- call void @llvm.dbg.value(metadata i8* %3, metadata !13, metadata !DIExpression(DW_OP_plus_uconst, 32, DW_OP_stack_value)), !dbg !21
+ %3 = extractvalue { ptr, i32 } %0, 0, !dbg !19
+ %4 = tail call ptr @__cxa_begin_catch(ptr %3) #3, !dbg !20
+ call void @llvm.dbg.value(metadata ptr %3, metadata !13, metadata !DIExpression(DW_OP_plus_uconst, 32, DW_OP_stack_value)), !dbg !21
tail call void @__cxa_end_catch() #3, !dbg !22
br label %try.cont, !dbg !22
ret void, !dbg !24
eh.resume: ; preds = %lpad
- resume { i8*, i32 } %0, !dbg !20
+ resume { ptr, i32 } %0, !dbg !20
}
declare dso_local i32 @__gxx_personality_v0(...)
; Function Attrs: nofree nosync nounwind readnone
-declare i32 @llvm.eh.typeid.for(i8*) #1
+declare i32 @llvm.eh.typeid.for(ptr) #1
-declare dso_local i8* @__cxa_begin_catch(i8*) local_unnamed_addr
+declare dso_local ptr @__cxa_begin_catch(ptr) local_unnamed_addr
declare dso_local void @__cxa_end_catch() local_unnamed_addr
; CHECK: DBG_PHI $rbp
declare void @llvm.dbg.value(metadata, metadata, metadata)
-declare i8 *@llvm.frameaddress.p0i8(i32)
+declare ptr @llvm.frameaddress.p0(i32)
; Function Attrs: mustprogress nofree nosync nounwind sspstrong uwtable
-define hidden i8 * @foo() !dbg !7 {
+define hidden ptr @foo() !dbg !7 {
entry:
br label %notentry
notentry:
- %0 = tail call i8* @llvm.frameaddress.p0i8(i32 0), !dbg !12
- call void @llvm.dbg.value(metadata i8* %0, metadata !11, metadata !DIExpression()), !dbg !12
- ret i8 *%0
+ %0 = tail call ptr @llvm.frameaddress.p0(i32 0), !dbg !12
+ call void @llvm.dbg.value(metadata ptr %0, metadata !11, metadata !DIExpression()), !dbg !12
+ ret ptr %0
}
!llvm.dbg.cu = !{!0}
; Function Attrs: noredzone nounwind null_pointer_is_valid optsize sspstrong
define dso_local void @switch_mm_irqs_off() local_unnamed_addr #0 !dbg !16 {
entry:
- %0 = load i32, i32* @c, align 4, !dbg !24
+ %0 = load i32, ptr @c, align 4, !dbg !24
%tobool.not = icmp eq i32 %0, 0, !dbg !24
br i1 %tobool.not, label %if.end, label %if.then, !dbg !25
%class.Class = type { i8 }
; Function Attrs: mustprogress uwtable
-define dso_local void @_Z4FuncP5Class(%class.Class* noundef %c) local_unnamed_addr !dbg !7 {
+define dso_local void @_Z4FuncP5Class(ptr noundef %c) local_unnamed_addr !dbg !7 {
entry:
- call void @llvm.dbg.value(metadata %class.Class* %c, metadata !15, metadata !DIExpression()), !dbg !16
- %tobool.not = icmp eq %class.Class* %c, null, !dbg !17
+ call void @llvm.dbg.value(metadata ptr %c, metadata !15, metadata !DIExpression()), !dbg !16
+ %tobool.not = icmp eq ptr %c, null, !dbg !17
br i1 %tobool.not, label %land.lhs.true, label %if.end, !dbg !19
land.lhs.true: ; preds = %entry
%call = call noundef zeroext i1 @_Z4Condv(), !dbg !20
call void @llvm.assume(i1 %call), !dbg !21
- %call1 = call noalias noundef nonnull dereferenceable(1) i8* @_Znwm(i64 noundef 1), !dbg !22, !heapallocsite !12
- %0 = bitcast i8* %call1 to %class.Class*, !dbg !22
- call void @llvm.dbg.value(metadata %class.Class* %0, metadata !15, metadata !DIExpression()), !dbg !16
+ %call1 = call noalias noundef nonnull dereferenceable(1) ptr @_Znwm(i64 noundef 1), !dbg !22, !heapallocsite !12
+ call void @llvm.dbg.value(metadata ptr %call1, metadata !15, metadata !DIExpression()), !dbg !16
br label %if.end, !dbg !23
if.end: ; preds = %land.lhs.true, %entry
- %c.addr.0 = phi %class.Class* [ %c, %entry ], [ %0, %land.lhs.true ]
- call void @llvm.dbg.value(metadata %class.Class* %c.addr.0, metadata !15, metadata !DIExpression()), !dbg !16
- call void @_Z11DoSomethingR5Class(%class.Class* noundef nonnull align 1 dereferenceable(1) %c.addr.0), !dbg !24
+ %c.addr.0 = phi ptr [ %c, %entry ], [ %call1, %land.lhs.true ]
+ call void @llvm.dbg.value(metadata ptr %c.addr.0, metadata !15, metadata !DIExpression()), !dbg !16
+ call void @_Z11DoSomethingR5Class(ptr noundef nonnull align 1 dereferenceable(1) %c.addr.0), !dbg !24
ret void, !dbg !25
}
declare !dbg !26 dso_local noundef zeroext i1 @_Z4Condv() local_unnamed_addr
; Function Attrs: nobuiltin allocsize(0)
-declare dso_local noundef nonnull i8* @_Znwm(i64 noundef) local_unnamed_addr
+declare dso_local noundef nonnull ptr @_Znwm(i64 noundef) local_unnamed_addr
-declare !dbg !30 dso_local void @_Z11DoSomethingR5Class(%class.Class* noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr
+declare !dbg !30 dso_local void @_Z11DoSomethingR5Class(ptr noundef nonnull align 1 dereferenceable(1)) local_unnamed_addr
; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
declare void @llvm.dbg.value(metadata, metadata, metadata)
define dso_local i32 @main() local_unnamed_addr !dbg !7 {
%1 = alloca i32, align 4
- %2 = load i32, i32* @b, align 1, !dbg !13
+ %2 = load i32, ptr @b, align 1, !dbg !13
call void @llvm.dbg.value(metadata i32 %2, metadata !12, metadata !DIExpression()), !dbg !13
- store i32 %2, i32* %1, align 4, !dbg !13
+ store i32 %2, ptr %1, align 4, !dbg !13
ret i32 0, !dbg !13
}
define dso_local i32 @fn_optnone() local_unnamed_addr #0 !dbg !27 {
%1 = alloca i32, align 4
- %2 = load i32, i32* @b, align 1, !dbg !33
+ %2 = load i32, ptr @b, align 1, !dbg !33
call void @llvm.dbg.value(metadata i32 %2, metadata !32, metadata !DIExpression()), !dbg !33
- store i32 %2, i32* %1, align 4, !dbg !33
+ store i32 %2, ptr %1, align 4, !dbg !33
ret i32 0, !dbg !33
}
%class.Color = type { i8 }
-define hidden void @_Z14drawXZWideLineR4Vec3RK5Colorf(%class.Color* %color, float %width) local_unnamed_addr !dbg !7 {
+define hidden void @_Z14drawXZWideLineR4Vec3RK5Colorf(ptr %color, float %width) local_unnamed_addr !dbg !7 {
cond.false.i:
br label %_ZN4Vec39normalizeEv.exit, !dbg !12
call void @llvm.dbg.value(metadata i64 %bar, metadata !21, metadata !DIExpression()), !dbg !22
%0 = trunc i64 %bar to i32, !dbg !22
call void @llvm.dbg.value(metadata i32 %0, metadata !21, metadata !DIExpression()), !dbg !22
- store i32 %0, i32 *@glob32, !dbg !22
+ store i32 %0, ptr @glob32, !dbg !22
%1 = trunc i32 %0 to i16, !dbg !22
call void @llvm.dbg.value(metadata i16 %1, metadata !21, metadata !DIExpression()), !dbg !22
- store i16 %1, i16 *@glob16, !dbg !22
+ store i16 %1, ptr @glob16, !dbg !22
%2 = trunc i16 %1 to i8, !dbg !22
call void @llvm.dbg.value(metadata i8 %2, metadata !21, metadata !DIExpression()), !dbg !22
- store i8 %2, i8 *@glob8, !dbg !22
+ store i8 %2, ptr @glob8, !dbg !22
ret i32 0, !dbg !22
}
slippers:
call void @llvm.dbg.value(metadata i16 %moo, metadata !31, metadata !DIExpression()), !dbg !32
- store i16 %moo, i16 *@glob16, !dbg !32
+ store i16 %moo, ptr @glob16, !dbg !32
ret i32 0, !dbg !32
shoes:
; FASTISEL-INSTRREF-LABEL: bb.1.lala:
; FASTISEL-INSTRREF: DBG_INSTR_REF 1, 0, ![[KNEES]], !DIExpression(DW_OP_deref),
-declare i64 @cheddar(i32 *%arg)
+declare i64 @cheddar(ptr %arg)
-define void @qux(i32* noalias sret(i32) %agg.result) !dbg !40 {
+define void @qux(ptr noalias sret(i32) %agg.result) !dbg !40 {
entry:
- call void @llvm.dbg.declare(metadata i32 *%agg.result, metadata !41, metadata !DIExpression()), !dbg !42
- %foo = call i64 @cheddar(i32 *%agg.result), !dbg !42
+ call void @llvm.dbg.declare(metadata ptr %agg.result, metadata !41, metadata !DIExpression()), !dbg !42
+ %foo = call i64 @cheddar(ptr %agg.result), !dbg !42
br label %lala
lala:
- call void @llvm.dbg.declare(metadata i32 *%agg.result, metadata !45, metadata !DIExpression()), !dbg !44
+ call void @llvm.dbg.declare(metadata ptr %agg.result, metadata !45, metadata !DIExpression()), !dbg !44
ret void, !dbg !44
}
define i32 @main() #0 !dbg !7 {
entry:
%a = alloca i32, align 4
- call void @llvm.dbg.declare(metadata i32* %a, metadata !11, metadata !DIExpression()), !dbg !12
+ call void @llvm.dbg.declare(metadata ptr %a, metadata !11, metadata !DIExpression()), !dbg !12
%call = call i32 @_Z7get_argv(), !dbg !13
call void @_Z4funci(i32 %call), !dbg !14
ret i32 0, !dbg !15
define dso_local i32 @intel_pmu_enable_bts() local_unnamed_addr !dbg !16 {
entry:
%0 = extractvalue { i32, i64 } zeroinitializer, 1
- %1 = load i32, i32* @intel_pmu_enable_bts_config, align 4
+ %1 = load i32, ptr @intel_pmu_enable_bts_config, align 4
call void @llvm.dbg.value(metadata !DIArgList(i64 %0, i32 %1), metadata !20, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_arg, 1, DW_OP_or, DW_OP_stack_value)), !dbg !23
ret i32 %1
}
%3 = alloca i64, align 8
%4 = alloca double, align 8
%5 = alloca double, align 8
- store i32 0, i32* %1, align 4
- call void @llvm.dbg.declare(metadata i64* %2, metadata !20, metadata !21), !dbg !22
- %6 = load i64, i64* @glb_start, align 8, !dbg !23
- store i64 %6, i64* %2, align 8, !dbg !22
- call void @llvm.dbg.declare(metadata i64* %3, metadata !24, metadata !21), !dbg !25
- %7 = load i64, i64* @glb_end, align 8, !dbg !26
- store i64 %7, i64* %3, align 8, !dbg !25
- call void @llvm.dbg.declare(metadata double* %4, metadata !27, metadata !21), !dbg !28
- %8 = load i64, i64* %2, align 8, !dbg !29
+ store i32 0, ptr %1, align 4
+ call void @llvm.dbg.declare(metadata ptr %2, metadata !20, metadata !21), !dbg !22
+ %6 = load i64, ptr @glb_start, align 8, !dbg !23
+ store i64 %6, ptr %2, align 8, !dbg !22
+ call void @llvm.dbg.declare(metadata ptr %3, metadata !24, metadata !21), !dbg !25
+ %7 = load i64, ptr @glb_end, align 8, !dbg !26
+ store i64 %7, ptr %3, align 8, !dbg !25
+ call void @llvm.dbg.declare(metadata ptr %4, metadata !27, metadata !21), !dbg !28
+ %8 = load i64, ptr %2, align 8, !dbg !29
%9 = uitofp i64 %8 to double, !dbg !29
- store double %9, double* %4, align 8, !dbg !28
- call void @llvm.dbg.declare(metadata double* %5, metadata !30, metadata !21), !dbg !31
- %10 = load i64, i64* %3, align 8, !dbg !32
+ store double %9, ptr %4, align 8, !dbg !28
+ call void @llvm.dbg.declare(metadata ptr %5, metadata !30, metadata !21), !dbg !31
+ %10 = load i64, ptr %3, align 8, !dbg !32
%11 = uitofp i64 %10 to double, !dbg !32
- store double %11, double* %5, align 8, !dbg !31
+ store double %11, ptr %5, align 8, !dbg !31
ret i32 0, !dbg !33
}
entry:
%retval = alloca i32, align 4
%y = alloca i32, align 4
- call void @llvm.dbg.declare(metadata i32* %y, metadata !18, metadata !19), !dbg !20
+ call void @llvm.dbg.declare(metadata ptr %y, metadata !18, metadata !19), !dbg !20
br label %while.cond, !dbg !21
while.cond: ; preds = %entry
- %0 = load i32, i32* %y, align 4, !dbg !22
+ %0 = load i32, ptr %y, align 4, !dbg !22
%cmp = icmp slt i32 %0, 0, !dbg !22
br i1 %cmp, label %while.body, label %while.end, !dbg !22
while.body: ; preds = %while.cond
- store i32 2, i32* %retval, align 4, !dbg !24
+ store i32 2, ptr %retval, align 4, !dbg !24
br label %return, !dbg !24
while.end: ; preds = %while.cond
- store i32 0, i32* %retval, align 4, !dbg !26
+ store i32 0, ptr %retval, align 4, !dbg !26
br label %return, !dbg !26
return: ; preds = %while.end, %while.body
- %1 = load i32, i32* %retval, align 4, !dbg !27
+ %1 = load i32, ptr %retval, align 4, !dbg !27
ret i32 %1, !dbg !27
}
entry:
%retval.i = alloca i32, align 4
%y.i = alloca i32, align 4
- call void @llvm.dbg.declare(metadata i32* %y.i, metadata !18, metadata !19), !dbg !29
- %0 = load i32, i32* %y.i, align 4, !dbg !31
+ call void @llvm.dbg.declare(metadata ptr %y.i, metadata !18, metadata !19), !dbg !29
+ %0 = load i32, ptr %y.i, align 4, !dbg !31
%cmp.i = icmp slt i32 %0, 0, !dbg !31
br i1 %cmp.i, label %while.body.i, label %while.end.i, !dbg !31
while.body.i: ; preds = %entry
- store i32 2, i32* %retval.i, align 4, !dbg !32
+ store i32 2, ptr %retval.i, align 4, !dbg !32
br label %_Z3barv.exit, !dbg !32
while.end.i: ; preds = %entry
- store i32 0, i32* %retval.i, align 4, !dbg !33
+ store i32 0, ptr %retval.i, align 4, !dbg !33
br label %_Z3barv.exit, !dbg !33
_Z3barv.exit: ; preds = %while.end.i, %while.body.i
- %1 = load i32, i32* %retval.i, align 4, !dbg !34
+ %1 = load i32, ptr %retval.i, align 4, !dbg !34
ret i32 %1, !dbg !35
}
define void @_Z1bv() #0 !dbg !4 {
entry:
%i = alloca i32, align 4
- call void @llvm.dbg.declare(metadata i32* %i, metadata !11, metadata !DIExpression()), !dbg !14
- store i32 3, i32* %i, align 4, !dbg !14
- %0 = load i32, i32* %i, align 4, !dbg !14
+ call void @llvm.dbg.declare(metadata ptr %i, metadata !11, metadata !DIExpression()), !dbg !14
+ store i32 3, ptr %i, align 4, !dbg !14
+ %0 = load i32, ptr %i, align 4, !dbg !14
%tobool = icmp ne i32 %0, 0, !dbg !14
br i1 %tobool, label %if.then, label %if.end, !dbg !14
define dso_local void @_Z3funv() !dbg !12 {
entry:
call void @llvm.dbg.value(metadata i8 0, metadata !16, metadata !DIExpression()), !dbg !17
- %0 = load i8, i8* @b, align 1, !dbg !18
+ %0 = load i8, ptr @b, align 1, !dbg !18
%tobool1 = icmp ne i8 %0, 0, !dbg !18
br i1 %tobool1, label %for.body.lr.ph, label %for.end, !dbg !24
br label %for.body, !dbg !24
for.body: ; preds = %for.body.lr.ph, %for.body
- %1 = load i8, i8* @a, align 1, !dbg !25
+ %1 = load i8, ptr @a, align 1, !dbg !25
call void @llvm.dbg.value(metadata i8 %1, metadata !16, metadata !DIExpression()), !dbg !17
- %2 = load i8, i8* @b, align 1, !dbg !18
+ %2 = load i8, ptr @b, align 1, !dbg !18
%tobool = icmp ne i8 %2, 0, !dbg !18
br i1 %tobool, label %for.body, label %for.cond.for.end_crit_edge, !dbg !24, !llvm.loop !26
define i32 @foo(i32 %x) #0 !dbg !4 {
entry:
%x.addr = alloca i32, align 4
- store i32 %x, i32* %x.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %x.addr, metadata !14, metadata !DIExpression()), !dbg !15
- %0 = load i32, i32* %x.addr, align 4, !dbg !16
+ store i32 %x, ptr %x.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %x.addr, metadata !14, metadata !DIExpression()), !dbg !15
+ %0 = load i32, ptr %x.addr, align 4, !dbg !16
%inc = add nsw i32 %0, 1, !dbg !16
- store i32 %inc, i32* %x.addr, align 4, !dbg !16
+ store i32 %inc, ptr %x.addr, align 4, !dbg !16
ret i32 %inc, !dbg !16
}
call void @llvm.dbg.value(metadata i32 0, metadata !3, metadata !DIExpression()), !dbg !6
br i1 %retval, label %loop2, label %exit
loop2:
- store i32 %bar, i32 *@glob
+ store i32 %bar, ptr @glob
br label %loop
exit:
ret i32 %bar
@.str = private unnamed_addr constant [13 x i8] c"m(main): %d\0A\00", align 1
; Function Attrs: nounwind uwtable
-define dso_local i32 @main(i32 %argc, i8** nocapture readonly %argv) #0 !dbg !10 {
+define dso_local i32 @main(i32 %argc, ptr nocapture readonly %argv) #0 !dbg !10 {
entry:
tail call void @llvm.dbg.value(metadata i32 %argc, metadata !17, metadata !20), !dbg !21
- tail call void @llvm.dbg.value(metadata i8** %argv, metadata !18, metadata !20), !dbg !22
+ tail call void @llvm.dbg.value(metadata ptr %argv, metadata !18, metadata !20), !dbg !22
%cmp = icmp eq i32 %argc, 2, !dbg !24
br i1 %cmp, label %if.else, label %if.end, !dbg !26
if.else: ; preds = %entry
- %arrayidx = getelementptr inbounds i8*, i8** %argv, i64 1, !dbg !27
- %0 = load i8*, i8** %arrayidx, align 8, !dbg !27, !tbaa !28
- %call = tail call i32 (i8*, ...) bitcast (i32 (...)* @atoi to i32 (i8*, ...)*)(i8* %0) #1, !dbg !32
+ %arrayidx = getelementptr inbounds ptr, ptr %argv, i64 1, !dbg !27
+ %0 = load ptr, ptr %arrayidx, align 8, !dbg !27, !tbaa !28
+ %call = tail call i32 (ptr, ...) @atoi(ptr %0) #1, !dbg !32
tail call void @llvm.dbg.value(metadata i32 %call, metadata !19, metadata !20), !dbg !33
br label %if.end
if.end.7: ; preds = %if.else.5, %if.then.3
%storemerge = phi i32 [ %call6, %if.else.5 ], [ %add, %if.then.3 ]
- store i32 %storemerge, i32* @m, align 4, !dbg !43, !tbaa !44
- %call8 = tail call i32 (i8*, ...) @printf(i8* nonnull getelementptr inbounds ([13 x i8], [13 x i8]* @.str, i64 0, i64 0), i32 %storemerge) #1, !dbg !46
+ store i32 %storemerge, ptr @m, align 4, !dbg !43, !tbaa !44
+ %call8 = tail call i32 (ptr, ...) @printf(ptr nonnull @.str, i32 %storemerge) #1, !dbg !46
ret i32 0, !dbg !47
}
declare i32 @inc(i32) #1
; Function Attrs: nounwind
-declare i32 @printf(i8* nocapture readonly, ...) #1
+declare i32 @printf(ptr nocapture readonly, ...) #1
; Function Attrs: nounwind readnone
declare void @llvm.dbg.value(metadata, metadata, metadata) #2
; Function Attrs: norecurse nounwind readonly ssp uwtable
define dso_local i32 @b(i8 signext %0) local_unnamed_addr #0 !dbg !12 {
call void @llvm.dbg.value(metadata i8 %0, metadata !17, metadata !DIExpression()), !dbg !18
- %2 = load i32, i32* @a, align 4, !dbg !19, !tbaa !20
+ %2 = load i32, ptr @a, align 4, !dbg !19, !tbaa !20
%3 = icmp sgt i32 %2, 1, !dbg !24
br i1 %3, label %8, label %4, !dbg !25
br i1 %u, label %if.then.i, label %_Z1xb.exit, !dbg !34
if.then.i: ; preds = %entry
- %0 = load i32, i32* @t, align 4, !dbg !35, !tbaa !36
+ %0 = load i32, ptr @t, align 4, !dbg !35, !tbaa !36
tail call void @llvm.dbg.value(metadata i32 %0, metadata !40, metadata !DIExpression()), !dbg !35
tail call void @_Z1fi(i32 %0), !dbg !41
br label %_Z1xb.exit, !dbg !42
; CHECK-NOT: DW_AT_const_value
; CHECK: NULL
-%"class.std::basic_ostream" = type { i32 (...)**, %"class.std::basic_os" }
-%"class.std::basic_os" = type { %"class.std::os_base", %"class.std::basic_ostream"*, i8, i8 }
-%"class.std::os_base" = type { i32 (...)**, i64, i64, i32, i32, i32 }
+%"class.std::basic_ostream" = type { ptr, %"class.std::basic_os" }
+%"class.std::basic_os" = type { %"class.std::os_base", ptr, i8, i8 }
+%"class.std::os_base" = type { ptr, i64, i64, i32, i32, i32 }
@_ZSt4cout = external global %"class.std::basic_ostream"
@.str = private unnamed_addr constant [6 x i8] c"c is \00", align 1
define i32 @main() !dbg !960 {
entry:
- %call1.i = tail call %"class.std::basic_ostream"* @test(%"class.std::basic_ostream"* @_ZSt4cout, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i64 0, i64 0), i64 5)
+ %call1.i = tail call ptr @test(ptr @_ZSt4cout, ptr @.str, i64 5)
ret i32 0
}
-declare %"class.std::basic_ostream"* @test(%"class.std::basic_ostream"*, i8*, i64)
+declare ptr @test(ptr, ptr, i64)
declare void @llvm.dbg.value(metadata, metadata, metadata) nounwind readnone
%y.addr = alloca i32, align 4
%u = alloca i32, align 4
%a = alloca i32, align 4
- store i32 %x, i32* %x.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %x.addr, metadata !11, metadata !DIExpression()), !dbg !12
- store i32 %y, i32* %y.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %y.addr, metadata !13, metadata !DIExpression()), !dbg !14
- call void @llvm.dbg.declare(metadata i32* %u, metadata !15, metadata !DIExpression()), !dbg !16
- %0 = load i32, i32* %x.addr, align 4, !dbg !16
- %1 = load i32, i32* %y.addr, align 4, !dbg !16
+ store i32 %x, ptr %x.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %x.addr, metadata !11, metadata !DIExpression()), !dbg !12
+ store i32 %y, ptr %y.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %y.addr, metadata !13, metadata !DIExpression()), !dbg !14
+ call void @llvm.dbg.declare(metadata ptr %u, metadata !15, metadata !DIExpression()), !dbg !16
+ %0 = load i32, ptr %x.addr, align 4, !dbg !16
+ %1 = load i32, ptr %y.addr, align 4, !dbg !16
%add = add nsw i32 %0, %1, !dbg !16
- store i32 %add, i32* %u, align 4, !dbg !16
- %2 = load i32, i32* %x.addr, align 4, !dbg !17
+ store i32 %add, ptr %u, align 4, !dbg !16
+ %2 = load i32, ptr %x.addr, align 4, !dbg !17
%cmp = icmp sgt i32 %2, 1, !dbg !17
br i1 %cmp, label %if.then, label %if.else, !dbg !16
if.then: ; preds = %entry
- %3 = load i32, i32* %u, align 4, !dbg !17
+ %3 = load i32, ptr %u, align 4, !dbg !17
%add1 = add nsw i32 %3, 1, !dbg !17
- store i32 %add1, i32* %u, align 4, !dbg !17
+ store i32 %add1, ptr %u, align 4, !dbg !17
br label %if.end, !dbg !17
if.else: ; preds = %entry
- %4 = load i32, i32* %u, align 4, !dbg !17
+ %4 = load i32, ptr %u, align 4, !dbg !17
%add2 = add nsw i32 %4, 2, !dbg !17
- store i32 %add2, i32* %u, align 4, !dbg !17
+ store i32 %add2, ptr %u, align 4, !dbg !17
br label %if.end
if.end: ; preds = %if.else, %if.then
- call void @llvm.dbg.declare(metadata i32* %a, metadata !19, metadata !DIExpression()), !dbg !16
- store i32 7, i32* %a, align 4, !dbg !16
- %5 = load i32, i32* %a, align 4, !dbg !16
+ call void @llvm.dbg.declare(metadata ptr %a, metadata !19, metadata !DIExpression()), !dbg !16
+ store i32 7, ptr %a, align 4, !dbg !16
+ %5 = load i32, ptr %a, align 4, !dbg !16
call void @fn2(i32 %5), !dbg !16
- %6 = load i32, i32* %u, align 4, !dbg !16
+ %6 = load i32, ptr %u, align 4, !dbg !16
%dec = add nsw i32 %6, -1, !dbg !16
- store i32 %dec, i32* %u, align 4, !dbg !16
+ store i32 %dec, ptr %u, align 4, !dbg !16
ret void, !dbg !16
}
; Generated from:
; $ clang-tot -cc1 -triple i386 -emit-obj -g -O3 repro.cpp
-; void sink(const void *);
+; void sink(const ptr);
; int source();
; void f3(int);
;
; }
; }
-%struct.string = type { i32* }
+%struct.string = type { ptr }
-@str = external constant %struct.string*
+@str = external constant ptr
@b = external global i8
; Function Attrs: nounwind
define void @_Z2f1v() #0 {
entry:
%str2.i = alloca %struct.string, align 4
- %0 = bitcast %struct.string* %str2.i to i8*, !dbg !26
- %1 = load %struct.string*, %struct.string** @str, align 4
- %mem = getelementptr inbounds %struct.string, %struct.string* %1, i32 0, i32 0
+ %0 = load ptr, ptr @str, align 4
br label %for.body
for.body: ; preds = %for.body, %entry
%iter.02 = phi i32 [ 0, %entry ], [ %inc, %for.body ]
- call void @llvm.lifetime.start(i64 4, i8* %0), !dbg !26
- call void @llvm.dbg.value(metadata %struct.string* %str2.i, metadata !16, metadata !DIExpression(DW_OP_deref)) #3, !dbg !26
- call void @llvm.dbg.value(metadata %struct.string* %str2.i, metadata !27, metadata !DIExpression(DW_OP_deref)) #3, !dbg !29
- call void @_Z4sinkPKv(i8* undef) #3, !dbg !29
- call void @_Z4sinkPKv(i8* %0) #3, !dbg !30
- call void @llvm.lifetime.end(i64 4, i8* %0), !dbg !31
- %2 = load i32*, i32** %mem, align 4, !tbaa !32
- %3 = bitcast i32* %2 to i8*
- call void @_Z4sinkPKv(i8* %3) #3
- %4 = load i8, i8* @b, align 1, !tbaa !37, !range !39
- %tobool = icmp ne i8 %4, 0
+ call void @llvm.lifetime.start(i64 4, ptr %str2.i), !dbg !26
+ call void @llvm.dbg.value(metadata ptr %str2.i, metadata !16, metadata !DIExpression(DW_OP_deref)) #3, !dbg !26
+ call void @llvm.dbg.value(metadata ptr %str2.i, metadata !27, metadata !DIExpression(DW_OP_deref)) #3, !dbg !29
+ call void @_Z4sinkPKv(ptr undef) #3, !dbg !29
+ call void @_Z4sinkPKv(ptr %str2.i) #3, !dbg !30
+ call void @llvm.lifetime.end(i64 4, ptr %str2.i), !dbg !31
+ %1 = load ptr, ptr %0, align 4, !tbaa !32
+ call void @_Z4sinkPKv(ptr %1) #3
+ %2 = load i8, ptr @b, align 1, !tbaa !37, !range !39
+ %tobool = icmp ne i8 %2, 0
%inc = add nsw i32 %iter.02, 1
%cmp = icmp eq i32 %inc, 2
%or.cond = or i1 %tobool, %cmp
ret void
}
-declare void @_Z4sinkPKv(i8*) #1
+declare void @_Z4sinkPKv(ptr) #1
; Function Attrs: nounwind readnone
declare void @llvm.dbg.value(metadata, metadata, metadata) #2
; Function Attrs: nounwind
-declare void @llvm.lifetime.start(i64, i8* nocapture) #3
+declare void @llvm.lifetime.start(i64, ptr nocapture) #3
; Function Attrs: nounwind
-declare void @llvm.lifetime.end(i64, i8* nocapture) #3
+declare void @llvm.lifetime.end(i64, ptr nocapture) #3
attributes #0 = { nounwind "less-precise-fpmad"="false" "frame-pointer"="none" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-realign-stack" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { "less-precise-fpmad"="false" "frame-pointer"="none" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-realign-stack" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
; void f1(int *p1, int p2);
; void __attribute__((always_inline)) f2(A p5) { f1(p5.m1, p5.m2); }
;
-; void func(void*);
+; void func(ptr);
; void func(const int &, const int&);
; int cond();
; void f() {
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-apple-macosx10.10.0"
-%struct.A = type { i32*, i32 }
+%struct.A = type { ptr, i32 }
; Function Attrs: alwaysinline ssp uwtable
-define void @_Z2f21A(i32* %p5.coerce0, i32 %p5.coerce1) #0 !dbg !11 {
+define void @_Z2f21A(ptr %p5.coerce0, i32 %p5.coerce1) #0 !dbg !11 {
entry:
- tail call void @llvm.dbg.value(metadata i32* %p5.coerce0, metadata !16, metadata !33), !dbg !34
+ tail call void @llvm.dbg.value(metadata ptr %p5.coerce0, metadata !16, metadata !33), !dbg !34
tail call void @llvm.dbg.value(metadata i32 %p5.coerce1, metadata !16, metadata !35), !dbg !34
- tail call void @llvm.dbg.declare(metadata %struct.A* undef, metadata !16, metadata !36), !dbg !34
- tail call void @_Z2f1Pii(i32* %p5.coerce0, i32 %p5.coerce1), !dbg !37
+ tail call void @llvm.dbg.declare(metadata ptr undef, metadata !16, metadata !36), !dbg !34
+ tail call void @_Z2f1Pii(ptr %p5.coerce0, i32 %p5.coerce1), !dbg !37
ret void, !dbg !38
}
; Function Attrs: nounwind readnone
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
-declare void @_Z2f1Pii(i32*, i32) #2
+declare void @_Z2f1Pii(ptr, i32) #2
; Function Attrs: ssp uwtable
define void @_Z1fv() #3 !dbg !17 {
br i1 %tobool, label %while.end7, label %while.body, !dbg !40
while.body: ; preds = %entry, %while.cond.loopexit
- store i32 0, i32* %ref.tmp, align 4, !dbg !41, !tbaa !42
- call void @llvm.dbg.value(metadata i32* %x, metadata !21, metadata !DIExpression(DW_OP_deref)), !dbg !46
- call void @_Z4funcRKiS0_(i32* dereferenceable(4) %x, i32* dereferenceable(4) %ref.tmp), !dbg !47
+ store i32 0, ptr %ref.tmp, align 4, !dbg !41, !tbaa !42
+ call void @llvm.dbg.value(metadata ptr %x, metadata !21, metadata !DIExpression(DW_OP_deref)), !dbg !46
+ call void @_Z4funcRKiS0_(ptr dereferenceable(4) %x, ptr dereferenceable(4) %ref.tmp), !dbg !47
%call29 = call i32 @_Z4condv(), !dbg !48
%tobool310 = icmp eq i32 %call29, 0, !dbg !48
br i1 %tobool310, label %while.cond.loopexit, label %while.body4, !dbg !49
while.body4: ; preds = %while.body, %while.body4
- call void @llvm.dbg.value(metadata i8* %y, metadata !23, metadata !DIExpression(DW_OP_deref)), !dbg !50
- call void @_Z4funcPv(i8* %y), !dbg !51
- call void @llvm.dbg.value(metadata i8* %j, metadata !26, metadata !DIExpression(DW_OP_deref)), !dbg !52
- call void @_Z4funcPv(i8* %j), !dbg !53
- call void @llvm.dbg.value(metadata i8* %I, metadata !27, metadata !DIExpression(DW_OP_deref)), !dbg !54
- call void @_Z4funcPv(i8* %I), !dbg !55
- store i32 0, i32* %ref.tmp5, align 4, !dbg !56, !tbaa !42
- store i32 0, i32* %ref.tmp6, align 4, !dbg !57, !tbaa !42
- call void @_Z4funcRKiS0_(i32* dereferenceable(4) %ref.tmp5, i32* dereferenceable(4) %ref.tmp6), !dbg !58
- call void @llvm.dbg.declare(metadata %struct.A* undef, metadata !28, metadata !36), !dbg !59
- call void @llvm.dbg.value(metadata i32* %x, metadata !28, metadata !33), !dbg !59
- call void @llvm.dbg.value(metadata i32* %x, metadata !21, metadata !DIExpression(DW_OP_deref)), !dbg !46
- call void @llvm.dbg.value(metadata i32* %x, metadata !60, metadata !33), !dbg !62
+ call void @llvm.dbg.value(metadata ptr %y, metadata !23, metadata !DIExpression(DW_OP_deref)), !dbg !50
+ call void @_Z4funcPv(ptr %y), !dbg !51
+ call void @llvm.dbg.value(metadata ptr %j, metadata !26, metadata !DIExpression(DW_OP_deref)), !dbg !52
+ call void @_Z4funcPv(ptr %j), !dbg !53
+ call void @llvm.dbg.value(metadata ptr %I, metadata !27, metadata !DIExpression(DW_OP_deref)), !dbg !54
+ call void @_Z4funcPv(ptr %I), !dbg !55
+ store i32 0, ptr %ref.tmp5, align 4, !dbg !56, !tbaa !42
+ store i32 0, ptr %ref.tmp6, align 4, !dbg !57, !tbaa !42
+ call void @_Z4funcRKiS0_(ptr dereferenceable(4) %ref.tmp5, ptr dereferenceable(4) %ref.tmp6), !dbg !58
+ call void @llvm.dbg.declare(metadata ptr undef, metadata !28, metadata !36), !dbg !59
+ call void @llvm.dbg.value(metadata ptr %x, metadata !28, metadata !33), !dbg !59
+ call void @llvm.dbg.value(metadata ptr %x, metadata !21, metadata !DIExpression(DW_OP_deref)), !dbg !46
+ call void @llvm.dbg.value(metadata ptr %x, metadata !60, metadata !33), !dbg !62
call void @llvm.dbg.value(metadata i32 undef, metadata !60, metadata !35), !dbg !62
- call void @llvm.dbg.declare(metadata %struct.A* undef, metadata !60, metadata !36), !dbg !62
- call void @_Z2f1Pii(i32* %x, i32 undef), !dbg !63
+ call void @llvm.dbg.declare(metadata ptr undef, metadata !60, metadata !36), !dbg !62
+ call void @_Z2f1Pii(ptr %x, i32 undef), !dbg !63
%call2 = call i32 @_Z4condv(), !dbg !48
%tobool3 = icmp eq i32 %call2, 0, !dbg !48
br i1 %tobool3, label %while.cond.loopexit, label %while.body4, !dbg !49
declare i32 @_Z4condv()
-declare void @_Z4funcRKiS0_(i32* dereferenceable(4), i32* dereferenceable(4))
+declare void @_Z4funcRKiS0_(ptr dereferenceable(4), ptr dereferenceable(4))
-declare void @_Z4funcPv(i8*)
+declare void @_Z4funcPv(ptr)
; Function Attrs: nounwind readnone
declare void @llvm.dbg.value(metadata, metadata, metadata) #1
%class.foo = type { i8 }
-@_ZTIi = external dso_local constant i8*
+@_ZTIi = external dso_local constant ptr
; Function Attrs: noinline noreturn optnone uwtable
define dso_local void @_Z1fv() #0 !dbg !7 {
- %1 = call i8* @__cxa_allocate_exception(i64 4) #3, !dbg !10
- %2 = bitcast i8* %1 to i32*, !dbg !10
- store i32 1, i32* %2, align 16, !dbg !10
- call void @__cxa_throw(i8* %1, i8* bitcast (i8** @_ZTIi to i8*), i8* null) #4, !dbg !10
+ %1 = call ptr @__cxa_allocate_exception(i64 4) #3, !dbg !10
+ store i32 1, ptr %1, align 16, !dbg !10
+ call void @__cxa_throw(ptr %1, ptr @_ZTIi, ptr null) #4, !dbg !10
unreachable, !dbg !10
}
-declare dso_local i8* @__cxa_allocate_exception(i64)
+declare dso_local ptr @__cxa_allocate_exception(i64)
-declare dso_local void @__cxa_throw(i8*, i8*, i8*)
+declare dso_local void @__cxa_throw(ptr, ptr, ptr)
; Function Attrs: noinline nounwind optnone uwtable
define dso_local void @_Z4funcv() #1 !dbg !11 {
%1 = alloca %class.foo, align 1
- call void @llvm.dbg.declare(metadata %class.foo* %1, metadata !12, metadata !DIExpression()), !dbg !19
+ call void @llvm.dbg.declare(metadata ptr %1, metadata !12, metadata !DIExpression()), !dbg !19
ret void, !dbg !20
}
%0 = type opaque
-@a = common global %0* null, align 8, !dbg !0
+@a = common global ptr null, align 8, !dbg !0
!llvm.dbg.cu = !{!5}
!llvm.module.flags = !{!8, !9, !10, !11, !12, !13}
%0 = type opaque
%struct._objc_cache = type opaque
-%struct._class_t = type { %struct._class_t*, %struct._class_t*, %struct._objc_cache*, i8* (i8*, i8*)**, %struct._class_ro_t* }
-%struct._class_ro_t = type { i32, i32, i32, i8*, i8*, %struct.__method_list_t*, %struct._objc_protocol_list*, %struct._ivar_list_t*, i8*, %struct._prop_list_t* }
+%struct._class_t = type { ptr, ptr, ptr, ptr, ptr }
+%struct._class_ro_t = type { i32, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.__method_list_t = type { i32, i32, [0 x %struct._objc_method] }
-%struct._objc_method = type { i8*, i8*, i8* }
-%struct._objc_protocol_list = type { i64, [0 x %struct._protocol_t*] }
-%struct._protocol_t = type { i8*, i8*, %struct._objc_protocol_list*, %struct.__method_list_t*, %struct.__method_list_t*, %struct.__method_list_t*, %struct.__method_list_t*, %struct._prop_list_t*, i32, i32, i8** }
+%struct._objc_method = type { ptr, ptr, ptr }
+%struct._objc_protocol_list = type { i64, [0 x ptr] }
+%struct._protocol_t = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, ptr }
%struct._ivar_list_t = type { i32, i32, [0 x %struct._ivar_t] }
-%struct._ivar_t = type { i64*, i8*, i8*, i32, i32 }
+%struct._ivar_t = type { ptr, ptr, ptr, i32, i32 }
%struct._prop_list_t = type { i32, i32, [0 x %struct._prop_t] }
-%struct._prop_t = type { i8*, i8* }
+%struct._prop_t = type { ptr, ptr }
@_objc_empty_cache = external global %struct._objc_cache
-@"OBJC_CLASS_$_Foo" = global %struct._class_t { %struct._class_t* @"OBJC_METACLASS_$_Foo", %struct._class_t* null, %struct._objc_cache* @_objc_empty_cache, i8* (i8*, i8*)** null, %struct._class_ro_t* @"\01l_OBJC_CLASS_RO_$_Foo" }, section "__DATA, __objc_data", align 8
-@"OBJC_METACLASS_$_Foo" = global %struct._class_t { %struct._class_t* @"OBJC_METACLASS_$_Foo", %struct._class_t* @"OBJC_CLASS_$_Foo", %struct._objc_cache* @_objc_empty_cache, i8* (i8*, i8*)** null, %struct._class_ro_t* @"\01l_OBJC_METACLASS_RO_$_Foo" }, section "__DATA, __objc_data", align 8
+@"OBJC_CLASS_$_Foo" = global %struct._class_t { ptr @"OBJC_METACLASS_$_Foo", ptr null, ptr @_objc_empty_cache, ptr null, ptr @"\01l_OBJC_CLASS_RO_$_Foo" }, section "__DATA, __objc_data", align 8
+@"OBJC_METACLASS_$_Foo" = global %struct._class_t { ptr @"OBJC_METACLASS_$_Foo", ptr @"OBJC_CLASS_$_Foo", ptr @_objc_empty_cache, ptr null, ptr @"\01l_OBJC_METACLASS_RO_$_Foo" }, section "__DATA, __objc_data", align 8
@"\01L_OBJC_CLASS_NAME_" = internal global [4 x i8] c"Foo\00", section "__TEXT,__objc_classname,cstring_literals", align 1
-@"\01l_OBJC_METACLASS_RO_$_Foo" = internal global %struct._class_ro_t { i32 3, i32 40, i32 40, i8* null, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"\01L_OBJC_CLASS_NAME_", i32 0, i32 0), %struct.__method_list_t* null, %struct._objc_protocol_list* null, %struct._ivar_list_t* null, i8* null, %struct._prop_list_t* null }, section "__DATA, __objc_const", align 8
+@"\01l_OBJC_METACLASS_RO_$_Foo" = internal global %struct._class_ro_t { i32 3, i32 40, i32 40, ptr null, ptr @"\01L_OBJC_CLASS_NAME_", ptr null, ptr null, ptr null, ptr null, ptr null }, section "__DATA, __objc_const", align 8
@"\01L_OBJC_METH_VAR_NAME_" = internal global [4 x i8] c"foo\00", section "__TEXT,__objc_methname,cstring_literals", align 1
@"\01L_OBJC_METH_VAR_TYPE_" = internal global [8 x i8] c"v16@0:8\00", section "__TEXT,__objc_methtype,cstring_literals", align 1
-@"\01l_OBJC_$_INSTANCE_METHODS_Foo" = internal global { i32, i32, [1 x %struct._objc_method] } { i32 24, i32 1, [1 x %struct._objc_method] [%struct._objc_method { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"\01L_OBJC_METH_VAR_NAME_", i32 0, i32 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"\01L_OBJC_METH_VAR_TYPE_", i32 0, i32 0), i8* bitcast (void (%0*, i8*)* @"\01-[Foo foo]" to i8*) }] }, section "__DATA, __objc_const", align 8
+@"\01l_OBJC_$_INSTANCE_METHODS_Foo" = internal global { i32, i32, [1 x %struct._objc_method] } { i32 24, i32 1, [1 x %struct._objc_method] [%struct._objc_method { ptr @"\01L_OBJC_METH_VAR_NAME_", ptr @"\01L_OBJC_METH_VAR_TYPE_", ptr @"\01-[Foo foo]" }] }, section "__DATA, __objc_const", align 8
@"\01L_OBJC_PROP_NAME_ATTR_" = internal global [4 x i8] c"foo\00", section "__TEXT,__cstring,cstring_literals", align 1
@"\01L_OBJC_PROP_NAME_ATTR_1" = internal global [7 x i8] c"Tv,R,N\00", section "__TEXT,__cstring,cstring_literals", align 1
-@"\01l_OBJC_$_PROP_LIST_Foo" = internal global { i32, i32, [1 x %struct._prop_t] } { i32 16, i32 1, [1 x %struct._prop_t] [%struct._prop_t { i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"\01L_OBJC_PROP_NAME_ATTR_", i32 0, i32 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"\01L_OBJC_PROP_NAME_ATTR_1", i32 0, i32 0) }] }, section "__DATA, __objc_const", align 8
-@"\01l_OBJC_CLASS_RO_$_Foo" = internal global %struct._class_ro_t { i32 2, i32 0, i32 0, i8* null, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"\01L_OBJC_CLASS_NAME_", i32 0, i32 0), %struct.__method_list_t* bitcast ({ i32, i32, [1 x %struct._objc_method] }* @"\01l_OBJC_$_INSTANCE_METHODS_Foo" to %struct.__method_list_t*), %struct._objc_protocol_list* null, %struct._ivar_list_t* null, i8* null, %struct._prop_list_t* bitcast ({ i32, i32, [1 x %struct._prop_t] }* @"\01l_OBJC_$_PROP_LIST_Foo" to %struct._prop_list_t*) }, section "__DATA, __objc_const", align 8
-@"\01L_OBJC_LABEL_CLASS_$" = internal global [1 x i8*] [i8* bitcast (%struct._class_t* @"OBJC_CLASS_$_Foo" to i8*)], section "__DATA, __objc_classlist, regular, no_dead_strip", align 8
-@llvm.used = appending global [8 x i8*] [i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"\01L_OBJC_CLASS_NAME_", i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"\01L_OBJC_METH_VAR_NAME_", i32 0, i32 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @"\01L_OBJC_METH_VAR_TYPE_", i32 0, i32 0), i8* bitcast ({ i32, i32, [1 x %struct._objc_method] }* @"\01l_OBJC_$_INSTANCE_METHODS_Foo" to i8*), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"\01L_OBJC_PROP_NAME_ATTR_", i32 0, i32 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @"\01L_OBJC_PROP_NAME_ATTR_1", i32 0, i32 0), i8* bitcast ({ i32, i32, [1 x %struct._prop_t] }* @"\01l_OBJC_$_PROP_LIST_Foo" to i8*), i8* bitcast ([1 x i8*]* @"\01L_OBJC_LABEL_CLASS_$" to i8*)], section "llvm.metadata"
+@"\01l_OBJC_$_PROP_LIST_Foo" = internal global { i32, i32, [1 x %struct._prop_t] } { i32 16, i32 1, [1 x %struct._prop_t] [%struct._prop_t { ptr @"\01L_OBJC_PROP_NAME_ATTR_", ptr @"\01L_OBJC_PROP_NAME_ATTR_1" }] }, section "__DATA, __objc_const", align 8
+@"\01l_OBJC_CLASS_RO_$_Foo" = internal global %struct._class_ro_t { i32 2, i32 0, i32 0, ptr null, ptr @"\01L_OBJC_CLASS_NAME_", ptr @"\01l_OBJC_$_INSTANCE_METHODS_Foo", ptr null, ptr null, ptr null, ptr @"\01l_OBJC_$_PROP_LIST_Foo" }, section "__DATA, __objc_const", align 8
+@"\01L_OBJC_LABEL_CLASS_$" = internal global [1 x ptr] [ptr @"OBJC_CLASS_$_Foo"], section "__DATA, __objc_classlist, regular, no_dead_strip", align 8
+@llvm.used = appending global [8 x ptr] [ptr @"\01L_OBJC_CLASS_NAME_", ptr @"\01L_OBJC_METH_VAR_NAME_", ptr @"\01L_OBJC_METH_VAR_TYPE_", ptr @"\01l_OBJC_$_INSTANCE_METHODS_Foo", ptr @"\01L_OBJC_PROP_NAME_ATTR_", ptr @"\01L_OBJC_PROP_NAME_ATTR_1", ptr @"\01l_OBJC_$_PROP_LIST_Foo", ptr @"\01L_OBJC_LABEL_CLASS_$"], section "llvm.metadata"
; Function Attrs: ssp uwtable
-define internal void @"\01-[Foo foo]"(%0* %self, i8* %_cmd) #0 !dbg !10 {
+define internal void @"\01-[Foo foo]"(ptr %self, ptr %_cmd) #0 !dbg !10 {
entry:
- %self.addr = alloca %0*, align 8
- %_cmd.addr = alloca i8*, align 8
- store %0* %self, %0** %self.addr, align 8
- call void @llvm.dbg.declare(metadata %0** %self.addr, metadata !24, metadata !DIExpression()), !dbg !26
- store i8* %_cmd, i8** %_cmd.addr, align 8
- call void @llvm.dbg.declare(metadata i8** %_cmd.addr, metadata !27, metadata !DIExpression()), !dbg !26
+ %self.addr = alloca ptr, align 8
+ %_cmd.addr = alloca ptr, align 8
+ store ptr %self, ptr %self.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %self.addr, metadata !24, metadata !DIExpression()), !dbg !26
+ store ptr %_cmd, ptr %_cmd.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %_cmd.addr, metadata !27, metadata !DIExpression()), !dbg !26
ret void, !dbg !29
}
%0 = type opaque
-define hidden i32 @"\01-[Root direct_method]"(%0* %self, i8* %_cmd) {
+define hidden i32 @"\01-[Root direct_method]"(ptr %self, ptr %_cmd) {
entry:
%retval = alloca i32, align 4
- %0 = load i32, i32* %retval, align 4
+ %0 = load i32, ptr %retval, align 4
ret i32 %0
}
define void @testVLAwithSize(i32 %s) nounwind uwtable ssp !dbg !5 {
entry:
%s.addr = alloca i32, align 4
- %saved_stack = alloca i8*
+ %saved_stack = alloca ptr
%i = alloca i32, align 4
- store i32 %s, i32* %s.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %s.addr, metadata !10, metadata !DIExpression()), !dbg !11
- %0 = load i32, i32* %s.addr, align 4, !dbg !12
+ store i32 %s, ptr %s.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %s.addr, metadata !10, metadata !DIExpression()), !dbg !11
+ %0 = load i32, ptr %s.addr, align 4, !dbg !12
%1 = zext i32 %0 to i64, !dbg !12
- %2 = call i8* @llvm.stacksave(), !dbg !12
- store i8* %2, i8** %saved_stack, !dbg !12
+ %2 = call ptr @llvm.stacksave(), !dbg !12
+ store ptr %2, ptr %saved_stack, !dbg !12
%vla = alloca i32, i64 %1, align 16, !dbg !12
- call void @llvm.dbg.declare(metadata i32* %vla, metadata !14, metadata !30), !dbg !18
- call void @llvm.dbg.declare(metadata i32* %i, metadata !19, metadata !DIExpression()), !dbg !20
- store i32 0, i32* %i, align 4, !dbg !21
+ call void @llvm.dbg.declare(metadata ptr %vla, metadata !14, metadata !30), !dbg !18
+ call void @llvm.dbg.declare(metadata ptr %i, metadata !19, metadata !DIExpression()), !dbg !20
+ store i32 0, ptr %i, align 4, !dbg !21
br label %for.cond, !dbg !21
for.cond: ; preds = %for.inc, %entry
- %3 = load i32, i32* %i, align 4, !dbg !21
- %4 = load i32, i32* %s.addr, align 4, !dbg !21
+ %3 = load i32, ptr %i, align 4, !dbg !21
+ %4 = load i32, ptr %s.addr, align 4, !dbg !21
%cmp = icmp slt i32 %3, %4, !dbg !21
br i1 %cmp, label %for.body, label %for.end, !dbg !21
for.body: ; preds = %for.cond
- %5 = load i32, i32* %i, align 4, !dbg !23
- %6 = load i32, i32* %i, align 4, !dbg !23
+ %5 = load i32, ptr %i, align 4, !dbg !23
+ %6 = load i32, ptr %i, align 4, !dbg !23
%mul = mul nsw i32 %5, %6, !dbg !23
- %7 = load i32, i32* %i, align 4, !dbg !23
+ %7 = load i32, ptr %i, align 4, !dbg !23
%idxprom = sext i32 %7 to i64, !dbg !23
- %arrayidx = getelementptr inbounds i32, i32* %vla, i64 %idxprom, !dbg !23
- store i32 %mul, i32* %arrayidx, align 4, !dbg !23
+ %arrayidx = getelementptr inbounds i32, ptr %vla, i64 %idxprom, !dbg !23
+ store i32 %mul, ptr %arrayidx, align 4, !dbg !23
br label %for.inc, !dbg !25
for.inc: ; preds = %for.body
- %8 = load i32, i32* %i, align 4, !dbg !26
+ %8 = load i32, ptr %i, align 4, !dbg !26
%inc = add nsw i32 %8, 1, !dbg !26
- store i32 %inc, i32* %i, align 4, !dbg !26
+ store i32 %inc, ptr %i, align 4, !dbg !26
br label %for.cond, !dbg !26
for.end: ; preds = %for.cond
- %9 = load i8*, i8** %saved_stack, !dbg !27
- call void @llvm.stackrestore(i8* %9), !dbg !27
+ %9 = load ptr, ptr %saved_stack, !dbg !27
+ call void @llvm.stackrestore(ptr %9), !dbg !27
ret void, !dbg !27
}
declare void @llvm.dbg.declare(metadata, metadata, metadata) nounwind readnone
-declare i8* @llvm.stacksave() nounwind
+declare ptr @llvm.stacksave() nounwind
-declare void @llvm.stackrestore(i8*) nounwind
+declare void @llvm.stackrestore(ptr) nounwind
!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!29}
; return f; // reference 'f' for now because otherwise we hit another bug
; }
;
-; void sink(void*);
+; void sink(ptr);
;
; void func2(bool b, foo g) {
; if (b)
%"struct.pr14763::foo" = type { i8 }
; Function Attrs: uwtable
-define void @_ZN7pr147634funcENS_3fooE(%"struct.pr14763::foo"* noalias sret(%"struct.pr14763::foo") %agg.result, %"struct.pr14763::foo"* %f) #0 !dbg !4 {
+define void @_ZN7pr147634funcENS_3fooE(ptr noalias sret(%"struct.pr14763::foo") %agg.result, ptr %f) #0 !dbg !4 {
entry:
- call void @llvm.dbg.declare(metadata %"struct.pr14763::foo"* %f, metadata !22, metadata !DIExpression(DW_OP_deref)), !dbg !24
- call void @_ZN7pr147633fooC1ERKS0_(%"struct.pr14763::foo"* %agg.result, %"struct.pr14763::foo"* %f), !dbg !25
+ call void @llvm.dbg.declare(metadata ptr %f, metadata !22, metadata !DIExpression(DW_OP_deref)), !dbg !24
+ call void @_ZN7pr147633fooC1ERKS0_(ptr %agg.result, ptr %f), !dbg !25
ret void, !dbg !25
}
; Function Attrs: nounwind readnone
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
-declare void @_ZN7pr147633fooC1ERKS0_(%"struct.pr14763::foo"*, %"struct.pr14763::foo"*) #2
+declare void @_ZN7pr147633fooC1ERKS0_(ptr, ptr) #2
; Function Attrs: uwtable
-define void @_ZN7pr147635func2EbNS_3fooE(i1 zeroext %b, %"struct.pr14763::foo"* %g) #0 !dbg !17 {
+define void @_ZN7pr147635func2EbNS_3fooE(i1 zeroext %b, ptr %g) #0 !dbg !17 {
entry:
%b.addr = alloca i8, align 1
%frombool = zext i1 %b to i8
- store i8 %frombool, i8* %b.addr, align 1
- call void @llvm.dbg.declare(metadata i8* %b.addr, metadata !26, metadata !DIExpression()), !dbg !27
- call void @llvm.dbg.declare(metadata %"struct.pr14763::foo"* %g, metadata !28, metadata !DIExpression(DW_OP_deref)), !dbg !27
- %0 = load i8, i8* %b.addr, align 1, !dbg !29
+ store i8 %frombool, ptr %b.addr, align 1
+ call void @llvm.dbg.declare(metadata ptr %b.addr, metadata !26, metadata !DIExpression()), !dbg !27
+ call void @llvm.dbg.declare(metadata ptr %g, metadata !28, metadata !DIExpression(DW_OP_deref)), !dbg !27
+ %0 = load i8, ptr %b.addr, align 1, !dbg !29
%tobool = trunc i8 %0 to i1, !dbg !29
br i1 %tobool, label %if.then, label %if.end, !dbg !29
if.then: ; preds = %entry
- %1 = bitcast %"struct.pr14763::foo"* %g to i8*, !dbg !31
- call void @_ZN7pr147634sinkEPv(i8* %1), !dbg !31
+ call void @_ZN7pr147634sinkEPv(ptr %g), !dbg !31
br label %if.end, !dbg !31
if.end: ; preds = %if.then, %entry
ret void, !dbg !32
}
-declare void @_ZN7pr147634sinkEPv(i8*)
+declare void @_ZN7pr147634sinkEPv(ptr)
attributes #0 = { uwtable }
attributes #1 = { nounwind readnone }
%agg.tmp.i.i = alloca %class.A, align 1
%text.i = alloca %class.A, align 1
%v = alloca %class.B, align 1
- %0 = getelementptr inbounds %class.B, %class.B* %v, i64 0, i32 0, !dbg !40
- call void @llvm.lifetime.start(i64 1, i8* %0) #4, !dbg !40
- %1 = getelementptr inbounds %class.A, %class.A* %text.i, i64 0, i32 0, !dbg !41
- %2 = getelementptr inbounds %class.A, %class.A* %agg.tmp.i.i, i64 0, i32 0, !dbg !59
+ call void @llvm.lifetime.start(i64 1, ptr %v) #4, !dbg !40
br label %for.cond, !dbg !65
for.cond: ; preds = %for.cond, %entry
- call void @llvm.dbg.value(metadata %class.B* %v, metadata !29, metadata !66), !dbg !67
- %call = call double @_ZN1BixEj(%class.B* nonnull %v, i32 undef), !dbg !68
+ call void @llvm.dbg.value(metadata ptr %v, metadata !29, metadata !66), !dbg !67
+ %call = call double @_ZN1BixEj(ptr nonnull %v, i32 undef), !dbg !68
call void @llvm.dbg.value(metadata double %call, metadata !49, metadata !69), !dbg !70
- call void @llvm.dbg.value(metadata i32* null, metadata !52, metadata !69), !dbg !71
- call void @llvm.dbg.value(metadata %class.A* undef, metadata !54, metadata !69), !dbg !72
- call void @llvm.lifetime.start(i64 1, i8* %1) #4, !dbg !41
+ call void @llvm.dbg.value(metadata ptr null, metadata !52, metadata !69), !dbg !71
+ call void @llvm.dbg.value(metadata ptr undef, metadata !54, metadata !69), !dbg !72
+ call void @llvm.lifetime.start(i64 1, ptr %text.i) #4, !dbg !41
%tobool.i = fcmp une double %call, 0.000000e+00, !dbg !73
- %cond.i = select i1 %tobool.i, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.1, i64 0, i64 0), !dbg !73
- call void @llvm.dbg.value(metadata %class.A* %text.i, metadata !55, metadata !66), !dbg !74
- call void @llvm.lifetime.start(i64 1, i8* %2), !dbg !59
- call void @llvm.dbg.value(metadata %class.A* %text.i, metadata !62, metadata !69), !dbg !59
- call void @llvm.dbg.value(metadata i8* %cond.i, metadata !63, metadata !69), !dbg !75
- call void @_ZN1AC1EPKc(%class.A* nonnull %agg.tmp.i.i, i8* %cond.i), !dbg !76
- call void @_ZN1A5m_fn1ES_(%class.A* nonnull %text.i), !dbg !77
- call void @llvm.lifetime.end(i64 1, i8* %2), !dbg !79
- call void @llvm.lifetime.end(i64 1, i8* %1) #4, !dbg !80
+ %cond.i = select i1 %tobool.i, ptr @.str, ptr @.str.1, !dbg !73
+ call void @llvm.dbg.value(metadata ptr %text.i, metadata !55, metadata !66), !dbg !74
+ call void @llvm.lifetime.start(i64 1, ptr %agg.tmp.i.i), !dbg !59
+ call void @llvm.dbg.value(metadata ptr %text.i, metadata !62, metadata !69), !dbg !59
+ call void @llvm.dbg.value(metadata ptr %cond.i, metadata !63, metadata !69), !dbg !75
+ call void @_ZN1AC1EPKc(ptr nonnull %agg.tmp.i.i, ptr %cond.i), !dbg !76
+ call void @_ZN1A5m_fn1ES_(ptr nonnull %text.i), !dbg !77
+ call void @llvm.lifetime.end(i64 1, ptr %agg.tmp.i.i), !dbg !79
+ call void @llvm.lifetime.end(i64 1, ptr %text.i) #4, !dbg !80
br label %for.cond, !dbg !81, !llvm.loop !82
}
; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.start(i64, i8* nocapture) #1
+declare void @llvm.lifetime.start(i64, ptr nocapture) #1
-declare double @_ZN1BixEj(%class.B*, i32) local_unnamed_addr #2
+declare double @_ZN1BixEj(ptr, i32) local_unnamed_addr #2
; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.end(i64, i8* nocapture) #1
+declare void @llvm.lifetime.end(i64, ptr nocapture) #1
-declare void @_ZN1A5m_fn1ES_(%class.A*) local_unnamed_addr #2
+declare void @_ZN1A5m_fn1ES_(ptr) local_unnamed_addr #2
-declare void @_ZN1AC1EPKc(%class.A*, i8*) unnamed_addr #2
+declare void @_ZN1AC1EPKc(ptr, ptr) unnamed_addr #2
; Function Attrs: nounwind readnone
declare void @llvm.dbg.value(metadata, metadata, metadata) #3
define i32 @main() local_unnamed_addr !dbg !14 {
entry:
- %0 = load i32, i32* @var
+ %0 = load i32, ptr @var
tail call void @llvm.dbg.value(metadata i32 %0, metadata !18, metadata !DIExpression()), !dbg !20
- %1 = load i32, i32* @sc
+ %1 = load i32, ptr @sc
%shl = shl i32 %0, %1
tail call void @llvm.dbg.value(metadata i32 %shl, metadata !18, metadata !DIExpression()), !dbg !20
tail call void asm sideeffect "", "~{rax},~{rbx},~{rcx},~{rdx},~{rsi},~{rdi},~{rbp},~{r8},~{r9},~{r10},~{r11},~{r12},~{r13},~{r14},~{r15},~{dirflag},~{fpsr},~{flags}"(), !srcloc !25
- %2 = load i32, i32* @sc
+ %2 = load i32, ptr @sc
%shl2 = shl i32 %shl, %2
tail call void @llvm.dbg.value(metadata i32 %shl2, metadata !18, metadata !DIExpression()), !dbg !20
- store i32 %shl2, i32* @var
+ store i32 %shl2, ptr @var
ret i32 %shl2, !dbg !20
}
target triple = "x86_64-unknown-linux-gnu"
-define i16 @lolwat(i1 %spoons, i64 *%bees, i16 %yellow, i64 *%more) {
+define i16 @lolwat(i1 %spoons, ptr %bees, i16 %yellow, ptr %more) {
entry:
br i1 %spoons, label %trueb, label %falseb
trueb:
; DBGVALUE-NEXT: DBG_VALUE [[LOADR]], $noreg, ![[DBGVAR]]
; INSTRREF-NEXT: DBG_INSTR_REF 1, 0, ![[DBGVAR]]
; CHECK-NEXT: %{{[0-9]+}}:gr32 = IMPLICIT_DEF
- %foo = phi i64 *[%bees, %trueb], [%more, %falseb]
- %forks = bitcast i64 *%foo to i32 *
- %ret = load i32, i32 *%forks, !dbg !6
+ %foo = phi ptr[%bees, %trueb], [%more, %falseb]
+ %ret = load i32, ptr %foo, !dbg !6
%cast = trunc i32 %ret to i16, !dbg !6
call void @llvm.dbg.value(metadata i16 %cast, metadata !1, metadata !DIExpression()), !dbg !6
%orly2 = add i16 %yellow, 1
%struct.r = type opaque
@o = local_unnamed_addr global i32 0, align 4, !dbg !0
-@p = local_unnamed_addr global %struct.e* null, align 8, !dbg !42
+@p = local_unnamed_addr global ptr null, align 8, !dbg !42
; Function Attrs: optsize ssp uwtable
-define void @_ZN2aa2aq2arEv(%"class.aa::aq"* %this) local_unnamed_addr #0 align 2 !dbg !50 {
+define void @_ZN2aa2aq2arEv(ptr %this) local_unnamed_addr #0 align 2 !dbg !50 {
entry:
- call void @llvm.dbg.value(metadata %"class.aa::aq"* %this, metadata !71, metadata !DIExpression()), !dbg !75
- %0 = bitcast %"class.aa::aq"* %this to %"class.aa::ah"*, !dbg !76
- tail call void @_ZN2aa2ah2aiEiib(%"class.aa::ah"* %0, i32 undef, i32 undef, i1 zeroext true) #5, !dbg !76
+ call void @llvm.dbg.value(metadata ptr %this, metadata !71, metadata !DIExpression()), !dbg !75
+ tail call void @_ZN2aa2ah2aiEiib(ptr %this, i32 undef, i32 undef, i1 zeroext true) #5, !dbg !76
ret void, !dbg !77
}
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
; Function Attrs: argmemonly nounwind willreturn
-declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) #2
+declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #2
; Function Attrs: optsize ssp uwtable
-define linkonce_odr void @_ZN2aa2ah2aiEiib(%"class.aa::ah"* %this, i32 %aj, i32 %0, i1 zeroext %1) local_unnamed_addr #0 align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) !dbg !78 {
+define linkonce_odr void @_ZN2aa2ah2aiEiib(ptr %this, i32 %aj, i32 %0, i1 zeroext %1) local_unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 !dbg !78 {
entry:
%ao = alloca %"class.aa::y", align 1
%ap = alloca %"class.aa::y.0", align 1
- call void @llvm.dbg.value(metadata %"class.aa::ah"* %this, metadata !80, metadata !DIExpression()), !dbg !126
+ call void @llvm.dbg.value(metadata ptr %this, metadata !80, metadata !DIExpression()), !dbg !126
call void @llvm.dbg.value(metadata i32 %aj, metadata !82, metadata !DIExpression()), !dbg !126
call void @llvm.dbg.value(metadata i32 %0, metadata !83, metadata !DIExpression()), !dbg !126
call void @llvm.dbg.value(metadata i1 %1, metadata !84, metadata !DIExpression()), !dbg !126
call void @llvm.dbg.value(metadata i32 %aj, metadata !85, metadata !DIExpression()), !dbg !126
- %2 = getelementptr inbounds %"class.aa::y", %"class.aa::y"* %ao, i64 0, i32 0, !dbg !127
- call void @llvm.lifetime.start.p0i8(i64 1, i8* nonnull %2) #6, !dbg !127
- call void @llvm.dbg.declare(metadata %"class.aa::y"* %ao, metadata !91, metadata !DIExpression()), !dbg !128
- %call = tail call %struct.j* @_Z1mPvS_lPFvS_PKvlE(i8* undef, i8* undef, i64 0, void (i8*, i8*, i64)* nonnull @_ZN2aa12_GLOBAL__N_12agEPvPKvl) #5, !dbg !129
- call void @_ZN2aa1yIP1jNS_2ac1zI1eEEEC1ES2_(%"class.aa::y"* nonnull %ao, %struct.j* %call) #5, !dbg !128
- %3 = getelementptr inbounds %"class.aa::y.0", %"class.aa::y.0"* %ap, i64 0, i32 0, !dbg !130
- call void @llvm.lifetime.start.p0i8(i64 1, i8* nonnull %3) #6, !dbg !130
- call void @llvm.dbg.declare(metadata %"class.aa::y.0"* %ap, metadata !110, metadata !DIExpression()), !dbg !131
- %4 = load %struct.e*, %struct.e** @p, align 8, !dbg !132, !tbaa !133
- %call3 = invoke %struct.h* @_Z1qP1e(%struct.e* %4) #5
+ call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ao) #6, !dbg !127
+ call void @llvm.dbg.declare(metadata ptr %ao, metadata !91, metadata !DIExpression()), !dbg !128
+ %call = tail call ptr @_Z1mPvS_lPFvS_PKvlE(ptr undef, ptr undef, i64 0, ptr nonnull @_ZN2aa12_GLOBAL__N_12agEPvPKvl) #5, !dbg !129
+ call void @_ZN2aa1yIP1jNS_2ac1zI1eEEEC1ES2_(ptr nonnull %ao, ptr %call) #5, !dbg !128
+ call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ap) #6, !dbg !130
+ call void @llvm.dbg.declare(metadata ptr %ap, metadata !110, metadata !DIExpression()), !dbg !131
+ %2 = load ptr, ptr @p, align 8, !dbg !132, !tbaa !133
+ %call3 = invoke ptr @_Z1qP1e(ptr %2) #5
to label %invoke.cont unwind label %lpad, !dbg !137
invoke.cont: ; preds = %entry
- invoke void @_ZN2aa1yIP1hNS_2ac1zI1eEEEC1ES2_(%"class.aa::y.0"* nonnull %ap, %struct.h* %call3) #5
+ invoke void @_ZN2aa1yIP1hNS_2ac1zI1eEEEC1ES2_(ptr nonnull %ap, ptr %call3) #5
to label %invoke.cont4 unwind label %lpad, !dbg !131
invoke.cont4: ; preds = %invoke.cont
%conv = sext i32 %aj to i64, !dbg !138
%mul = shl nsw i32 %aj, 2, !dbg !139
%conv6 = sext i32 %mul to i64, !dbg !140
- %call9 = invoke %struct.h* @_ZN2aa1yIP1hNS_2ac1zI1eEEE2abEv(%"class.aa::y.0"* nonnull %ap) #5
+ %call9 = invoke ptr @_ZN2aa1yIP1hNS_2ac1zI1eEEE2abEv(ptr nonnull %ap) #5
to label %invoke.cont8 unwind label %lpad7, !dbg !141
invoke.cont8: ; preds = %invoke.cont4
- %call11 = invoke %struct.j* @_ZN2aa1yIP1jNS_2ac1zI1eEEE2abEv(%"class.aa::y"* nonnull %ao) #5
+ %call11 = invoke ptr @_ZN2aa1yIP1jNS_2ac1zI1eEEE2abEv(ptr nonnull %ao) #5
to label %invoke.cont10 unwind label %lpad7, !dbg !142
invoke.cont10: ; preds = %invoke.cont8
- %5 = load i32, i32* @o, align 4, !dbg !143, !tbaa !144
- %call13 = invoke %struct.r* @_Z1vlllllP1hiP1jPdb1n(i64 %conv, i64 0, i64 8, i64 2, i64 %conv6, %struct.h* %call9, i32 0, %struct.j* %call11, double* null, i1 zeroext false, i32 %5) #5
+ %3 = load i32, ptr @o, align 4, !dbg !143, !tbaa !144
+ %call13 = invoke ptr @_Z1vlllllP1hiP1jPdb1n(i64 %conv, i64 0, i64 8, i64 2, i64 %conv6, ptr %call9, i32 0, ptr %call11, ptr null, i1 zeroext false, i32 %3) #5
to label %invoke.cont12 unwind label %lpad7, !dbg !146
invoke.cont12: ; preds = %invoke.cont10
unreachable, !dbg !146
lpad: ; preds = %invoke.cont, %entry
- %6 = landingpad { i8*, i32 }
+ %4 = landingpad { ptr, i32 }
cleanup, !dbg !147
- %7 = extractvalue { i8*, i32 } %6, 0, !dbg !147
- %8 = extractvalue { i8*, i32 } %6, 1, !dbg !147
+ %5 = extractvalue { ptr, i32 } %4, 0, !dbg !147
+ %6 = extractvalue { ptr, i32 } %4, 1, !dbg !147
br label %ehcleanup, !dbg !147
lpad7: ; preds = %invoke.cont10, %invoke.cont8, %invoke.cont4
- %9 = landingpad { i8*, i32 }
+ %7 = landingpad { ptr, i32 }
cleanup, !dbg !147
- %10 = extractvalue { i8*, i32 } %9, 0, !dbg !147
- %11 = extractvalue { i8*, i32 } %9, 1, !dbg !147
- call void @_ZN2aa1yIP1hNS_2ac1zI1eEEED1Ev(%"class.aa::y.0"* nonnull %ap) #7, !dbg !147
+ %8 = extractvalue { ptr, i32 } %7, 0, !dbg !147
+ %9 = extractvalue { ptr, i32 } %7, 1, !dbg !147
+ call void @_ZN2aa1yIP1hNS_2ac1zI1eEEED1Ev(ptr nonnull %ap) #7, !dbg !147
br label %ehcleanup, !dbg !147
ehcleanup: ; preds = %lpad7, %lpad
- %exn.slot.0 = phi i8* [ %10, %lpad7 ], [ %7, %lpad ], !dbg !147
- %ehselector.slot.0 = phi i32 [ %11, %lpad7 ], [ %8, %lpad ], !dbg !147
- call void @llvm.lifetime.end.p0i8(i64 1, i8* nonnull %3) #6, !dbg !147
- call void @_ZN2aa1yIP1jNS_2ac1zI1eEEED1Ev(%"class.aa::y"* nonnull %ao) #7, !dbg !147
- call void @llvm.lifetime.end.p0i8(i64 1, i8* nonnull %2) #6, !dbg !147
- %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn.slot.0, 0, !dbg !147
- %lpad.val19 = insertvalue { i8*, i32 } %lpad.val, i32 %ehselector.slot.0, 1, !dbg !147
- resume { i8*, i32 } %lpad.val19, !dbg !147
+ %exn.slot.0 = phi ptr [ %8, %lpad7 ], [ %5, %lpad ], !dbg !147
+ %ehselector.slot.0 = phi i32 [ %9, %lpad7 ], [ %6, %lpad ], !dbg !147
+ call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ap) #6, !dbg !147
+ call void @_ZN2aa1yIP1jNS_2ac1zI1eEEED1Ev(ptr nonnull %ao) #7, !dbg !147
+ call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ao) #6, !dbg !147
+ %lpad.val = insertvalue { ptr, i32 } undef, ptr %exn.slot.0, 0, !dbg !147
+ %lpad.val19 = insertvalue { ptr, i32 } %lpad.val, i32 %ehselector.slot.0, 1, !dbg !147
+ resume { ptr, i32 } %lpad.val19, !dbg !147
}
; Function Attrs: argmemonly nounwind willreturn
-declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) #2
+declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #2
; Function Attrs: optsize
-declare !dbg !11 %struct.j* @_Z1mPvS_lPFvS_PKvlE(i8*, i8*, i64, void (i8*, i8*, i64)*) local_unnamed_addr #3
+declare !dbg !11 ptr @_Z1mPvS_lPFvS_PKvlE(ptr, ptr, i64, ptr) local_unnamed_addr #3
; Function Attrs: optsize
-declare void @_ZN2aa12_GLOBAL__N_12agEPvPKvl(i8*, i8*, i64) #3
+declare void @_ZN2aa12_GLOBAL__N_12agEPvPKvl(ptr, ptr, i64) #3
; Function Attrs: optsize
-declare void @_ZN2aa1yIP1jNS_2ac1zI1eEEEC1ES2_(%"class.aa::y"*, %struct.j*) unnamed_addr #3
+declare void @_ZN2aa1yIP1jNS_2ac1zI1eEEEC1ES2_(ptr, ptr) unnamed_addr #3
; Function Attrs: optsize
-declare !dbg !24 %struct.h* @_Z1qP1e(%struct.e*) local_unnamed_addr #3
+declare !dbg !24 ptr @_Z1qP1e(ptr) local_unnamed_addr #3
declare i32 @__gxx_personality_v0(...)
; Function Attrs: optsize
-declare void @_ZN2aa1yIP1hNS_2ac1zI1eEEEC1ES2_(%"class.aa::y.0"*, %struct.h*) unnamed_addr #3
+declare void @_ZN2aa1yIP1hNS_2ac1zI1eEEEC1ES2_(ptr, ptr) unnamed_addr #3
; Function Attrs: optsize
-declare !dbg !31 %struct.r* @_Z1vlllllP1hiP1jPdb1n(i64, i64, i64, i64, i64, %struct.h*, i32, %struct.j*, double*, i1 zeroext, i32) local_unnamed_addr #3
+declare !dbg !31 ptr @_Z1vlllllP1hiP1jPdb1n(i64, i64, i64, i64, i64, ptr, i32, ptr, ptr, i1 zeroext, i32) local_unnamed_addr #3
; Function Attrs: optsize
-declare %struct.h* @_ZN2aa1yIP1hNS_2ac1zI1eEEE2abEv(%"class.aa::y.0"*) local_unnamed_addr #3
+declare ptr @_ZN2aa1yIP1hNS_2ac1zI1eEEE2abEv(ptr) local_unnamed_addr #3
; Function Attrs: optsize
-declare %struct.j* @_ZN2aa1yIP1jNS_2ac1zI1eEEE2abEv(%"class.aa::y"*) local_unnamed_addr #3
+declare ptr @_ZN2aa1yIP1jNS_2ac1zI1eEEE2abEv(ptr) local_unnamed_addr #3
; Function Attrs: nounwind optsize
-declare void @_ZN2aa1yIP1hNS_2ac1zI1eEEED1Ev(%"class.aa::y.0"*) unnamed_addr #4
+declare void @_ZN2aa1yIP1hNS_2ac1zI1eEEED1Ev(ptr) unnamed_addr #4
; Function Attrs: nounwind optsize
-declare void @_ZN2aa1yIP1jNS_2ac1zI1eEEED1Ev(%"class.aa::y"*) unnamed_addr #4
+declare void @_ZN2aa1yIP1jNS_2ac1zI1eEEED1Ev(ptr) unnamed_addr #4
; Function Attrs: nounwind readnone speculatable willreturn
declare void @llvm.dbg.value(metadata, metadata, metadata) #1
define dso_local void @_Z2f2v() !dbg !7 {
entry:
%b = alloca i8, align 1
- call void @llvm.dbg.declare(metadata i8* %b, metadata !11, metadata !DIExpression()), !dbg !14
+ call void @llvm.dbg.declare(metadata ptr %b, metadata !11, metadata !DIExpression()), !dbg !14
call void @_Z2f1v(), !dbg !15
call void @_Z2f1v(), !dbg !10
call void @_Z2f1v(), !dbg !16
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
target triple = "x86_64-apple-macosx10.9.0"
-%class.SVal = type { i8*, i32 }
+%class.SVal = type { ptr, i32 }
%class.A = type { i8 }
-declare void @_Z3barR4SVal(%class.SVal* %v)
+declare void @_Z3barR4SVal(ptr %v)
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
declare void @llvm.dbg.value(metadata, metadata, metadata) #1
declare i32 @main()
; Function Attrs: nounwind ssp uwtable
-define linkonce_odr void @_ZN1A3fooE4SVal(%class.A* %this, %class.SVal* %v) nounwind ssp uwtable align 2 !dbg !35 {
+define linkonce_odr void @_ZN1A3fooE4SVal(ptr %this, ptr %v) nounwind ssp uwtable align 2 !dbg !35 {
entry:
- %this.addr = alloca %class.A*, align 8
- store %class.A* %this, %class.A** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %class.A** %this.addr, metadata !59, metadata !DIExpression()), !dbg !61
- call void @llvm.dbg.value(metadata %class.SVal* %v, metadata !62, metadata !DIExpression(DW_OP_deref)), !dbg !61
- %this1 = load %class.A*, %class.A** %this.addr
- call void @_Z3barR4SVal(%class.SVal* %v), !dbg !61
+ %this.addr = alloca ptr, align 8
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !59, metadata !DIExpression()), !dbg !61
+ call void @llvm.dbg.value(metadata ptr %v, metadata !62, metadata !DIExpression(DW_OP_deref)), !dbg !61
+ %this1 = load ptr, ptr %this.addr
+ call void @_Z3barR4SVal(ptr %v), !dbg !61
ret void, !dbg !61
}
-declare void @_ZN4SValD1Ev(%class.SVal* %this)
-declare void @_ZN4SValD2Ev(%class.SVal* %this)
+declare void @_ZN4SValD1Ev(ptr %this)
+declare void @_ZN4SValD2Ev(ptr %this)
!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!47, !68}
define dso_local void @_Z2f2v() !dbg !7 {
entry:
%b = alloca i8, align 1
- call void @llvm.dbg.declare(metadata i8* %b, metadata !11, metadata !DIExpression()), !dbg !14
+ call void @llvm.dbg.declare(metadata ptr %b, metadata !11, metadata !DIExpression()), !dbg !14
call void @_Z2f1v(), !dbg !15
; The following call has been moved here from right after the alloca
call void @_Z2f1v(), !dbg !10
@.str = private unnamed_addr constant [4 x i8] c"%d\0A\00", align 1
-define void @_Z3fooOi(i32* %i) uwtable ssp !dbg !5 {
+define void @_Z3fooOi(ptr %i) uwtable ssp !dbg !5 {
entry:
- %i.addr = alloca i32*, align 8
- store i32* %i, i32** %i.addr, align 8
- call void @llvm.dbg.declare(metadata i32** %i.addr, metadata !11, metadata !DIExpression()), !dbg !12
- %0 = load i32*, i32** %i.addr, align 8, !dbg !13
- %1 = load i32, i32* %0, align 4, !dbg !13
- %call = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i32 0, i32 0), i32 %1), !dbg !13
+ %i.addr = alloca ptr, align 8
+ store ptr %i, ptr %i.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %i.addr, metadata !11, metadata !DIExpression()), !dbg !12
+ %0 = load ptr, ptr %i.addr, align 8, !dbg !13
+ %1 = load i32, ptr %0, align 4, !dbg !13
+ %call = call i32 (ptr, ...) @printf(ptr @.str, i32 %1), !dbg !13
ret void, !dbg !15
}
declare void @llvm.dbg.declare(metadata, metadata, metadata) nounwind readnone
-declare i32 @printf(i8*, ...)
+declare i32 @printf(ptr, ...)
!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!17}
%struct.S = type { [100 x i32] }
-@__safestack_unsafe_stack_ptr = external thread_local(initialexec) global i8*
+@__safestack_unsafe_stack_ptr = external thread_local(initialexec) global ptr
; Function Attrs: norecurse nounwind readonly safestack uwtable
-define i32 @_Z1f1Sm(%struct.S* byval(%struct.S) nocapture readonly align 8 %zzz, i64 %len) #0 !dbg !12 {
+define i32 @_Z1f1Sm(ptr byval(%struct.S) nocapture readonly align 8 %zzz, i64 %len) #0 !dbg !12 {
entry:
- %unsafe_stack_ptr = load i8*, i8** @__safestack_unsafe_stack_ptr, !dbg !22
- %unsafe_stack_static_top = getelementptr i8, i8* %unsafe_stack_ptr, i32 -400, !dbg !22
- store i8* %unsafe_stack_static_top, i8** @__safestack_unsafe_stack_ptr, !dbg !22
+ %unsafe_stack_ptr = load ptr, ptr @__safestack_unsafe_stack_ptr, !dbg !22
+ %unsafe_stack_static_top = getelementptr i8, ptr %unsafe_stack_ptr, i32 -400, !dbg !22
+ store ptr %unsafe_stack_static_top, ptr @__safestack_unsafe_stack_ptr, !dbg !22
; !17 describes "zzz"
- call void @llvm.dbg.declare(metadata i8* %unsafe_stack_ptr, metadata !17, metadata !23), !dbg !22
- %0 = getelementptr i8, i8* %unsafe_stack_ptr, i32 -400, !dbg !22
- %zzz.unsafe-byval = bitcast i8* %0 to %struct.S*, !dbg !22
- %1 = bitcast %struct.S* %zzz to i8*, !dbg !24
- call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %0, i8* align 8 %1, i64 400, i1 false), !dbg !24
+ call void @llvm.dbg.declare(metadata ptr %unsafe_stack_ptr, metadata !17, metadata !23), !dbg !22
+ %0 = getelementptr i8, ptr %unsafe_stack_ptr, i32 -400, !dbg !22
+ call void @llvm.memcpy.p0.p0.i64(ptr align 8 %0, ptr align 8 %zzz, i64 400, i1 false), !dbg !24
tail call void @llvm.dbg.value(metadata i64 %len, metadata !18, metadata !25), !dbg !24
- %arrayidx = getelementptr inbounds %struct.S, %struct.S* %zzz.unsafe-byval, i64 0, i32 0, i64 %len, !dbg !26
- %2 = load i32, i32* %arrayidx, align 4, !dbg !26, !tbaa !27
- store i8* %unsafe_stack_ptr, i8** @__safestack_unsafe_stack_ptr, !dbg !31
- ret i32 %2, !dbg !31
+ %arrayidx = getelementptr inbounds %struct.S, ptr %0, i64 0, i32 0, i64 %len, !dbg !26
+ %1 = load i32, ptr %arrayidx, align 4, !dbg !26, !tbaa !27
+ store ptr %unsafe_stack_ptr, ptr @__safestack_unsafe_stack_ptr, !dbg !31
+ ret i32 %1, !dbg !31
}
; Function Attrs: nounwind readnone
declare void @llvm.dbg.value(metadata, metadata, metadata) #1
; Function Attrs: argmemonly nounwind
-declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture readonly, i64, i1) #2
+declare void @llvm.memcpy.p0.p0.i64(ptr nocapture, ptr nocapture readonly, i64, i1) #2
attributes #0 = { norecurse nounwind readonly safestack uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "frame-pointer"="none" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+fxsr,+mmx,+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { nounwind readnone }
; SDAG-NEXT: [{{.*}}, {{.*}}): DW_OP_breg6 RBP-32, DW_OP_deref)
; CHECK-NEXT: DW_AT_name {{.*}}"a"
-%class.A = type { i32 (...)**, i32 }
+%class.A = type { ptr, i32 }
%class.B = type { i8 }
-@_ZTV1A = linkonce_odr unnamed_addr constant [4 x i8*] [i8* null, i8* bitcast ({ i8*, i8* }* @_ZTI1A to i8*), i8* bitcast (void (%class.A*)* @_ZN1AD2Ev to i8*), i8* bitcast (void (%class.A*)* @_ZN1AD0Ev to i8*)]
-@_ZTVN10__cxxabiv117__class_type_infoE = external global i8*
+@_ZTV1A = linkonce_odr unnamed_addr constant [4 x ptr] [ptr null, ptr @_ZTI1A, ptr @_ZN1AD2Ev, ptr @_ZN1AD0Ev]
+@_ZTVN10__cxxabiv117__class_type_infoE = external global ptr
@_ZTS1A = linkonce_odr constant [3 x i8] c"1A\00"
-@_ZTI1A = linkonce_odr constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv117__class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @_ZTS1A, i32 0, i32 0) }
+@_ZTI1A = linkonce_odr constant { ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv117__class_type_infoE, i64 2), ptr @_ZTS1A }
-@_ZN1AC1Ei = alias void (%class.A*, i32), void (%class.A*, i32)* @_ZN1AC2Ei
-@_ZN1AC1ERKS_ = alias void (%class.A*, %class.A*), void (%class.A*, %class.A*)* @_ZN1AC2ERKS_
+@_ZN1AC1Ei = alias void (ptr, i32), ptr @_ZN1AC2Ei
+@_ZN1AC1ERKS_ = alias void (ptr, ptr), ptr @_ZN1AC2ERKS_
; Function Attrs: nounwind uwtable
-define void @_ZN1AC2Ei(%class.A* %this, i32 %i) unnamed_addr #0 align 2 !dbg !49 {
+define void @_ZN1AC2Ei(ptr %this, i32 %i) unnamed_addr #0 align 2 !dbg !49 {
entry:
- %this.addr = alloca %class.A*, align 8
+ %this.addr = alloca ptr, align 8
%i.addr = alloca i32, align 4
- store %class.A* %this, %class.A** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %class.A** %this.addr, metadata !67, metadata !DIExpression()), !dbg !69
- store i32 %i, i32* %i.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %i.addr, metadata !70, metadata !DIExpression()), !dbg !71
- %this1 = load %class.A*, %class.A** %this.addr
- %0 = bitcast %class.A* %this1 to i8***, !dbg !72
- store i8** getelementptr inbounds ([4 x i8*], [4 x i8*]* @_ZTV1A, i64 0, i64 2), i8*** %0, !dbg !72
- %m_int = getelementptr inbounds %class.A, %class.A* %this1, i32 0, i32 1, !dbg !72
- %1 = load i32, i32* %i.addr, align 4, !dbg !72
- store i32 %1, i32* %m_int, align 4, !dbg !72
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !67, metadata !DIExpression()), !dbg !69
+ store i32 %i, ptr %i.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %i.addr, metadata !70, metadata !DIExpression()), !dbg !71
+ %this1 = load ptr, ptr %this.addr
+ store ptr getelementptr inbounds ([4 x ptr], ptr @_ZTV1A, i64 0, i64 2), ptr %this1, !dbg !72
+ %m_int = getelementptr inbounds %class.A, ptr %this1, i32 0, i32 1, !dbg !72
+ %0 = load i32, ptr %i.addr, align 4, !dbg !72
+ store i32 %0, ptr %m_int, align 4, !dbg !72
ret void, !dbg !73
}
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
; Function Attrs: nounwind uwtable
-define void @_ZN1AC2ERKS_(%class.A* %this, %class.A* %rhs) unnamed_addr #0 align 2 !dbg !50 {
+define void @_ZN1AC2ERKS_(ptr %this, ptr %rhs) unnamed_addr #0 align 2 !dbg !50 {
entry:
- %this.addr = alloca %class.A*, align 8
- %rhs.addr = alloca %class.A*, align 8
- store %class.A* %this, %class.A** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %class.A** %this.addr, metadata !74, metadata !DIExpression()), !dbg !75
- store %class.A* %rhs, %class.A** %rhs.addr, align 8
- call void @llvm.dbg.declare(metadata %class.A** %rhs.addr, metadata !76, metadata !DIExpression()), !dbg !77
- %this1 = load %class.A*, %class.A** %this.addr
- %0 = bitcast %class.A* %this1 to i8***, !dbg !78
- store i8** getelementptr inbounds ([4 x i8*], [4 x i8*]* @_ZTV1A, i64 0, i64 2), i8*** %0, !dbg !78
- %m_int = getelementptr inbounds %class.A, %class.A* %this1, i32 0, i32 1, !dbg !78
- %1 = load %class.A*, %class.A** %rhs.addr, align 8, !dbg !78
- %m_int2 = getelementptr inbounds %class.A, %class.A* %1, i32 0, i32 1, !dbg !78
- %2 = load i32, i32* %m_int2, align 4, !dbg !78
- store i32 %2, i32* %m_int, align 4, !dbg !78
+ %this.addr = alloca ptr, align 8
+ %rhs.addr = alloca ptr, align 8
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !74, metadata !DIExpression()), !dbg !75
+ store ptr %rhs, ptr %rhs.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %rhs.addr, metadata !76, metadata !DIExpression()), !dbg !77
+ %this1 = load ptr, ptr %this.addr
+ store ptr getelementptr inbounds ([4 x ptr], ptr @_ZTV1A, i64 0, i64 2), ptr %this1, !dbg !78
+ %m_int = getelementptr inbounds %class.A, ptr %this1, i32 0, i32 1, !dbg !78
+ %0 = load ptr, ptr %rhs.addr, align 8, !dbg !78
+ %m_int2 = getelementptr inbounds %class.A, ptr %0, i32 0, i32 1, !dbg !78
+ %1 = load i32, ptr %m_int2, align 4, !dbg !78
+ store i32 %1, ptr %m_int, align 4, !dbg !78
ret void, !dbg !79
}
; Function Attrs: nounwind uwtable
-define %class.A* @_ZN1AaSERKS_(%class.A* %this, %class.A* %rhs) #0 align 2 !dbg !51 {
+define ptr @_ZN1AaSERKS_(ptr %this, ptr %rhs) #0 align 2 !dbg !51 {
entry:
- %this.addr = alloca %class.A*, align 8
- %rhs.addr = alloca %class.A*, align 8
- store %class.A* %this, %class.A** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %class.A** %this.addr, metadata !80, metadata !DIExpression()), !dbg !81
- store %class.A* %rhs, %class.A** %rhs.addr, align 8
- call void @llvm.dbg.declare(metadata %class.A** %rhs.addr, metadata !82, metadata !DIExpression()), !dbg !83
- %this1 = load %class.A*, %class.A** %this.addr
- %0 = load %class.A*, %class.A** %rhs.addr, align 8, !dbg !84
- %m_int = getelementptr inbounds %class.A, %class.A* %0, i32 0, i32 1, !dbg !84
- %1 = load i32, i32* %m_int, align 4, !dbg !84
- %m_int2 = getelementptr inbounds %class.A, %class.A* %this1, i32 0, i32 1, !dbg !84
- store i32 %1, i32* %m_int2, align 4, !dbg !84
- ret %class.A* %this1, !dbg !85
+ %this.addr = alloca ptr, align 8
+ %rhs.addr = alloca ptr, align 8
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !80, metadata !DIExpression()), !dbg !81
+ store ptr %rhs, ptr %rhs.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %rhs.addr, metadata !82, metadata !DIExpression()), !dbg !83
+ %this1 = load ptr, ptr %this.addr
+ %0 = load ptr, ptr %rhs.addr, align 8, !dbg !84
+ %m_int = getelementptr inbounds %class.A, ptr %0, i32 0, i32 1, !dbg !84
+ %1 = load i32, ptr %m_int, align 4, !dbg !84
+ %m_int2 = getelementptr inbounds %class.A, ptr %this1, i32 0, i32 1, !dbg !84
+ store i32 %1, ptr %m_int2, align 4, !dbg !84
+ ret ptr %this1, !dbg !85
}
; Function Attrs: nounwind uwtable
-define i32 @_ZN1A7get_intEv(%class.A* %this) #0 align 2 !dbg !52 {
+define i32 @_ZN1A7get_intEv(ptr %this) #0 align 2 !dbg !52 {
entry:
- %this.addr = alloca %class.A*, align 8
- store %class.A* %this, %class.A** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %class.A** %this.addr, metadata !86, metadata !DIExpression()), !dbg !87
- %this1 = load %class.A*, %class.A** %this.addr
- %m_int = getelementptr inbounds %class.A, %class.A* %this1, i32 0, i32 1, !dbg !88
- %0 = load i32, i32* %m_int, align 4, !dbg !88
+ %this.addr = alloca ptr, align 8
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !86, metadata !DIExpression()), !dbg !87
+ %this1 = load ptr, ptr %this.addr
+ %m_int = getelementptr inbounds %class.A, ptr %this1, i32 0, i32 1, !dbg !88
+ %0 = load i32, ptr %m_int, align 4, !dbg !88
ret i32 %0, !dbg !88
}
; Function Attrs: uwtable
-define void @_ZN1B9AInstanceEv(%class.A* noalias sret(%class.A) %agg.result, %class.B* %this) #2 align 2 !dbg !53 {
+define void @_ZN1B9AInstanceEv(ptr noalias sret(%class.A) %agg.result, ptr %this) #2 align 2 !dbg !53 {
entry:
- %this.addr = alloca %class.B*, align 8
+ %this.addr = alloca ptr, align 8
%nrvo = alloca i1
%cleanup.dest.slot = alloca i32
- store %class.B* %this, %class.B** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %class.B** %this.addr, metadata !89, metadata !DIExpression()), !dbg !91
- %this1 = load %class.B*, %class.B** %this.addr
- store i1 false, i1* %nrvo, !dbg !92
- call void @llvm.dbg.declare(metadata %class.A* %agg.result, metadata !93, metadata !DIExpression()), !dbg !92
- call void @_ZN1AC1Ei(%class.A* %agg.result, i32 12), !dbg !92
- store i1 true, i1* %nrvo, !dbg !94
- store i32 1, i32* %cleanup.dest.slot
- %nrvo.val = load i1, i1* %nrvo, !dbg !95
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !89, metadata !DIExpression()), !dbg !91
+ %this1 = load ptr, ptr %this.addr
+ store i1 false, ptr %nrvo, !dbg !92
+ call void @llvm.dbg.declare(metadata ptr %agg.result, metadata !93, metadata !DIExpression()), !dbg !92
+ call void @_ZN1AC1Ei(ptr %agg.result, i32 12), !dbg !92
+ store i1 true, ptr %nrvo, !dbg !94
+ store i32 1, ptr %cleanup.dest.slot
+ %nrvo.val = load i1, ptr %nrvo, !dbg !95
br i1 %nrvo.val, label %nrvo.skipdtor, label %nrvo.unused, !dbg !95
nrvo.unused: ; preds = %entry
- call void @_ZN1AD2Ev(%class.A* %agg.result), !dbg !96
+ call void @_ZN1AD2Ev(ptr %agg.result), !dbg !96
br label %nrvo.skipdtor, !dbg !96
nrvo.skipdtor: ; preds = %nrvo.unused, %entry
}
; Function Attrs: nounwind uwtable
-define linkonce_odr void @_ZN1AD2Ev(%class.A* %this) unnamed_addr #0 align 2 !dbg !63 {
+define linkonce_odr void @_ZN1AD2Ev(ptr %this) unnamed_addr #0 align 2 !dbg !63 {
entry:
- %this.addr = alloca %class.A*, align 8
- store %class.A* %this, %class.A** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %class.A** %this.addr, metadata !101, metadata !DIExpression()), !dbg !102
- %this1 = load %class.A*, %class.A** %this.addr
+ %this.addr = alloca ptr, align 8
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !101, metadata !DIExpression()), !dbg !102
+ %this1 = load ptr, ptr %this.addr
ret void, !dbg !103
}
; Function Attrs: uwtable
-define i32 @main(i32 %argc, i8** %argv) #2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) !dbg !54 {
+define i32 @main(i32 %argc, ptr %argv) #2 personality ptr @__gxx_personality_v0 !dbg !54 {
entry:
%retval = alloca i32, align 4
%argc.addr = alloca i32, align 4
- %argv.addr = alloca i8**, align 8
+ %argv.addr = alloca ptr, align 8
%b = alloca %class.B, align 1
%return_val = alloca i32, align 4
%temp.lvalue = alloca %class.A, align 8
- %exn.slot = alloca i8*
+ %exn.slot = alloca ptr
%ehselector.slot = alloca i32
%a = alloca %class.A, align 8
%cleanup.dest.slot = alloca i32
- store i32 0, i32* %retval
- store i32 %argc, i32* %argc.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %argc.addr, metadata !104, metadata !DIExpression()), !dbg !105
- store i8** %argv, i8*** %argv.addr, align 8
- call void @llvm.dbg.declare(metadata i8*** %argv.addr, metadata !106, metadata !DIExpression()), !dbg !105
- call void @llvm.dbg.declare(metadata %class.B* %b, metadata !107, metadata !DIExpression()), !dbg !108
- call void @_ZN1BC2Ev(%class.B* %b), !dbg !108
- call void @llvm.dbg.declare(metadata i32* %return_val, metadata !109, metadata !DIExpression()), !dbg !110
- call void @_ZN1B9AInstanceEv(%class.A* sret(%class.A) %temp.lvalue, %class.B* %b), !dbg !110
- %call = invoke i32 @_ZN1A7get_intEv(%class.A* %temp.lvalue)
+ store i32 0, ptr %retval
+ store i32 %argc, ptr %argc.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %argc.addr, metadata !104, metadata !DIExpression()), !dbg !105
+ store ptr %argv, ptr %argv.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %argv.addr, metadata !106, metadata !DIExpression()), !dbg !105
+ call void @llvm.dbg.declare(metadata ptr %b, metadata !107, metadata !DIExpression()), !dbg !108
+ call void @_ZN1BC2Ev(ptr %b), !dbg !108
+ call void @llvm.dbg.declare(metadata ptr %return_val, metadata !109, metadata !DIExpression()), !dbg !110
+ call void @_ZN1B9AInstanceEv(ptr sret(%class.A) %temp.lvalue, ptr %b), !dbg !110
+ %call = invoke i32 @_ZN1A7get_intEv(ptr %temp.lvalue)
to label %invoke.cont unwind label %lpad, !dbg !110
invoke.cont: ; preds = %entry
- call void @_ZN1AD2Ev(%class.A* %temp.lvalue), !dbg !111
- store i32 %call, i32* %return_val, align 4, !dbg !111
- call void @llvm.dbg.declare(metadata %class.A* %a, metadata !113, metadata !DIExpression()), !dbg !114
- call void @_ZN1B9AInstanceEv(%class.A* sret(%class.A) %a, %class.B* %b), !dbg !114
- %0 = load i32, i32* %return_val, align 4, !dbg !115
- store i32 %0, i32* %retval, !dbg !115
- store i32 1, i32* %cleanup.dest.slot
- call void @_ZN1AD2Ev(%class.A* %a), !dbg !116
- %1 = load i32, i32* %retval, !dbg !116
+ call void @_ZN1AD2Ev(ptr %temp.lvalue), !dbg !111
+ store i32 %call, ptr %return_val, align 4, !dbg !111
+ call void @llvm.dbg.declare(metadata ptr %a, metadata !113, metadata !DIExpression()), !dbg !114
+ call void @_ZN1B9AInstanceEv(ptr sret(%class.A) %a, ptr %b), !dbg !114
+ %0 = load i32, ptr %return_val, align 4, !dbg !115
+ store i32 %0, ptr %retval, !dbg !115
+ store i32 1, ptr %cleanup.dest.slot
+ call void @_ZN1AD2Ev(ptr %a), !dbg !116
+ %1 = load i32, ptr %retval, !dbg !116
ret i32 %1, !dbg !116
lpad: ; preds = %entry
- %2 = landingpad { i8*, i32 }
+ %2 = landingpad { ptr, i32 }
cleanup, !dbg !116
- %3 = extractvalue { i8*, i32 } %2, 0, !dbg !116
- store i8* %3, i8** %exn.slot, !dbg !116
- %4 = extractvalue { i8*, i32 } %2, 1, !dbg !116
- store i32 %4, i32* %ehselector.slot, !dbg !116
- invoke void @_ZN1AD2Ev(%class.A* %temp.lvalue)
+ %3 = extractvalue { ptr, i32 } %2, 0, !dbg !116
+ store ptr %3, ptr %exn.slot, !dbg !116
+ %4 = extractvalue { ptr, i32 } %2, 1, !dbg !116
+ store i32 %4, ptr %ehselector.slot, !dbg !116
+ invoke void @_ZN1AD2Ev(ptr %temp.lvalue)
to label %invoke.cont1 unwind label %terminate.lpad, !dbg !116
invoke.cont1: ; preds = %lpad
br label %eh.resume, !dbg !117
eh.resume: ; preds = %invoke.cont1
- %exn = load i8*, i8** %exn.slot, !dbg !119
- %sel = load i32, i32* %ehselector.slot, !dbg !119
- %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0, !dbg !119
- %lpad.val2 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1, !dbg !119
- resume { i8*, i32 } %lpad.val2, !dbg !119
+ %exn = load ptr, ptr %exn.slot, !dbg !119
+ %sel = load i32, ptr %ehselector.slot, !dbg !119
+ %lpad.val = insertvalue { ptr, i32 } undef, ptr %exn, 0, !dbg !119
+ %lpad.val2 = insertvalue { ptr, i32 } %lpad.val, i32 %sel, 1, !dbg !119
+ resume { ptr, i32 } %lpad.val2, !dbg !119
terminate.lpad: ; preds = %lpad
- %5 = landingpad { i8*, i32 }
- catch i8* null, !dbg !121
- %6 = extractvalue { i8*, i32 } %5, 0, !dbg !121
- call void @__clang_call_terminate(i8* %6) #5, !dbg !121
+ %5 = landingpad { ptr, i32 }
+ catch ptr null, !dbg !121
+ %6 = extractvalue { ptr, i32 } %5, 0, !dbg !121
+ call void @__clang_call_terminate(ptr %6) #5, !dbg !121
unreachable, !dbg !121
}
; Function Attrs: nounwind uwtable
-define linkonce_odr void @_ZN1BC2Ev(%class.B* %this) unnamed_addr #0 align 2 !dbg !62 {
+define linkonce_odr void @_ZN1BC2Ev(ptr %this) unnamed_addr #0 align 2 !dbg !62 {
entry:
- %this.addr = alloca %class.B*, align 8
- store %class.B* %this, %class.B** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %class.B** %this.addr, metadata !123, metadata !DIExpression()), !dbg !124
- %this1 = load %class.B*, %class.B** %this.addr
+ %this.addr = alloca ptr, align 8
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !123, metadata !DIExpression()), !dbg !124
+ %this1 = load ptr, ptr %this.addr
ret void, !dbg !125
}
declare i32 @__gxx_personality_v0(...)
; Function Attrs: noinline noreturn nounwind
-define linkonce_odr hidden void @__clang_call_terminate(i8*) #3 {
- %2 = call i8* @__cxa_begin_catch(i8* %0) #6
+define linkonce_odr hidden void @__clang_call_terminate(ptr) #3 {
+ %2 = call ptr @__cxa_begin_catch(ptr %0) #6
call void @_ZSt9terminatev() #5
unreachable
}
-declare i8* @__cxa_begin_catch(i8*)
+declare ptr @__cxa_begin_catch(ptr)
declare void @_ZSt9terminatev()
; Function Attrs: uwtable
-define linkonce_odr void @_ZN1AD0Ev(%class.A* %this) unnamed_addr #2 align 2 personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) !dbg !61 {
+define linkonce_odr void @_ZN1AD0Ev(ptr %this) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 !dbg !61 {
entry:
- %this.addr = alloca %class.A*, align 8
- %exn.slot = alloca i8*
+ %this.addr = alloca ptr, align 8
+ %exn.slot = alloca ptr
%ehselector.slot = alloca i32
- store %class.A* %this, %class.A** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %class.A** %this.addr, metadata !126, metadata !DIExpression()), !dbg !127
- %this1 = load %class.A*, %class.A** %this.addr
- invoke void @_ZN1AD2Ev(%class.A* %this1)
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !126, metadata !DIExpression()), !dbg !127
+ %this1 = load ptr, ptr %this.addr
+ invoke void @_ZN1AD2Ev(ptr %this1)
to label %invoke.cont unwind label %lpad, !dbg !128
invoke.cont: ; preds = %entry
- %0 = bitcast %class.A* %this1 to i8*, !dbg !129
- call void @_ZdlPv(i8* %0) #7, !dbg !129
+ call void @_ZdlPv(ptr %this1) #7, !dbg !129
ret void, !dbg !129
lpad: ; preds = %entry
- %1 = landingpad { i8*, i32 }
+ %0 = landingpad { ptr, i32 }
cleanup, !dbg !131
- %2 = extractvalue { i8*, i32 } %1, 0, !dbg !131
- store i8* %2, i8** %exn.slot, !dbg !131
- %3 = extractvalue { i8*, i32 } %1, 1, !dbg !131
- store i32 %3, i32* %ehselector.slot, !dbg !131
- %4 = bitcast %class.A* %this1 to i8*, !dbg !131
- call void @_ZdlPv(i8* %4) #7, !dbg !131
+ %1 = extractvalue { ptr, i32 } %0, 0, !dbg !131
+ store ptr %1, ptr %exn.slot, !dbg !131
+ %2 = extractvalue { ptr, i32 } %0, 1, !dbg !131
+ store i32 %2, ptr %ehselector.slot, !dbg !131
+ call void @_ZdlPv(ptr %this1) #7, !dbg !131
br label %eh.resume, !dbg !131
eh.resume: ; preds = %lpad
- %exn = load i8*, i8** %exn.slot, !dbg !133
- %sel = load i32, i32* %ehselector.slot, !dbg !133
- %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0, !dbg !133
- %lpad.val2 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1, !dbg !133
- resume { i8*, i32 } %lpad.val2, !dbg !133
+ %exn = load ptr, ptr %exn.slot, !dbg !133
+ %sel = load i32, ptr %ehselector.slot, !dbg !133
+ %lpad.val = insertvalue { ptr, i32 } undef, ptr %exn, 0, !dbg !133
+ %lpad.val2 = insertvalue { ptr, i32 } %lpad.val, i32 %sel, 1, !dbg !133
+ resume { ptr, i32 } %lpad.val2, !dbg !133
}
; Function Attrs: nobuiltin nounwind
-declare void @_ZdlPv(i8*) #4
+declare void @_ZdlPv(ptr) #4
attributes #0 = { nounwind uwtable "less-precise-fpmad"="false" "frame-pointer"="all" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { nounwind readnone }
%retval = alloca i32, align 4
%result = alloca %struct.S1, align 4
%cleanup.dest.slot = alloca i32, align 4
- %0 = bitcast %struct.S1* %result to i8*, !dbg !21
- call void @llvm.lifetime.start.p0i8(i64 4, i8* %0) #5, !dbg !21
- call void @llvm.dbg.declare(metadata %struct.S1* %result, metadata !12, metadata !DIExpression()), !dbg !21
+ call void @llvm.lifetime.start.p0(i64 4, ptr %result) #5, !dbg !21
+ call void @llvm.dbg.declare(metadata ptr %result, metadata !12, metadata !DIExpression()), !dbg !21
%call = call i32 @_Z3foov(), !dbg !21
- %coerce.dive = getelementptr inbounds %struct.S1, %struct.S1* %result, i32 0, i32 0, !dbg !21
- store i32 %call, i32* %coerce.dive, align 4, !dbg !21
- %call1 = call zeroext i1 @_ZN2S16IsNullEv(%struct.S1* %result), !dbg !22
+ store i32 %call, ptr %result, align 4, !dbg !21
+ %call1 = call zeroext i1 @_ZN2S16IsNullEv(ptr %result), !dbg !22
br i1 %call1, label %if.then, label %if.end, !dbg !24
if.then: ; preds = %entry
- store i32 0, i32* %retval, align 4, !dbg !25
- store i32 1, i32* %cleanup.dest.slot, align 4
+ store i32 0, ptr %retval, align 4, !dbg !25
+ store i32 1, ptr %cleanup.dest.slot, align 4
br label %cleanup, !dbg !25
if.end: ; preds = %entry
- %p1 = getelementptr inbounds %struct.S1, %struct.S1* %result, i32 0, i32 0, !dbg !26
- %1 = load i32, i32* %p1, align 4, !dbg !26
- %add = add nsw i32 %1, 1, !dbg !26
- store i32 %add, i32* %retval, align 4, !dbg !26
- store i32 1, i32* %cleanup.dest.slot, align 4
+ %0 = load i32, ptr %result, align 4, !dbg !26
+ %add = add nsw i32 %0, 1, !dbg !26
+ store i32 %add, ptr %retval, align 4, !dbg !26
+ store i32 1, ptr %cleanup.dest.slot, align 4
br label %cleanup, !dbg !26
cleanup: ; preds = %if.end, %if.then
- %2 = bitcast %struct.S1* %result to i8*, !dbg !32
- call void @llvm.lifetime.end.p0i8(i64 4, i8* %2) #5, !dbg !32
- %3 = load i32, i32* %retval, align 4, !dbg !32
- ret i32 %3, !dbg !32
+ call void @llvm.lifetime.end.p0(i64 4, ptr %result) #5, !dbg !32
+ %1 = load i32, ptr %retval, align 4, !dbg !32
+ ret i32 %1, !dbg !32
}
-declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture)
+declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture)
declare void @llvm.dbg.declare(metadata, metadata, metadata)
declare dso_local i32 @_Z3foov()
-define linkonce_odr dso_local zeroext i1 @_ZN2S16IsNullEv(%struct.S1* %this) #4 comdat align 2 !dbg !33 {
+define linkonce_odr dso_local zeroext i1 @_ZN2S16IsNullEv(ptr %this) #4 comdat align 2 !dbg !33 {
entry:
- %this.addr = alloca %struct.S1*, align 8
- store %struct.S1* %this, %struct.S1** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %struct.S1** %this.addr, metadata !35, metadata !DIExpression()), !dbg !39
- %this1 = load %struct.S1*, %struct.S1** %this.addr, align 8
- %p1 = getelementptr inbounds %struct.S1, %struct.S1* %this1, i32 0, i32 0, !dbg !40
- %0 = load i32, i32* %p1, align 4, !dbg !40
+ %this.addr = alloca ptr, align 8
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !35, metadata !DIExpression()), !dbg !39
+ %this1 = load ptr, ptr %this.addr, align 8
+ %0 = load i32, ptr %this1, align 4, !dbg !40
%cmp = icmp eq i32 %0, 0, !dbg !40
ret i1 %cmp, !dbg !40
}
-declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture)
+declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture)
!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!3, !4, !5}
; Verify that SROA creates a variable piece when splitting i1.
; CHECK: %[[I1:.*]] = alloca [12 x i8], align 4
-; CHECK: call void @llvm.dbg.declare(metadata [12 x i8]* %[[I1]], metadata ![[VAR:[0-9]+]], metadata !DIExpression(DW_OP_LLVM_fragment, 32, 96))
+; CHECK: call void @llvm.dbg.declare(metadata ptr %[[I1]], metadata ![[VAR:[0-9]+]], metadata !DIExpression(DW_OP_LLVM_fragment, 32, 96))
; CHECK: call void @llvm.dbg.value(metadata i32 %[[A:.*]], metadata ![[VAR]], metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32))
; CHECK: ret i32 %[[A]]
; Read Var and Piece:
%struct.Inner = type { i32, i64 }
; Function Attrs: nounwind ssp uwtable
-define i32 @foo(%struct.Outer* byval(%struct.Outer) align 8 %outer) #0 !dbg !4 {
+define i32 @foo(ptr byval(%struct.Outer) align 8 %outer) #0 !dbg !4 {
entry:
%i1 = alloca %struct.Inner, align 8
- call void @llvm.dbg.declare(metadata %struct.Outer* %outer, metadata !25, metadata !2), !dbg !26
- call void @llvm.dbg.declare(metadata %struct.Inner* %i1, metadata !27, metadata !2), !dbg !28
- %inner = getelementptr inbounds %struct.Outer, %struct.Outer* %outer, i32 0, i32 0, !dbg !28
- %arrayidx = getelementptr inbounds [2 x %struct.Inner], [2 x %struct.Inner]* %inner, i32 0, i64 1, !dbg !28
- %0 = bitcast %struct.Inner* %i1 to i8*, !dbg !28
- %1 = bitcast %struct.Inner* %arrayidx to i8*, !dbg !28
- call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %0, i8* align 8 %1, i64 16, i1 false), !dbg !28
- %a = getelementptr inbounds %struct.Inner, %struct.Inner* %i1, i32 0, i32 0, !dbg !29
- %2 = load i32, i32* %a, align 4, !dbg !29
- ret i32 %2, !dbg !29
+ call void @llvm.dbg.declare(metadata ptr %outer, metadata !25, metadata !2), !dbg !26
+ call void @llvm.dbg.declare(metadata ptr %i1, metadata !27, metadata !2), !dbg !28
+ %arrayidx = getelementptr inbounds [2 x %struct.Inner], ptr %outer, i32 0, i64 1, !dbg !28
+ call void @llvm.memcpy.p0.p0.i64(ptr align 8 %i1, ptr align 8 %arrayidx, i64 16, i1 false), !dbg !28
+ %0 = load i32, ptr %i1, align 4, !dbg !29
+ ret i32 %0, !dbg !29
}
; Function Attrs: nounwind readnone
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
; Function Attrs: nounwind
-declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture readonly, i64, i1) #2
+declare void @llvm.memcpy.p0.p0.i64(ptr nocapture, ptr nocapture readonly, i64, i1) #2
attributes #0 = { nounwind ssp uwtable }
attributes #1 = { nounwind readnone }
define i32 @foo(i64 %outer.coerce0, i64 %outer.coerce1) #0 !dbg !4 {
%outer = alloca %struct.Outer, align 8
%i1 = alloca %struct.Inner, align 4
- %1 = bitcast %struct.Outer* %outer to { i64, i64 }*
- %2 = getelementptr { i64, i64 }, { i64, i64 }* %1, i32 0, i32 0
- store i64 %outer.coerce0, i64* %2
- %3 = getelementptr { i64, i64 }, { i64, i64 }* %1, i32 0, i32 1
- store i64 %outer.coerce1, i64* %3
- call void @llvm.dbg.declare(metadata %struct.Outer* %outer, metadata !24, metadata !2), !dbg !25
- call void @llvm.dbg.declare(metadata %struct.Inner* %i1, metadata !26, metadata !2), !dbg !27
- %4 = getelementptr inbounds %struct.Outer, %struct.Outer* %outer, i32 0, i32 0, !dbg !27
- %5 = getelementptr inbounds [2 x %struct.Inner], [2 x %struct.Inner]* %4, i32 0, i64 1, !dbg !27
- %6 = bitcast %struct.Inner* %i1 to i8*, !dbg !27
- %7 = bitcast %struct.Inner* %5 to i8*, !dbg !27
- call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %6, i8* align 4 %7, i64 8, i1 false), !dbg !27
- %8 = getelementptr inbounds %struct.Inner, %struct.Inner* %i1, i32 0, i32 0, !dbg !28
- %9 = load i32, i32* %8, align 4, !dbg !28
- ret i32 %9, !dbg !28
+ %1 = getelementptr { i64, i64 }, ptr %outer, i32 0, i32 0
+ store i64 %outer.coerce0, ptr %1
+ %2 = getelementptr { i64, i64 }, ptr %outer, i32 0, i32 1
+ store i64 %outer.coerce1, ptr %2
+ call void @llvm.dbg.declare(metadata ptr %outer, metadata !24, metadata !2), !dbg !25
+ call void @llvm.dbg.declare(metadata ptr %i1, metadata !26, metadata !2), !dbg !27
+ %3 = getelementptr inbounds [2 x %struct.Inner], ptr %outer, i32 0, i64 1, !dbg !27
+ call void @llvm.memcpy.p0.p0.i64(ptr align 4 %i1, ptr align 4 %3, i64 8, i1 false), !dbg !27
+ %4 = load i32, ptr %i1, align 4, !dbg !28
+ ret i32 %4, !dbg !28
}
; Function Attrs: nounwind readnone
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
; Function Attrs: nounwind
-declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture readonly, i64, i1) #2
+declare void @llvm.memcpy.p0.p0.i64(ptr nocapture, ptr nocapture readonly, i64, i1) #2
attributes #0 = { nounwind ssp uwtable "frame-pointer"="all" }
attributes #1 = { nounwind readnone }
define float @foo(float %s.coerce) #0 !dbg !4 {
entry:
%s = alloca %struct.S, align 4
- %coerce.dive = getelementptr %struct.S, %struct.S* %s, i32 0, i32 0
- store float %s.coerce, float* %coerce.dive, align 1
- call void @llvm.dbg.declare(metadata %struct.S* %s, metadata !16, metadata !17), !dbg !18
- %f = getelementptr inbounds %struct.S, %struct.S* %s, i32 0, i32 0, !dbg !19
- %0 = load float, float* %f, align 4, !dbg !19
+ store float %s.coerce, ptr %s, align 1
+ call void @llvm.dbg.declare(metadata ptr %s, metadata !16, metadata !17), !dbg !18
+ %0 = load float, ptr %s, align 4, !dbg !19
ret float %0, !dbg !19
}
; RUN: opt -passes='sroa' < %s -S -o - | FileCheck %s
;
; Test that recursively splitting an alloca updates the debug info correctly.
-; CHECK: %[[T:.*]] = load i64, i64* @t, align 8
+; CHECK: %[[T:.*]] = load i64, ptr @t, align 8
; CHECK: call void @llvm.dbg.value(metadata i64 %[[T]], metadata ![[Y:.*]], metadata !DIExpression(DW_OP_LLVM_fragment, 0, 64))
-; CHECK: %[[T1:.*]] = load i64, i64* @t, align 8
+; CHECK: %[[T1:.*]] = load i64, ptr @t, align 8
; CHECK: call void @llvm.dbg.value(metadata i64 %[[T1]], metadata ![[Y]], metadata !DIExpression(DW_OP_LLVM_fragment, 64, 64))
; CHECK: call void @llvm.dbg.value(metadata i64 %[[T]], metadata ![[R:.*]], metadata !DIExpression(DW_OP_LLVM_fragment, 192, 64))
; CHECK: call void @llvm.dbg.value(metadata i64 %[[T1]], metadata ![[R]], metadata !DIExpression(DW_OP_LLVM_fragment, 256, 64))
br i1 %tobool, label %if.then, label %if.end, !dbg !26
if.then: ; preds = %entry
- store i32 0, i32* %retval, !dbg !27
+ store i32 0, ptr %retval, !dbg !27
br label %return, !dbg !27
if.end: ; preds = %entry
- call void @llvm.dbg.declare(metadata %struct.p* %y, metadata !28, metadata !29), !dbg !30
- %s = getelementptr inbounds %struct.p, %struct.p* %y, i32 0, i32 0, !dbg !30
- %0 = load i64, i64* @t, align 8, !dbg !30
- store i64 %0, i64* %s, align 8, !dbg !30
- %t = getelementptr inbounds %struct.p, %struct.p* %y, i32 0, i32 1, !dbg !30
- %1 = load i64, i64* @t, align 8, !dbg !30
- store i64 %1, i64* %t, align 8, !dbg !30
- call void @llvm.dbg.declare(metadata %struct.r* %r, metadata !31, metadata !29), !dbg !32
- %i = getelementptr inbounds %struct.r, %struct.r* %r, i32 0, i32 0, !dbg !32
- store i32 0, i32* %i, align 4, !dbg !32
- %x = getelementptr inbounds %struct.r, %struct.r* %r, i32 0, i32 1, !dbg !32
- %s1 = getelementptr inbounds %struct.p, %struct.p* %x, i32 0, i32 0, !dbg !32
- store i64 0, i64* %s1, align 8, !dbg !32
- %t2 = getelementptr inbounds %struct.p, %struct.p* %x, i32 0, i32 1, !dbg !32
- store i64 0, i64* %t2, align 8, !dbg !32
- %y3 = getelementptr inbounds %struct.r, %struct.r* %r, i32 0, i32 2, !dbg !32
- %2 = bitcast %struct.p* %y3 to i8*, !dbg !32
- %3 = bitcast %struct.p* %y to i8*, !dbg !32
- call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %2, i8* align 8 %3, i64 16, i1 false), !dbg !32
- %4 = bitcast %struct.r* %agg.tmp to i8*, !dbg !33
- %5 = bitcast %struct.r* %r to i8*, !dbg !33
- call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %4, i8* align 8 %5, i64 40, i1 false), !dbg !33
- %call4 = call i32 @_Z7call_me1r(%struct.r* byval(%struct.r) align 8 %agg.tmp), !dbg !33
- store i32 %call4, i32* %retval, !dbg !33
+ call void @llvm.dbg.declare(metadata ptr %y, metadata !28, metadata !29), !dbg !30
+ %0 = load i64, ptr @t, align 8, !dbg !30
+ store i64 %0, ptr %y, align 8, !dbg !30
+ %t = getelementptr inbounds %struct.p, ptr %y, i32 0, i32 1, !dbg !30
+ %1 = load i64, ptr @t, align 8, !dbg !30
+ store i64 %1, ptr %t, align 8, !dbg !30
+ call void @llvm.dbg.declare(metadata ptr %r, metadata !31, metadata !29), !dbg !32
+ store i32 0, ptr %r, align 4, !dbg !32
+ %x = getelementptr inbounds %struct.r, ptr %r, i32 0, i32 1, !dbg !32
+ store i64 0, ptr %x, align 8, !dbg !32
+ %t2 = getelementptr inbounds %struct.p, ptr %x, i32 0, i32 1, !dbg !32
+ store i64 0, ptr %t2, align 8, !dbg !32
+ %y3 = getelementptr inbounds %struct.r, ptr %r, i32 0, i32 2, !dbg !32
+ call void @llvm.memcpy.p0.p0.i64(ptr align 8 %y3, ptr align 8 %y, i64 16, i1 false), !dbg !32
+ call void @llvm.memcpy.p0.p0.i64(ptr align 8 %agg.tmp, ptr align 8 %r, i64 40, i1 false), !dbg !33
+ %call4 = call i32 @_Z7call_me1r(ptr byval(%struct.r) align 8 %agg.tmp), !dbg !33
+ store i32 %call4, ptr %retval, !dbg !33
br label %return, !dbg !33
return: ; preds = %if.end, %if.then
- %6 = load i32, i32* %retval, !dbg !34
- ret i32 %6, !dbg !34
+ %2 = load i32, ptr %retval, !dbg !34
+ ret i32 %2, !dbg !34
}
declare i32 @_Z5maybev()
declare void @llvm.dbg.declare(metadata, metadata, metadata) #2
; Function Attrs: nounwind
-declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture readonly, i64, i1) #3
+declare void @llvm.memcpy.p0.p0.i64(ptr nocapture, ptr nocapture readonly, i64, i1) #3
-declare i32 @_Z7call_me1r(%struct.r* byval(%struct.r) align 8)
+declare i32 @_Z7call_me1r(ptr byval(%struct.r) align 8)
attributes #0 = { nounwind }
attributes #2 = { nounwind readnone }
%retval = alloca %struct.prog_src_register, align 4
%a = alloca %struct.prog_src_register, align 4
%local = alloca i32, align 4
- call void @llvm.dbg.declare(metadata %struct.prog_src_register* %a, metadata !16, metadata !17), !dbg !18
- %0 = bitcast %struct.prog_src_register* %a to i8*, !dbg !19
- call void @llvm.memset.p0i8.i64(i8* align 4 %0, i8 0, i64 8, i1 false), !dbg !19
- call void @llvm.dbg.declare(metadata i32* %local, metadata !20, metadata !17), !dbg !21
- %1 = bitcast %struct.prog_src_register* %a to i32*, !dbg !21
- %bf.load = load i32, i32* %1, align 4, !dbg !21
+ call void @llvm.dbg.declare(metadata ptr %a, metadata !16, metadata !17), !dbg !18
+ call void @llvm.memset.p0.i64(ptr align 4 %a, i8 0, i64 8, i1 false), !dbg !19
+ call void @llvm.dbg.declare(metadata ptr %local, metadata !20, metadata !17), !dbg !21
+ %bf.load = load i32, ptr %a, align 4, !dbg !21
%bf.shl = shl i32 %bf.load, 15, !dbg !21
%bf.ashr = ashr i32 %bf.shl, 19, !dbg !21
- store i32 %bf.ashr, i32* %local, align 4, !dbg !21
- %2 = bitcast %struct.prog_src_register* %retval to i8*, !dbg !22
- %3 = bitcast %struct.prog_src_register* %a to i8*, !dbg !22
- call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %2, i8* align 4 %3, i64 8, i1 false), !dbg !22
- %4 = bitcast %struct.prog_src_register* %retval to i64*, !dbg !22
- %5 = load i64, i64* %4, align 1, !dbg !22
- ret i64 %5, !dbg !22
+ store i32 %bf.ashr, ptr %local, align 4, !dbg !21
+ call void @llvm.memcpy.p0.p0.i64(ptr align 4 %retval, ptr align 4 %a, i64 8, i1 false), !dbg !22
+ %0 = load i64, ptr %retval, align 1, !dbg !22
+ ret i64 %0, !dbg !22
}
; Function Attrs: nounwind readnone
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
; Function Attrs: nounwind
-declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i1) #2
+declare void @llvm.memset.p0.i64(ptr nocapture, i8, i64, i1) #2
; Function Attrs: nounwind
-declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture readonly, i64, i1) #2
+declare void @llvm.memcpy.p0.p0.i64(ptr nocapture, ptr nocapture readonly, i64, i1) #2
attributes #0 = { nounwind }
attributes #1 = { nounwind readnone }
define void @f1() {
entry:
%0 = alloca [9 x i32]
- call void @llvm.dbg.declare(metadata [9 x i32]* %0, metadata !11, metadata !DIExpression()), !dbg !17
- %1 = bitcast [9 x i32]* %0 to i8*
- call void @llvm.memset.p0i8.i64(i8* align 16 %1, i8 0, i64 36, i1 true)
- %2 = getelementptr [9 x i32], [9 x i32]* %0, i32 0, i32 0
- store volatile i32 1, i32* %2
+ call void @llvm.dbg.declare(metadata ptr %0, metadata !11, metadata !DIExpression()), !dbg !17
+ call void @llvm.memset.p0.i64(ptr align 16 %0, i8 0, i64 36, i1 true)
+ store volatile i32 1, ptr %0
ret void
}
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
; Function Attrs: argmemonly nounwind
-declare void @llvm.memset.p0i8.i64(i8* nocapture writeonly, i8, i64, i1) #0
+declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1) #0
attributes #0 = { argmemonly nounwind }
attributes #1 = { nounwind readnone speculatable }
!17 = !DILocation(line: 3, column: 18, scope: !7)
; CHECK-NOT: = alloca [9 x i32]
-; CHECK-NOT: call void @llvm.dbg.declare(metadata [9 x i32]*
+; CHECK-NOT: call void @llvm.dbg.declare(metadata ptr
; CHECK: %[[VAR1:.*]] = alloca i32
; CHECK-NEXT: %[[VAR2:.*]] = alloca [8 x i32]
-; CHECK-NEXT: call void @llvm.dbg.declare(metadata i32* %[[VAR1]]
-; CHECK-NEXT: call void @llvm.dbg.declare(metadata [8 x i32]* %[[VAR2]]
+; CHECK-NEXT: call void @llvm.dbg.declare(metadata ptr %[[VAR1]]
+; CHECK-NEXT: call void @llvm.dbg.declare(metadata ptr %[[VAR2]]
; CHECK-NOT: = alloca [9 x i32]
-; CHECK-NOT: call void @llvm.dbg.declare(metadata [9 x i32]*
+; CHECK-NOT: call void @llvm.dbg.declare(metadata ptr
; RUN: llc -filetype=obj -o - %s | llvm-dwarfdump - | FileCheck %s
; Generated from:
-; void * __attribute__ (( regparm(2) )) f(void *, void *);
-; void * __attribute__ (( regparm(0) )) g(void *, void *);
+; ptr __attribute__ (( regparm(2) )) f(ptr, ptr);
+; ptr __attribute__ (( regparm(0) )) g(ptr, ptr);
;
-; void *g(void *t, void *k) {
-; if (k == (void *)0)
-; return (void *)0;
+; ptr g(ptr t, ptr k) {
+; if (k == (ptr)0)
+; return (ptr)0;
; return f(t, k);
; }
target triple = "i386--linux-gnu"
; Function Attrs: nounwind
-define i8* @g(i8* %t, i8* %k) local_unnamed_addr #0 !dbg !10 {
+define ptr @g(ptr %t, ptr %k) local_unnamed_addr #0 !dbg !10 {
entry:
- call void @llvm.dbg.value(metadata i8* %t, metadata !14, metadata !DIExpression()), !dbg !16
- call void @llvm.dbg.value(metadata i8* %k, metadata !15, metadata !DIExpression()), !dbg !17
- %cmp = icmp eq i8* %k, null, !dbg !18
+ call void @llvm.dbg.value(metadata ptr %t, metadata !14, metadata !DIExpression()), !dbg !16
+ call void @llvm.dbg.value(metadata ptr %k, metadata !15, metadata !DIExpression()), !dbg !17
+ %cmp = icmp eq ptr %k, null, !dbg !18
br i1 %cmp, label %return, label %if.end, !dbg !20
if.end: ; preds = %entry
- %call = tail call i8* @f(i8* inreg %t, i8* inreg nonnull %k) #3, !dbg !21
+ %call = tail call ptr @f(ptr inreg %t, ptr inreg nonnull %k) #3, !dbg !21
br label %return, !dbg !22
return: ; preds = %entry, %if.end
- %retval.0 = phi i8* [ %call, %if.end ], [ null, %entry ]
- ret i8* %retval.0, !dbg !23
+ %retval.0 = phi ptr [ %call, %if.end ], [ null, %entry ]
+ ret ptr %retval.0, !dbg !23
}
-declare i8* @f(i8* inreg, i8* inreg) local_unnamed_addr
+declare ptr @f(ptr inreg, ptr inreg) local_unnamed_addr
; Function Attrs: nounwind readnone speculatable
declare void @llvm.dbg.value(metadata, metadata, metadata) #2
define void @_Z34swift_getGenericMetadata_argumentsv() #0 !dbg !5 {
entry:
%ref.tmp = alloca %class.K, align 8
- %0 = getelementptr inbounds %class.K, %class.K* %ref.tmp, i32 0, i32 0, i32 0, i32 0
- %call = tail call i64 @_Z8getCacheP23ConditionPlatformHelper(%struct.ConditionPlatformHelper* undef)
- %1 = bitcast %class.K* %ref.tmp to i64*
- %LastSearch.i.i = getelementptr inbounds %class.K, %class.K* %ref.tmp, i32 0, i32 0, i32 0
- %call.i.i = call %"struct.J<K::L, false, int>::Node"* @_ZN1BIPN1JIN1K1LELb0EiE4NodeEE4loadEv(%struct.B* nonnull %LastSearch.i.i)
- %tobool.i.i = icmp eq %"struct.J<K::L, false, int>::Node"* %call.i.i, null
+ %call = tail call i64 @_Z8getCacheP23ConditionPlatformHelper(ptr undef)
+ %call.i.i = call ptr @_ZN1BIPN1JIN1K1LELb0EiE4NodeEE4loadEv(ptr nonnull %ref.tmp)
+ %tobool.i.i = icmp eq ptr %call.i.i, null
br i1 %tobool.i.i, label %_ZN1NIN1K1LELi0EE11getOrInsertIiEE1AIPS1_ET_.exit.i, label %if.then.i.i
if.then.i.i:
- %2 = lshr i64 %call, 32
- %3 = trunc i64 %2 to i32
- %Payload.i.i = getelementptr inbounds %"struct.J<K::L, false, int>::Node", %"struct.J<K::L, false, int>::Node"* %call.i.i, i32 0, i32 0
+ %0 = lshr i64 %call, 32
+ %1 = trunc i64 %0 to i32
+ %Payload.i.i = getelementptr inbounds %"struct.J<K::L, false, int>::Node", ptr %call.i.i, i32 0, i32 0
br label %_ZN1NIN1K1LELi0EE11getOrInsertIiEE1AIPS1_ET_.exit.i
_ZN1NIN1K1LELi0EE11getOrInsertIiEE1AIPS1_ET_.exit.i: ; preds = %if.then.i.i, %entry
- %retval.sroa.0.0.i.i = phi %"class.K::L"* [ %Payload.i.i, %if.then.i.i ], [ undef, %entry ]
- %call4.i = call %"struct.K::M"* @_ZN1FIN1K1MEE3getEv(%struct.F* undef)
- call void @llvm.dbg.value(metadata %"struct.K::M"* %call4.i, metadata !7, metadata !11), !dbg !12
- call void @llvm.dbg.value(metadata %"struct.K::M"* %call4.i, metadata !7, metadata !18), !dbg !12
- %Handle2.i.i.i.i.i = getelementptr inbounds %"struct.K::M", %"struct.K::M"* %call4.i, i32 0, i32 0, i32 0
- %Handle.i.i.i.i.i = getelementptr inbounds %"struct.K::M", %"struct.K::M"* %call4.i, i32 0, i32 1, i32 0
- %4 = getelementptr inbounds %"class.K::L", %"class.K::L"* %retval.sroa.0.0.i.i, i32 0, i32 0, i32 0
+ %retval.sroa.0.0.i.i = phi ptr [ %Payload.i.i, %if.then.i.i ], [ undef, %entry ]
+ %call4.i = call ptr @_ZN1FIN1K1MEE3getEv(ptr undef)
+ call void @llvm.dbg.value(metadata ptr %call4.i, metadata !7, metadata !11), !dbg !12
+ call void @llvm.dbg.value(metadata ptr %call4.i, metadata !7, metadata !18), !dbg !12
+ %Handle.i.i.i.i.i = getelementptr inbounds %"struct.K::M", ptr %call4.i, i32 0, i32 1, i32 0
br label %while.body.i.i.i.i
while.body.i.i.i.i:
- %5 = load i32, i32* %4, align 4
+ %2 = load i32, ptr %retval.sroa.0.0.i.i, align 4
%call.i.i.i.i.i.i = call i32 @_Z6get_idv(), !dbg !12
- %call.i.i.i.i.i.i.i = call zeroext i1 @_Z24__libcpp_thread_id_equalii(i32 %5, i32 %call.i.i.i.i.i.i)
- %6 = load i32, i32* %Handle2.i.i.i.i.i, align 4
- call void @_ZN23ConditionPlatformHelper4waitERii(i32* nonnull dereferenceable(4) %Handle.i.i.i.i.i, i32 %6)
+ %call.i.i.i.i.i.i.i = call zeroext i1 @_Z24__libcpp_thread_id_equalii(i32 %2, i32 %call.i.i.i.i.i.i)
+ %3 = load i32, ptr %call4.i, align 4
+ call void @_ZN23ConditionPlatformHelper4waitERii(ptr nonnull dereferenceable(4) %Handle.i.i.i.i.i, i32 %3)
br label %while.body.i.i.i.i
}
-declare i64 @_Z8getCacheP23ConditionPlatformHelper(%struct.ConditionPlatformHelper*) local_unnamed_addr
+declare i64 @_Z8getCacheP23ConditionPlatformHelper(ptr) local_unnamed_addr
-declare %"struct.K::M"* @_ZN1FIN1K1MEE3getEv(%struct.F*) local_unnamed_addr
+declare ptr @_ZN1FIN1K1MEE3getEv(ptr) local_unnamed_addr
-declare %"struct.J<K::L, false, int>::Node"* @_ZN1BIPN1JIN1K1LELb0EiE4NodeEE4loadEv(%struct.B*) local_unnamed_addr
+declare ptr @_ZN1BIPN1JIN1K1LELb0EiE4NodeEE4loadEv(ptr) local_unnamed_addr
declare i32 @_Z6get_idv() local_unnamed_addr
declare zeroext i1 @_Z24__libcpp_thread_id_equalii(i32, i32) local_unnamed_addr
-declare void @_ZN23ConditionPlatformHelper4waitERii(i32* dereferenceable(4), i32) local_unnamed_addr
+declare void @_ZN23ConditionPlatformHelper4waitERii(ptr dereferenceable(4), i32) local_unnamed_addr
; Function Attrs: nounwind readnone
declare void @llvm.dbg.value(metadata, metadata, metadata) #1
define i32 @test(i32 %a) nounwind uwtable ssp !dbg !5 {
entry:
%a.addr = alloca i32, align 4
- store i32 %a, i32* %a.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %a.addr, metadata !15, metadata !DIExpression()), !dbg !16
- %0 = load i32, i32* %a.addr, align 4, !dbg !17
+ store i32 %a, ptr %a.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %a.addr, metadata !15, metadata !DIExpression()), !dbg !16
+ %0 = load i32, ptr %a.addr, align 4, !dbg !17
%call = call i32 @fn(i32 %0), !dbg !17
ret i32 %call, !dbg !17
}
define i32 @fn(i32 %a) nounwind uwtable ssp !dbg !13 {
entry:
%a.addr = alloca i32, align 4
- store i32 %a, i32* %a.addr, align 4
- call void @llvm.dbg.declare(metadata i32* %a.addr, metadata !19, metadata !DIExpression()), !dbg !20
- %0 = load i32, i32* %a.addr, align 4, !dbg !21
+ store i32 %a, ptr %a.addr, align 4
+ call void @llvm.dbg.declare(metadata ptr %a.addr, metadata !19, metadata !DIExpression()), !dbg !20
+ %0 = load i32, ptr %a.addr, align 4, !dbg !21
ret i32 %0, !dbg !21
}
entry:
%retval = alloca i32, align 4
%i = alloca [2 x i32], align 4
- store i32 0, i32* %retval
- call void @llvm.dbg.declare(metadata [2 x i32]* %i, metadata !10, metadata !DIExpression()), !dbg !15
+ store i32 0, ptr %retval
+ call void @llvm.dbg.declare(metadata ptr %i, metadata !10, metadata !DIExpression()), !dbg !15
ret i32 0, !dbg !16
}
@glbl = dso_local global i32 0, align 4, !dbg !0
@n = dso_local global %"struct.y_impl<int>::nested" zeroinitializer, align 1, !dbg !10
@_Z3varIiE = linkonce_odr dso_local global i32 0, comdat, align 4, !dbg !18
-@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__sub_I_test.cpp, i8* null }]
+@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @_GLOBAL__sub_I_test.cpp, ptr null }]
; Function Attrs: noinline uwtable
define internal void @__cxx_global_var_init() #0 section ".text.startup" !dbg !28 {
entry:
%call = call i32 @_Z4funcILi3EXadL_Z4glblEE6y_implLDn0EL1e255EJLi1ELi2EEEiv(), !dbg !31
- store i32 %call, i32* @glbl, align 4, !dbg !32
+ store i32 %call, ptr @glbl, align 4, !dbg !32
ret void, !dbg !31
}
; Function Attrs: mustprogress noinline nounwind optnone uwtable
define linkonce_odr dso_local i32 @_Z4funcILi3EXadL_Z4glblEE6y_implLDn0EL1e255EJLi1ELi2EEEiv() #1 comdat !dbg !33 {
entry:
- store i32 5, i32* @_Z3varIiE, align 4, !dbg !48
- %0 = load i32, i32* @_Z3varIiE, align 4, !dbg !49
+ store i32 5, ptr @_Z3varIiE, align 4, !dbg !48
+ %0 = load i32, ptr @_Z3varIiE, align 4, !dbg !49
ret i32 %0, !dbg !50
}
!35 = !{!17}
!36 = !{!37, !38, !40, !41, !43, !44}
!37 = !DITemplateValueParameter(name: "x", type: !17, value: i32 3)
-!38 = !DITemplateValueParameter(type: !39, value: i32* @glbl)
+!38 = !DITemplateValueParameter(type: !39, value: ptr @glbl)
!39 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !17, size: 64)
!40 = !DITemplateValueParameter(tag: DW_TAG_GNU_template_template_param, name: "y", value: !"y_impl")
!41 = !DITemplateValueParameter(name: "n", type: !42, value: i8 0)
%class.A = type { i32, i32 }
; Function Attrs: ssp uwtable
-define noalias nonnull %struct.B* @_Z4getBv() local_unnamed_addr #0 !dbg !7 {
+define noalias nonnull ptr @_Z4getBv() local_unnamed_addr #0 !dbg !7 {
entry:
- %call = tail call i8* @_Znwm(i64 12) #3, !dbg !20
- %0 = bitcast i8* %call to %struct.B*, !dbg !20
- tail call void @llvm.dbg.value(metadata %struct.B* %0, metadata !21, metadata !28), !dbg !29
- tail call void @llvm.dbg.value(metadata %struct.B* %0, metadata !31, metadata !28), !dbg !34
- tail call void @llvm.dbg.value(metadata %struct.B* %0, metadata !36, metadata !44), !dbg !45
- tail call void @llvm.dbg.value(metadata %struct.B* %0, metadata !47, metadata !44), !dbg !50
- %a1.i.i.i.i = bitcast i8* %call to i32*, !dbg !52
- store i32 23, i32* %a1.i.i.i.i, align 4, !dbg !52, !tbaa !53
- %a2.i.i.i.i = getelementptr inbounds i8, i8* %call, i64 4, !dbg !58
- %1 = bitcast i8* %a2.i.i.i.i to i32*, !dbg !58
- store i32 42, i32* %1, align 4, !dbg !58, !tbaa !59
- %b.i.i = getelementptr inbounds i8, i8* %call, i64 8, !dbg !60
- %2 = bitcast i8* %b.i.i to i32*, !dbg !60
- store i32 48, i32* %2, align 4, !dbg !60, !tbaa !61
- ret %struct.B* %0, !dbg !63
+ %call = tail call ptr @_Znwm(i64 12) #3, !dbg !20
+ tail call void @llvm.dbg.value(metadata ptr %call, metadata !21, metadata !28), !dbg !29
+ tail call void @llvm.dbg.value(metadata ptr %call, metadata !31, metadata !28), !dbg !34
+ tail call void @llvm.dbg.value(metadata ptr %call, metadata !36, metadata !44), !dbg !45
+ tail call void @llvm.dbg.value(metadata ptr %call, metadata !47, metadata !44), !dbg !50
+ store i32 23, ptr %call, align 4, !dbg !52, !tbaa !53
+ %a2.i.i.i.i = getelementptr inbounds i8, ptr %call, i64 4, !dbg !58
+ store i32 42, ptr %a2.i.i.i.i, align 4, !dbg !58, !tbaa !59
+ %b.i.i = getelementptr inbounds i8, ptr %call, i64 8, !dbg !60
+ store i32 48, ptr %b.i.i, align 4, !dbg !60, !tbaa !61
+ ret ptr %call, !dbg !63
}
-declare noalias nonnull i8* @_Znwm(i64) local_unnamed_addr #1
+declare noalias nonnull ptr @_Znwm(i64) local_unnamed_addr #1
declare void @llvm.dbg.value(metadata, metadata, metadata) #2
attributes #0 = { ssp uwtable }
!13 = !DISubroutineType(types: !14)
!14 = !{!3}
!15 = !{!16}
-!16 = !DITemplateValueParameter(name: "I", type: !17, value: i32* @glbl)
+!16 = !DITemplateValueParameter(name: "I", type: !17, value: ptr @glbl)
!17 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !3, size: 64, align: 64)
!18 = !DILocation(line: 6, scope: !12)
entry:
%0 = alloca %struct.foo, align 4
%1 = alloca %struct.bar, align 1
- %coerce.dive = getelementptr inbounds %struct.foo, %struct.foo* %0, i32 0, i32 0
- %2 = bitcast [1 x i32]* %coerce.dive to i32*
- store i32 %.coerce, i32* %2, align 4
- call void @llvm.dbg.declare(metadata %struct.foo* %0, metadata !19, metadata !DIExpression()), !dbg !20
- call void @llvm.dbg.declare(metadata %struct.bar* %1, metadata !21, metadata !DIExpression()), !dbg !22
+ store i32 %.coerce, ptr %0, align 4
+ call void @llvm.dbg.declare(metadata ptr %0, metadata !19, metadata !DIExpression()), !dbg !20
+ call void @llvm.dbg.declare(metadata ptr %1, metadata !21, metadata !DIExpression()), !dbg !22
ret void, !dbg !23
}
%class.ref_internal_template = type { %"struct.(anonymous namespace)::internal_template" }
%"struct.(anonymous namespace)::internal_template" = type { i8 }
%class.ref_from_ref_internal_template = type { i8 }
-%struct.non_tu = type { i32 (...)** }
-%struct.templ_non_tu = type { i32 (...)** }
-%struct.templ_non_tu.0 = type { i32 (...)** }
-%struct.templ_non_tu.1 = type { i32 (...)** }
+%struct.non_tu = type { ptr }
+%struct.templ_non_tu = type { ptr }
+%struct.templ_non_tu.0 = type { ptr }
+%struct.templ_non_tu.1 = type { ptr }
-@_ZTV6non_tu = dso_local unnamed_addr constant { [3 x i8*] } { [3 x i8*] [i8* null, i8* bitcast ({ i8*, i8* }* @_ZTI6non_tu to i8*), i8* bitcast (void (%struct.non_tu*)* @_ZN6non_tu2f1Ev to i8*)] }, align 8
-@v1 = dso_local global { { i8** } } { { i8** } { i8** getelementptr inbounds ({ [3 x i8*] }, { [3 x i8*] }* @_ZTV6non_tu, i32 0, inrange i32 0, i32 2) } }, align 8, !dbg !0
+@_ZTV6non_tu = dso_local unnamed_addr constant { [3 x ptr] } { [3 x ptr] [ptr null, ptr @_ZTI6non_tu, ptr @_ZN6non_tu2f1Ev] }, align 8
+@v1 = dso_local global { { ptr } } { { ptr } { ptr getelementptr inbounds ({ [3 x ptr] }, ptr @_ZTV6non_tu, i32 0, inrange i32 0, i32 2) } }, align 8, !dbg !0
@v5 = dso_local global %struct.ref_internal zeroinitializer, align 1, !dbg !5
-@_ZTV12templ_non_tuIiE = dso_local unnamed_addr constant { [3 x i8*] } { [3 x i8*] [i8* null, i8* bitcast ({ i8*, i8* }* @_ZTI12templ_non_tuIiE to i8*), i8* bitcast (void (%struct.templ_non_tu*)* @_ZN12templ_non_tuIiE2f1Ev to i8*)] }, align 8
-@v2 = dso_local global { { i8** } } { { i8** } { i8** getelementptr inbounds ({ [3 x i8*] }, { [3 x i8*] }* @_ZTV12templ_non_tuIiE, i32 0, inrange i32 0, i32 2) } }, align 8, !dbg !13
-@_ZTV12templ_non_tuIlE = dso_local unnamed_addr constant { [3 x i8*] } { [3 x i8*] [i8* null, i8* bitcast ({ i8*, i8* }* @_ZTI12templ_non_tuIlE to i8*), i8* bitcast (void (%struct.templ_non_tu.0*)* @_ZN12templ_non_tuIlE2f1Ev to i8*)] }, align 8
-@v3 = dso_local global { { i8** } } { { i8** } { i8** getelementptr inbounds ({ [3 x i8*] }, { [3 x i8*] }* @_ZTV12templ_non_tuIlE, i32 0, inrange i32 0, i32 2) } }, align 8, !dbg !32
-@_ZTV12templ_non_tuIbE = dso_local unnamed_addr constant { [3 x i8*] } { [3 x i8*] [i8* null, i8* bitcast ({ i8*, i8* }* @_ZTI12templ_non_tuIbE to i8*), i8* bitcast (void (%struct.templ_non_tu.1*)* @_ZN12templ_non_tuIbE2f1Ev to i8*)] }, align 8
-@v4 = dso_local global { { i8** } } { { i8** } { i8** getelementptr inbounds ({ [3 x i8*] }, { [3 x i8*] }* @_ZTV12templ_non_tuIbE, i32 0, inrange i32 0, i32 2) } }, align 8, !dbg !46
+@_ZTV12templ_non_tuIiE = dso_local unnamed_addr constant { [3 x ptr] } { [3 x ptr] [ptr null, ptr @_ZTI12templ_non_tuIiE, ptr @_ZN12templ_non_tuIiE2f1Ev] }, align 8
+@v2 = dso_local global { { ptr } } { { ptr } { ptr getelementptr inbounds ({ [3 x ptr] }, ptr @_ZTV12templ_non_tuIiE, i32 0, inrange i32 0, i32 2) } }, align 8, !dbg !13
+@_ZTV12templ_non_tuIlE = dso_local unnamed_addr constant { [3 x ptr] } { [3 x ptr] [ptr null, ptr @_ZTI12templ_non_tuIlE, ptr @_ZN12templ_non_tuIlE2f1Ev] }, align 8
+@v3 = dso_local global { { ptr } } { { ptr } { ptr getelementptr inbounds ({ [3 x ptr] }, ptr @_ZTV12templ_non_tuIlE, i32 0, inrange i32 0, i32 2) } }, align 8, !dbg !32
+@_ZTV12templ_non_tuIbE = dso_local unnamed_addr constant { [3 x ptr] } { [3 x ptr] [ptr null, ptr @_ZTI12templ_non_tuIbE, ptr @_ZN12templ_non_tuIbE2f1Ev] }, align 8
+@v4 = dso_local global { { ptr } } { { ptr } { ptr getelementptr inbounds ({ [3 x ptr] }, ptr @_ZTV12templ_non_tuIbE, i32 0, inrange i32 0, i32 2) } }, align 8, !dbg !46
@v6 = dso_local global %class.ref_internal_template zeroinitializer, align 1, !dbg !60
@v7 = dso_local global %class.ref_from_ref_internal_template zeroinitializer, align 1, !dbg !69
-@_ZTVN10__cxxabiv117__class_type_infoE = external dso_local global i8*
+@_ZTVN10__cxxabiv117__class_type_infoE = external dso_local global ptr
@_ZTS6non_tu = dso_local constant [8 x i8] c"6non_tu\00", align 1
-@_ZTI6non_tu = dso_local constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv117__class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @_ZTS6non_tu, i32 0, i32 0) }, align 8
+@_ZTI6non_tu = dso_local constant { ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv117__class_type_infoE, i64 2), ptr @_ZTS6non_tu }, align 8
@_ZTS12templ_non_tuIiE = dso_local constant [18 x i8] c"12templ_non_tuIiE\00", align 1
-@_ZTI12templ_non_tuIiE = dso_local constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv117__class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @_ZTS12templ_non_tuIiE, i32 0, i32 0) }, align 8
+@_ZTI12templ_non_tuIiE = dso_local constant { ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv117__class_type_infoE, i64 2), ptr @_ZTS12templ_non_tuIiE }, align 8
@_ZTS12templ_non_tuIlE = dso_local constant [18 x i8] c"12templ_non_tuIlE\00", align 1
-@_ZTI12templ_non_tuIlE = dso_local constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv117__class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @_ZTS12templ_non_tuIlE, i32 0, i32 0) }, align 8
+@_ZTI12templ_non_tuIlE = dso_local constant { ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv117__class_type_infoE, i64 2), ptr @_ZTS12templ_non_tuIlE }, align 8
@_ZTS12templ_non_tuIbE = dso_local constant [18 x i8] c"12templ_non_tuIbE\00", align 1
-@_ZTI12templ_non_tuIbE = dso_local constant { i8*, i8* } { i8* bitcast (i8** getelementptr inbounds (i8*, i8** @_ZTVN10__cxxabiv117__class_type_infoE, i64 2) to i8*), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @_ZTS12templ_non_tuIbE, i32 0, i32 0) }, align 8
+@_ZTI12templ_non_tuIbE = dso_local constant { ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv117__class_type_infoE, i64 2), ptr @_ZTS12templ_non_tuIbE }, align 8
; Function Attrs: mustprogress noinline nounwind optnone uwtable
-define dso_local void @_ZN6non_tu2f1Ev(%struct.non_tu* noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #0 align 2 !dbg !87 {
+define dso_local void @_ZN6non_tu2f1Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #0 align 2 !dbg !87 {
entry:
- %this.addr = alloca %struct.non_tu*, align 8
- store %struct.non_tu* %this, %struct.non_tu** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %struct.non_tu** %this.addr, metadata !88, metadata !DIExpression()), !dbg !90
- %this1 = load %struct.non_tu*, %struct.non_tu** %this.addr, align 8
+ %this.addr = alloca ptr, align 8
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !88, metadata !DIExpression()), !dbg !90
+ %this1 = load ptr, ptr %this.addr, align 8
ret void, !dbg !91
}
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
; Function Attrs: mustprogress noinline nounwind optnone uwtable
-define dso_local void @_ZN12templ_non_tuIiE2f1Ev(%struct.templ_non_tu* noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #0 align 2 !dbg !92 {
+define dso_local void @_ZN12templ_non_tuIiE2f1Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #0 align 2 !dbg !92 {
entry:
- %this.addr = alloca %struct.templ_non_tu*, align 8
- store %struct.templ_non_tu* %this, %struct.templ_non_tu** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %struct.templ_non_tu** %this.addr, metadata !93, metadata !DIExpression()), !dbg !95
- %this1 = load %struct.templ_non_tu*, %struct.templ_non_tu** %this.addr, align 8
+ %this.addr = alloca ptr, align 8
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !93, metadata !DIExpression()), !dbg !95
+ %this1 = load ptr, ptr %this.addr, align 8
ret void, !dbg !96
}
; Function Attrs: mustprogress noinline nounwind optnone uwtable
-define dso_local void @_ZN12templ_non_tuIlE2f1Ev(%struct.templ_non_tu.0* noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #0 align 2 !dbg !97 {
+define dso_local void @_ZN12templ_non_tuIlE2f1Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #0 align 2 !dbg !97 {
entry:
- %this.addr = alloca %struct.templ_non_tu.0*, align 8
- store %struct.templ_non_tu.0* %this, %struct.templ_non_tu.0** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %struct.templ_non_tu.0** %this.addr, metadata !98, metadata !DIExpression()), !dbg !100
- %this1 = load %struct.templ_non_tu.0*, %struct.templ_non_tu.0** %this.addr, align 8
+ %this.addr = alloca ptr, align 8
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !98, metadata !DIExpression()), !dbg !100
+ %this1 = load ptr, ptr %this.addr, align 8
ret void, !dbg !101
}
; Function Attrs: mustprogress noinline nounwind optnone uwtable
-define dso_local void @_ZN12templ_non_tuIbE2f1Ev(%struct.templ_non_tu.1* noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #0 align 2 !dbg !102 {
+define dso_local void @_ZN12templ_non_tuIbE2f1Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #0 align 2 !dbg !102 {
entry:
- %this.addr = alloca %struct.templ_non_tu.1*, align 8
- store %struct.templ_non_tu.1* %this, %struct.templ_non_tu.1** %this.addr, align 8
- call void @llvm.dbg.declare(metadata %struct.templ_non_tu.1** %this.addr, metadata !103, metadata !DIExpression()), !dbg !105
- %this1 = load %struct.templ_non_tu.1*, %struct.templ_non_tu.1** %this.addr, align 8
+ %this.addr = alloca ptr, align 8
+ store ptr %this, ptr %this.addr, align 8
+ call void @llvm.dbg.declare(metadata ptr %this.addr, metadata !103, metadata !DIExpression()), !dbg !105
+ %this1 = load ptr, ptr %this.addr, align 8
ret void, !dbg !106
}
!6 = !DICompositeType(tag: DW_TAG_structure_type, name: "S1<&i>", file: !2, line: 4, size: 8, align: 8, elements: !7, templateParams: !8, identifier: "_ZTS2S1IXadL_Z1iEEE")
!7 = !{}
!8 = !{!9}
-!9 = !DITemplateValueParameter(name: "I", type: !10, value: i32* @i)
+!9 = !DITemplateValueParameter(name: "I", type: !10, value: ptr @i)
!10 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !3, size: 64, align: 64)
!11 = !DIGlobalVariableExpression(var: !12, expr: !DIExpression())
!12 = !DIGlobalVariable(name: "s2", scope: null, file: !2, line: 15, type: !13, isLocal: false, isDefinition: true)
!31 = !DIDerivedType(tag: DW_TAG_member, name: "s4_2", scope: !27, file: !2, line: 36, baseType: !32, size: 8, align: 8, offset: 8)
!32 = !DICompositeType(tag: DW_TAG_structure_type, name: "S4_2<&i>", file: !2, line: 32, size: 8, align: 8, elements: !7, templateParams: !33, identifier: "_ZTS4S4_2IXadL_Z1iEEE")
!33 = !{!34}
-!34 = !DITemplateValueParameter(name: "T", type: !10, value: i32* @i)
+!34 = !DITemplateValueParameter(name: "T", type: !10, value: ptr @i)
!35 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !2, producer: "clang version 3.5.0 ", isOptimized: false, runtimeVersion: 0, splitDebugFilename: "tu.dwo", emissionKind: FullDebug, enums: !7, retainedTypes: !36, globals: !37, imports: !7)
!36 = !{!6, !13, !16, !19, !22, !24, !27, !30, !32}
!37 = !{!0, !4, !11, !17, !25}
; Function Attrs: nounwind readnone ssp uwtable
define i32 @mfi_aen_setup() #0 !dbg !4 {
entry:
- tail call void @llvm.dbg.declare(metadata %union.mfi_evt* undef, metadata !16, metadata !21), !dbg !22
+ tail call void @llvm.dbg.declare(metadata ptr undef, metadata !16, metadata !21), !dbg !22
tail call void @llvm.dbg.value(metadata i32 0, metadata !16, metadata !21), !dbg !22
ret i32 undef, !dbg !23
}
; #define DECLARE_ARRAY(type, var_name, size) type var_name[size]
;
; void h(void);
-; void k(void *);
+; void k(ptr);
;
; void g() {
; h();
; void h() {
; int count = 2;
; DECLARE_ARRAY(int, array, count);
-; k((void *)array);
+; k((ptr)array);
; }
source_filename = "/tmp/test.c"
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
define void @g() local_unnamed_addr #0 !dbg !10 {
entry:
%vla2.i = alloca [2 x i32], align 16, !dbg !13
- call void @llvm.dbg.declare(metadata [2 x i32]* %vla2.i, metadata !20, metadata !DIExpression(DW_OP_stack_value)), !dbg !13
- %0 = bitcast [2 x i32]* %vla2.i to i8*, !dbg !25
- call void @llvm.lifetime.start.p0i8(i64 8, i8* nonnull %0), !dbg !25
+ call void @llvm.dbg.declare(metadata ptr %vla2.i, metadata !20, metadata !DIExpression(DW_OP_stack_value)), !dbg !13
+ call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %vla2.i), !dbg !25
call void @llvm.dbg.value(metadata i32 2, metadata !16, metadata !DIExpression()) #3, !dbg !25
call void @llvm.dbg.value(metadata i64 2, metadata !18, metadata !DIExpression()) #3, !dbg !13
call void @llvm.dbg.value(metadata i32 2, metadata !16, metadata !DIExpression()) #3, !dbg !25
call void @llvm.dbg.value(metadata i64 2, metadata !18, metadata !DIExpression()) #3, !dbg !13
- call void @k(i8* nonnull %0) #3, !dbg !26
- call void @llvm.lifetime.end.p0i8(i64 8, i8* nonnull %0), !dbg !27
+ call void @k(ptr nonnull %vla2.i) #3, !dbg !26
+ call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %vla2.i), !dbg !27
ret void, !dbg !28
}
; Function Attrs: nounwind readnone speculatable
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
-declare void @k(i8*) local_unnamed_addr
+declare void @k(ptr) local_unnamed_addr
; Function Attrs: nounwind readnone speculatable
declare void @llvm.dbg.value(metadata, metadata, metadata) #1
; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #2
+declare void @llvm.lifetime.start.p0(i64, ptr nocapture) #2
; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #2
+declare void @llvm.lifetime.end.p0(i64, ptr nocapture) #2
attributes #0 = { nounwind ssp uwtable }
attributes #1 = { nounwind readnone speculatable }
define dso_local void @b() local_unnamed_addr #0 !dbg !7 {
entry:
%c = alloca i64, align 1, !DIAssignID !13
- call void @llvm.dbg.assign(metadata i1 undef, metadata !11, metadata !DIExpression(), metadata !13, metadata i64* %c, metadata !DIExpression()), !dbg !14
- call void @llvm.lifetime.start.p0i64(i64 1, i64* nonnull %c) #4, !dbg !15
- store i64 5, i64* %c, align 1, !dbg !16, !DIAssignID !20
- call void @llvm.dbg.assign(metadata i64 5, metadata !11, metadata !DIExpression(), metadata !20, metadata i64* %c, metadata !DIExpression()), !dbg !14
+ call void @llvm.dbg.assign(metadata i1 undef, metadata !11, metadata !DIExpression(), metadata !13, metadata ptr %c, metadata !DIExpression()), !dbg !14
+ call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %c) #4, !dbg !15
+ store i64 5, ptr %c, align 1, !dbg !16, !DIAssignID !20
+ call void @llvm.dbg.assign(metadata i64 5, metadata !11, metadata !DIExpression(), metadata !20, metadata ptr %c, metadata !DIExpression()), !dbg !14
tail call void (...) @d() #4, !dbg !21
; --- VV Hand written VV --- ;
- %bc = bitcast i64* %c to i32*
- store i32 1, i32* %bc, align 1, !dbg !16, !DIAssignID !31
+ store i32 1, ptr %c, align 1, !dbg !16, !DIAssignID !31
;; Check that a dbg.value(undef, frag(0, 32)) is inserted here. The value of
;; the fragment is "unknown". TODO: In this case the value of the fragment is
;; still obviously 5; a future improvement could be to be smarter and work
;; this out. But that's a lot of work for an uncommon case.
tail call void (...) @d() #4, !dbg !21
- call void @llvm.dbg.assign(metadata i32 1, metadata !11, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32), metadata !31, metadata i32* %bc, metadata !DIExpression()), !dbg !14
+ call void @llvm.dbg.assign(metadata i32 1, metadata !11, metadata !DIExpression(DW_OP_LLVM_fragment, 0, 32), metadata !31, metadata ptr %c, metadata !DIExpression()), !dbg !14
; --- AA Hand written AA --- ;
- call void @a(i64* nonnull %c) #4, !dbg !22
- call void @llvm.lifetime.end.p0i64(i64 1, i64* nonnull %c) #4, !dbg !23
+ call void @a(ptr nonnull %c) #4, !dbg !22
+ call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %c) #4, !dbg !23
ret void, !dbg !23
}
-declare void @llvm.lifetime.start.p0i64(i64 immarg, i64* nocapture) #1
+declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #1
declare !dbg !24 dso_local void @d(...) local_unnamed_addr #2
-declare !dbg !27 dso_local void @a(i64*) local_unnamed_addr #2
-declare void @llvm.lifetime.end.p0i64(i64 immarg, i64* nocapture) #1
+declare !dbg !27 dso_local void @a(ptr) local_unnamed_addr #2
+declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata) #3
!llvm.dbg.cu = !{!0}
define dso_local void @b() local_unnamed_addr #0 !dbg !7 {
entry:
%c = alloca i8, align 1, !DIAssignID !13
- call void @llvm.dbg.assign(metadata i1 undef, metadata !11, metadata !DIExpression(), metadata !13, metadata i8* %c, metadata !DIExpression()), !dbg !14
- call void @llvm.lifetime.start.p0i8(i64 1, i8* nonnull %c) #4, !dbg !15
- store i8 0, i8* %c, align 1, !dbg !16, !DIAssignID !20
- call void @llvm.dbg.assign(metadata i8 0, metadata !11, metadata !DIExpression(), metadata !20, metadata i8* %c, metadata !DIExpression()), !dbg !14
+ call void @llvm.dbg.assign(metadata i1 undef, metadata !11, metadata !DIExpression(), metadata !13, metadata ptr %c, metadata !DIExpression()), !dbg !14
+ call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %c) #4, !dbg !15
+ store i8 0, ptr %c, align 1, !dbg !16, !DIAssignID !20
+ call void @llvm.dbg.assign(metadata i8 0, metadata !11, metadata !DIExpression(), metadata !20, metadata ptr %c, metadata !DIExpression()), !dbg !14
tail call void (...) @d() #4, !dbg !21
; --- VV Hand written VV --- ;
- store i8 1, i8* %c, align 1, !dbg !16, !DIAssignID !31
+ store i8 1, ptr %c, align 1, !dbg !16, !DIAssignID !31
; Check that a dbg.value(0) is inserted here.
tail call void (...) @d() #4, !dbg !21
- call void @llvm.dbg.assign(metadata i8 1, metadata !11, metadata !DIExpression(), metadata !31, metadata i8* %c, metadata !DIExpression()), !dbg !14
+ call void @llvm.dbg.assign(metadata i8 1, metadata !11, metadata !DIExpression(), metadata !31, metadata ptr %c, metadata !DIExpression()), !dbg !14
; --- AA Hand written AA --- ;
- call void @a(i8* nonnull %c) #4, !dbg !22
- call void @llvm.lifetime.end.p0i8(i64 1, i8* nonnull %c) #4, !dbg !23
+ call void @a(ptr nonnull %c) #4, !dbg !22
+ call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %c) #4, !dbg !23
ret void, !dbg !23
}
-declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) #1
+declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #1
declare !dbg !24 dso_local void @d(...) local_unnamed_addr #2
-declare !dbg !27 dso_local void @a(i8*) local_unnamed_addr #2
-declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) #1
+declare !dbg !27 dso_local void @a(ptr) local_unnamed_addr #2
+declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1
declare void @llvm.dbg.assign(metadata, metadata, metadata, metadata, metadata, metadata) #3
!llvm.dbg.cu = !{!0}