Auto merge of #154468 - Kobzol:revert-154200, r=dingxiangfei2009

Revert "Rollup merge of #154200 - resrever:enable-dwarf-call-sites, r=dingxiangfei2009"

This reverts commit 2f1603077b, reversing
changes made to 6e3c17424d.

Debugging perf. hit from https://github.com/rust-lang/rust/pull/154384.

The binary size hits from https://github.com/rust-lang/rust/pull/154468#issuecomment-4144557076 were due to this PR, not all of the copmile-time hits though.
This commit is contained in:
bors
2026-03-28 16:59:18 +00:00
4 changed files with 3 additions and 28 deletions
@@ -471,7 +471,7 @@ fn dbg_scope_fn(
// FIXME(eddyb) does this need to be separate from `loc.line` for some reason?
let scope_line = loc.line;
let mut flags = DIFlags::FlagPrototyped | DIFlags::FlagAllCallsDescribed;
let mut flags = DIFlags::FlagPrototyped;
if fn_abi.ret.layout.is_uninhabited() {
flags |= DIFlags::FlagNoReturn;
@@ -494,9 +494,6 @@ fn dbg_scope_fn(
// LLVM LTO can't unify type definitions when a child DIE is a full subprogram definition.
// When we use this `decl` below, the subprogram definition gets created at the CU level
// with a DW_AT_specification pointing back to the type's declaration.
// FlagAllCallsDescribed cannot appear on the method declaration DIE
// because it has no body, which LLVM's verifier rejects.
let decl_flags = flags & !DIFlags::FlagAllCallsDescribed;
let decl = is_method.then(|| unsafe {
llvm::LLVMRustDIBuilderCreateMethod(
DIB(self),
@@ -508,7 +505,7 @@ fn dbg_scope_fn(
file_metadata,
loc.line,
function_type_metadata,
decl_flags,
flags,
spflags & !DISPFlags::SPFlagDefinition,
template_parameters,
)
@@ -781,7 +781,6 @@ pub(crate) struct DIFlags: u32 {
const FlagNonTrivial = (1 << 26);
const FlagBigEndian = (1 << 27);
const FlagLittleEndian = (1 << 28);
const FlagAllCallsDescribed = (1 << 29);
}
}
@@ -779,7 +779,6 @@ ASSERT_DIFLAG_VALUE(FlagThunk, 1 << 25);
ASSERT_DIFLAG_VALUE(FlagNonTrivial, 1 << 26);
ASSERT_DIFLAG_VALUE(FlagBigEndian, 1 << 27);
ASSERT_DIFLAG_VALUE(FlagLittleEndian, 1 << 28);
static_assert(DINode::DIFlags::FlagAllCallsDescribed == (1 << 29));
ASSERT_DIFLAG_VALUE(FlagIndirectVirtualBase, (1 << 2) | (1 << 5));
#undef ASSERT_DIFLAG_VALUE
@@ -792,7 +791,7 @@ ASSERT_DIFLAG_VALUE(FlagIndirectVirtualBase, (1 << 2) | (1 << 5));
// to copying each bit/subvalue.
static DINode::DIFlags fromRust(LLVMDIFlags Flags) {
// Check that all set bits are covered by the static assertions above.
const unsigned UNKNOWN_BITS = (1 << 31) | (1 << 30) | (1 << 21);
const unsigned UNKNOWN_BITS = (1 << 31) | (1 << 30) | (1 << 29) | (1 << 21);
if (Flags & UNKNOWN_BITS) {
report_fatal_error("bad LLVMDIFlags");
}
@@ -1,20 +0,0 @@
// Check that DIFlagAllCallsDescribed is set on subprogram definitions.
//@ ignore-msvc (CodeView does not use DIFlagAllCallsDescribed)
//@ compile-flags: -C debuginfo=2 -C opt-level=1 -C no-prepopulate-passes
// CHECK: {{.*}}DISubprogram{{.*}}name: "foo"{{.*}}DIFlagAllCallsDescribed{{.*}}
#[no_mangle]
#[inline(never)]
pub fn foo(x: i32) -> i32 {
bar(x + 1)
}
#[no_mangle]
#[inline(never)]
pub fn bar(x: i32) -> i32 {
x * 2
}
fn main() {}