Displaying 5 results from an estimated 5 matches for "_z3bazv".
Did you mean:
_z3barv
2020 Sep 16
2
[Debuginfo] Changing llvm.dbg.value and DBG_VALUE to support multiple location operands
...ree to emit the register location (DW_OP_reg0 RAX).
// Compile with clang -O2 -g
int baz();
int bar2(int arg) {
return arg * 4;
}
int bar() {
return bar2(1);
}
int foo() {
int a = baz() + bar() - 4;
return a * 2;
}
; Eventually becomes the IR...
%call = call i32 @_Z3bazv(), !dbg !25
%call1 = call i32 @_Z3barv(), !dbg !26
%add = add nsw i32 %call, %call1, !dbg !27
%sub = sub nsw i32 %add, 4, !dbg !28
call void @llvm.dbg.value(metadata i32 %sub, metadata !24, metadata !DIExpression()), !dbg !29
%mul = mul nsw i32 %sub, 2, !dbg !30
ret i32 %mul, !dbg !31...
2020 Sep 15
2
[Debuginfo] Changing llvm.dbg.value and DBG_VALUE to support multiple location operands
Hi Adrian & Stephen,
One thought here:
But — not all memory locations are l-values. If we have a DWARF location list for variable "x" which points to a memory address for the first n instructions and the switches to a constant for the remainder of the scope, the memory address is not guaranteed to be an l-value, because writing the the memory address cannot affect the later part of
2014 Nov 04
10
[LLVMdev] lifetime.start/end clarification
...%.pre-phi = phi i8* [ %.pre, %if.else.label_crit_edge ], [ %0, %if.then ]
call void @_Z3barR1X(%struct.X* dereferenceable(33) %x)
call void @llvm.lifetime.end(i64 33, i8* %.pre-phi)
br label %if.end3
if.else: ; preds = %entry
tail call void @_Z3bazv()
%cmp1 = icmp eq i32 %i, 0
br i1 %cmp1, label %if.else.label_crit_edge, label %if.end3
if.else.label_crit_edge: ; preds = %if.else
%.pre = getelementptr inbounds %struct.X* %x, i64 0, i32 0, i64 0
br label %label
if.end3:...
2014 Nov 04
3
[LLVMdev] lifetime.start/end clarification
...%if.then ]
> >
> > call void @_Z3barR1X(%struct.X* dereferenceable(33) %x)
> >
> > call void @llvm.lifetime.end(i64 33, i8* %.pre-phi)
> >
> > br label %if.end3
> >
> >
> >
> > if.else: ; preds = %entry
> >
> > tail call void @_Z3bazv()
> >
> > %cmp1 = icmp eq i32 %i, 0
> >
> > br i1 %cmp1, label %if.else.label_crit_edge, label %if.end3
> >
> >
> >
> > if.else.label_crit_edge: ; preds = %if.else
> >
> > %.pre = getelementptr inbounds %struct.X* %x, i64 0, i32 0, i64 0
&...
2014 Nov 05
2
[LLVMdev] lifetime.start/end clarification
...%.pre-phi = phi i8* [ %.pre, %if.else.label_crit_edge ], [ %0, %if.then ]
call void @_Z3barR1X(%struct.X* dereferenceable(33) %x)
call void @llvm.lifetime.end(i64 33, i8* %.pre-phi)
br label %if.end3
if.else: ; preds = %entry
tail call void @_Z3bazv()
%cmp1 = icmp eq i32 %i, 0
br i1 %cmp1, label %if.else.label_crit_edge, label %if.end3
if.else.label_crit_edge: ; preds = %if.else
%.pre = getelementptr inbounds %struct.X* %x, i64 0, i32 0, i64 0
br label %label
if.end3:...