[PATCH] D16867: Debug Info: Allow SROAed complex floating point types to be described by constants
Adrian Prantl via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 4 09:56:37 PST 2016
aprantl added a comment.
You're correct, it looks like there is also a bug in SROA / Local that is causing the imaginary part to be dropped:
- IR Dump After Simplify the CFG ***
; Function Attrs: nounwind optsize
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 !10, metadata !16), !dbg !17
%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 double 0.000000e+00, double* %c.imagp, align 8, !dbg !17
ret void, !dbg !17
}
- IR Dump After SROA ***
; Function Attrs: nounwind optsize
define arm_aapcscc void @f([2 x i64] %c.coerce) #0 !dbg !4 {
entry:
%c.coerce.fca.0.extract = extractvalue [2 x i64] %c.coerce, 0
call void @llvm.dbg.value(metadata i64 %c.coerce.fca.0.extract, i64 0, metadata !10, metadata !16), !dbg !17
%c.coerce.fca.1.extract = extractvalue [2 x i64] %c.coerce, 1
call void @llvm.dbg.value(metadata i64 %c.coerce.fca.1.extract, i64 0, metadata !10, metadata !18), !dbg !17
call void @llvm.dbg.declare(metadata { double, double }* undef, metadata !10, metadata !19), !dbg !17
call void @llvm.dbg.value(metadata i64 0, i64 0, metadata !10, metadata !16), !dbg !17
ret void, !dbg !17
}
Repository:
rL LLVM
http://reviews.llvm.org/D16867
More information about the llvm-commits
mailing list