On Fri, Sep 11, 2015 at 4:45 PM, Evgenii Stepanov <euge...@google.com> wrote: > Does it say that there is no entry basic block? I.e. the output > apparently looks like > > define void @h() #1 { > store void ()* @f1, void ()** @p, align 8 > > Could you confirm it? Never seen this behavior. > > I'm going to revert the change due to this and also one broken gdb > test (something wrong with debug info in the code that has been > always-inlined twice).
I got [hjl@gnu-mic-2 llvm-clang]$ /export/build/gnu/llvm-clang/build-x86_64-linux/./bin/clang -target x86_64-pc-linux-gnu -mllvm -disable-llvm-optzns -emit-llvm -S -o - /export/gnu/import/git/llvm/tools/clang/test/CodeGen/always_inline.c ; ModuleID = '/export/gnu/import/git/llvm/tools/clang/test/CodeGen/always_inline.c' target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-pc-linux-gnu" ; Function Attrs: nounwind uwtable define i32 @f1() #0 { %1 = call i32 @f0.alwaysinline() ret i32 %1 } ; Function Attrs: alwaysinline inlinehint nounwind uwtable define internal i32 @f2.alwaysinline() #1 { ret i32 7 } ; Function Attrs: inlinehint nounwind uwtable define i32 @f2() #2 { entry: %0 = musttail call i32 @f2.alwaysinline() #2 ret i32 %0 } ; Function Attrs: nounwind uwtable define i32 @f3() #0 { %1 = call i32 @f2.alwaysinline() ret i32 %1 } ; Function Attrs: alwaysinline nounwind uwtable define internal i32 @f0.alwaysinline() #3 { ret i32 1 } attributes #0 = { nounwind uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #1 = { alwaysinline inlinehint nounwind uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #2 = { inlinehint nounwind uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #3 = { alwaysinline nounwind uwtable "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+sse,+sse2" "unsafe-fp-math"="false" "use-soft-float"="false" } !llvm.ident = !{!0} !0 = !{!"clang version 3.8.0 (http://llvm.org/git/clang.git 4c682cf50f928f82e286df97d10a3d1fcf68e1a1) (http://llvm.org/git/llvm.git 125be70dbf9784ef4fab69633afa067c1cceffc9)"} [hjl@gnu-mic-2 llvm-clang]$ [hjl@gnu-mic-2 llvm-clang]$ /export/build/gnu/llvm-clang/build-x86_64-linux/./bin/clang -target x86_64-pc-linux-gnu -mllvm -disable-llvm-optzns -emit-llvm -S -o - /export/gnu/import/git/llvm/tools/clang/test/CodeGen/always_inline.c | /export/build/gnu/llvm-clang/build-x86_64-linux/./bin/FileCheck /export/gnu/import/git/llvm/tools/clang/test/CodeGen/always_inline.c --check-prefix=CHECK-NO-OPTZNS /export/gnu/import/git/llvm/tools/clang/test/CodeGen/always_inline.c:26:26: error: expected string not found in input // CHECK-NO-OPTZNS-NEXT: entry: ^ <stdin>:24:18: note: scanning from here define i32 @f3() #0 { ^ <stdin>:29:12: note: possible intended match here ; Function Attrs: alwaysinline nounwind uwtable ^ [hjl@gnu-mic-2 llvm-clang]$ _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits