thopre marked 2 inline comments as done. thopre added inline comments.
================ Comment at: clang/test/CodeGenCXX/split-stacks.cpp:30 // CHECK-NOSEGSTK: define dso_local i32 @_Z7nosplitv() [[NSS1:#[0-9]+]] { // CHECK-NOSEGSTK: define linkonce_odr dso_local i32 @_Z8tnosplitIiEiv() [[NSS2:#[0-9]+]] comdat { +// CHECK-NOSEGSTK-NOT: [[NSS0]] = { {{.*}} "split-stack" {{.*}} } ---------------- ChuanqiXu wrote: > thopre wrote: > > ChuanqiXu wrote: > > > thopre wrote: > > > > ChuanqiXu wrote: > > > > > I find NSS2 equals to NSS0, which is `#0`. It looks good to me if > > > > > this could handle the inconsistency. > > > > Only without split stack (second RUN line). With split stack I get: > > > > > > > > > > > > ``` > > > > ; Function Attrs: noinline nounwind optnone uwtable mustprogress > > > > define dso_local i32 @_Z3foov() #0 { > > > > entry: > > > > ret i32 0 > > > > } > > > > > > > > ; Function Attrs: noinline optnone uwtable mustprogress > > > > define dso_local i32 @_Z7nosplitv() #1 { > > > > entry: > > > > %call = call i32 @_Z8tnosplitIiEiv() > > > > ret i32 %call > > > > } > > > > > > > > ; Function Attrs: noinline nounwind optnone uwtable mustprogress > > > > define linkonce_odr dso_local i32 @_Z8tnosplitIiEiv() #2 comdat { > > > > entry: > > > > ret i32 0 > > > > } > > > > > > > > ``` > > > Yeah, this is what I get without split stack: > > > ``` > > > ; Function Attrs: noinline nounwind optnone uwtable mustprogress > > > define dso_local i32 @_Z3foov() #0 { > > > entry: > > > ret i32 0 > > > } > > > > > > ; Function Attrs: noinline optnone uwtable mustprogress > > > define dso_local i32 @_Z7nosplitv() #1 { > > > entry: > > > %call = call i32 @_Z8tnosplitIiEiv() > > > ret i32 %call > > > } > > > > > > ; Function Attrs: noinline nounwind optnone uwtable mustprogress > > > define linkonce_odr dso_local i32 @_Z8tnosplitIiEiv() #0 comdat { > > > entry: > > > ret i32 0 > > > } > > > > > > attributes #0 = { noinline nounwind optnone uwtable mustprogress > > > "frame-pointer"="all" "min-legal-vector-width"="0" > > > "no-trapping-math"="true" "stack-protector-buffer-size"="8" > > > "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" > > > "tune-cpu"="generic" } > > > attributes #1 = { noinline optnone uwtable mustprogress > > > "frame-pointer"="all" "min-legal-vector-width"="0" > > > "no-trapping-math"="true" "stack-protector-buffer-size"="8" > > > "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" > > > "tune-cpu"="generic" } > > > ``` > > > > > > My compiler version is latest trunk:2ea6ed9b70c6495342e39a7d1. > > We get the same thing. The code I pasted about was *with* split stack. > > Since it's the same FileCheck directive with and without split stack it > > makes sense to keep NSS0 and NSS2 separate otherwise the split-stack case > > would fail. > The FileCheck directive seems different with and without split stack. And the > number of attributes is different from what we paste. Ah my bad, you are absolutely right. Difference in attributes is not a problem since these are CHECK-NOT directives but I've changed it nonetheless. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D99839/new/ https://reviews.llvm.org/D99839 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits