Rename debugging_opts
to unstable_opts
This is no longer used only for debugging options (e.g. `-Zoutput-width`, `-Zallow-features`). Rename it to be more clear.
This commit is contained in:
parent
c80dde43f9
commit
3c9765cff1
125 changed files with 396 additions and 394 deletions
|
@ -37,7 +37,7 @@ fn should_use_mutable_noalias(cx: &CodegenCx<'_, '_>) -> bool {
|
|||
// LLVM prior to version 12 had known miscompiles in the presence of
|
||||
// noalias attributes (see #54878), but we don't support earlier
|
||||
// versions at all anymore. We now enable mutable noalias by default.
|
||||
cx.tcx.sess.opts.debugging_opts.mutable_noalias.unwrap_or(true)
|
||||
cx.tcx.sess.opts.unstable_opts.mutable_noalias.unwrap_or(true)
|
||||
}
|
||||
|
||||
const ABI_AFFECTING_ATTRIBUTES: [(ArgAttribute, llvm::AttributeKind); 1] =
|
||||
|
|
|
@ -145,7 +145,7 @@ pub(crate) unsafe fn codegen(
|
|||
if tcx.sess.target.default_hidden_visibility {
|
||||
llvm::LLVMRustSetVisibility(ll_g, llvm::Visibility::Hidden);
|
||||
}
|
||||
let val = tcx.sess.opts.debugging_opts.oom.should_panic();
|
||||
let val = tcx.sess.opts.unstable_opts.oom.should_panic();
|
||||
let llval = llvm::LLVMConstInt(i8, val as u64, False);
|
||||
llvm::LLVMSetInitializer(ll_g, llval);
|
||||
|
||||
|
|
|
@ -56,7 +56,7 @@ pub fn sanitize_attrs<'ll>(
|
|||
no_sanitize: SanitizerSet,
|
||||
) -> SmallVec<[&'ll Attribute; 4]> {
|
||||
let mut attrs = SmallVec::new();
|
||||
let enabled = cx.tcx.sess.opts.debugging_opts.sanitizer - no_sanitize;
|
||||
let enabled = cx.tcx.sess.opts.unstable_opts.sanitizer - no_sanitize;
|
||||
if enabled.contains(SanitizerSet::ADDRESS) {
|
||||
attrs.push(llvm::AttributeKind::SanitizeAddress.create_attr(cx.llcx));
|
||||
}
|
||||
|
@ -136,7 +136,7 @@ fn probestack_attr<'ll>(cx: &CodegenCx<'ll, '_>) -> Option<&'ll Attribute> {
|
|||
if cx
|
||||
.sess()
|
||||
.opts
|
||||
.debugging_opts
|
||||
.unstable_opts
|
||||
.sanitizer
|
||||
.intersects(SanitizerSet::ADDRESS | SanitizerSet::THREAD)
|
||||
{
|
||||
|
@ -149,7 +149,7 @@ fn probestack_attr<'ll>(cx: &CodegenCx<'ll, '_>) -> Option<&'ll Attribute> {
|
|||
}
|
||||
|
||||
// probestack doesn't play nice either with gcov profiling.
|
||||
if cx.sess().opts.debugging_opts.profile {
|
||||
if cx.sess().opts.unstable_opts.profile {
|
||||
return None;
|
||||
}
|
||||
|
||||
|
@ -275,7 +275,7 @@ pub fn from_fn_attrs<'ll, 'tcx>(
|
|||
to_add.push(uwtable_attr(cx.llcx));
|
||||
}
|
||||
|
||||
if cx.sess().opts.debugging_opts.profile_sample_use.is_some() {
|
||||
if cx.sess().opts.unstable_opts.profile_sample_use.is_some() {
|
||||
to_add.push(llvm::CreateAttrString(cx.llcx, "use-sample-profile"));
|
||||
}
|
||||
|
||||
|
|
|
@ -351,7 +351,7 @@ fn string_to_io_error(s: String) -> io::Error {
|
|||
|
||||
fn find_binutils_dlltool(sess: &Session) -> OsString {
|
||||
assert!(sess.target.options.is_like_windows && !sess.target.options.is_like_msvc);
|
||||
if let Some(dlltool_path) = &sess.opts.debugging_opts.dlltool {
|
||||
if let Some(dlltool_path) = &sess.opts.unstable_opts.dlltool {
|
||||
return dlltool_path.clone().into_os_string();
|
||||
}
|
||||
|
||||
|
|
|
@ -107,7 +107,7 @@ pub fn create_target_machine(tcx: TyCtxt<'_>, mod_name: &str) -> &'static mut ll
|
|||
let split_dwarf_file = if tcx.sess.target_can_use_split_dwarf() {
|
||||
tcx.output_filenames(()).split_dwarf_path(
|
||||
tcx.sess.split_debuginfo(),
|
||||
tcx.sess.opts.debugging_opts.split_dwarf_kind,
|
||||
tcx.sess.opts.unstable_opts.split_dwarf_kind,
|
||||
Some(mod_name),
|
||||
)
|
||||
} else {
|
||||
|
@ -182,9 +182,9 @@ pub fn target_machine_factory(
|
|||
let use_softfp = sess.opts.cg.soft_float;
|
||||
|
||||
let ffunction_sections =
|
||||
sess.opts.debugging_opts.function_sections.unwrap_or(sess.target.function_sections);
|
||||
sess.opts.unstable_opts.function_sections.unwrap_or(sess.target.function_sections);
|
||||
let fdata_sections = ffunction_sections;
|
||||
let funique_section_names = !sess.opts.debugging_opts.no_unique_section_names;
|
||||
let funique_section_names = !sess.opts.unstable_opts.no_unique_section_names;
|
||||
|
||||
let code_model = to_llvm_code_model(sess.code_model());
|
||||
|
||||
|
@ -202,15 +202,15 @@ pub fn target_machine_factory(
|
|||
let features = CString::new(target_features.join(",")).unwrap();
|
||||
let abi = SmallCStr::new(&sess.target.llvm_abiname);
|
||||
let trap_unreachable =
|
||||
sess.opts.debugging_opts.trap_unreachable.unwrap_or(sess.target.trap_unreachable);
|
||||
let emit_stack_size_section = sess.opts.debugging_opts.emit_stack_sizes;
|
||||
sess.opts.unstable_opts.trap_unreachable.unwrap_or(sess.target.trap_unreachable);
|
||||
let emit_stack_size_section = sess.opts.unstable_opts.emit_stack_sizes;
|
||||
|
||||
let asm_comments = sess.asm_comments();
|
||||
let relax_elf_relocations =
|
||||
sess.opts.debugging_opts.relax_elf_relocations.unwrap_or(sess.target.relax_elf_relocations);
|
||||
sess.opts.unstable_opts.relax_elf_relocations.unwrap_or(sess.target.relax_elf_relocations);
|
||||
|
||||
let use_init_array =
|
||||
!sess.opts.debugging_opts.use_ctors_section.unwrap_or(sess.target.use_ctors_section);
|
||||
!sess.opts.unstable_opts.use_ctors_section.unwrap_or(sess.target.use_ctors_section);
|
||||
|
||||
let path_mapping = sess.source_map().path_mapping().clone();
|
||||
|
||||
|
|
|
@ -64,7 +64,7 @@ pub fn const_alloc_to_llvm<'ll>(cx: &CodegenCx<'ll, '_>, alloc: ConstAllocation<
|
|||
// See https://github.com/rust-lang/rust/issues/84565.
|
||||
1
|
||||
} else {
|
||||
cx.sess().opts.debugging_opts.uninit_const_chunk_threshold
|
||||
cx.sess().opts.unstable_opts.uninit_const_chunk_threshold
|
||||
};
|
||||
let allow_uninit_chunks = chunks.clone().take(max.saturating_add(1)).count() <= max;
|
||||
|
||||
|
|
|
@ -275,7 +275,7 @@ pub unsafe fn create_module<'ll>(
|
|||
}
|
||||
}
|
||||
|
||||
if let Some(BranchProtection { bti, pac_ret }) = sess.opts.debugging_opts.branch_protection {
|
||||
if let Some(BranchProtection { bti, pac_ret }) = sess.opts.unstable_opts.branch_protection {
|
||||
if sess.target.arch != "aarch64" {
|
||||
sess.err("-Zbranch-protection is only supported on aarch64");
|
||||
} else {
|
||||
|
@ -308,7 +308,7 @@ pub unsafe fn create_module<'ll>(
|
|||
}
|
||||
|
||||
// Pass on the control-flow protection flags to LLVM (equivalent to `-fcf-protection` in Clang).
|
||||
if let CFProtection::Branch | CFProtection::Full = sess.opts.debugging_opts.cf_protection {
|
||||
if let CFProtection::Branch | CFProtection::Full = sess.opts.unstable_opts.cf_protection {
|
||||
llvm::LLVMRustAddModuleFlag(
|
||||
llmod,
|
||||
llvm::LLVMModFlagBehavior::Override,
|
||||
|
@ -316,7 +316,7 @@ pub unsafe fn create_module<'ll>(
|
|||
1,
|
||||
)
|
||||
}
|
||||
if let CFProtection::Return | CFProtection::Full = sess.opts.debugging_opts.cf_protection {
|
||||
if let CFProtection::Return | CFProtection::Full = sess.opts.unstable_opts.cf_protection {
|
||||
llvm::LLVMRustAddModuleFlag(
|
||||
llmod,
|
||||
llvm::LLVMModFlagBehavior::Override,
|
||||
|
@ -325,7 +325,7 @@ pub unsafe fn create_module<'ll>(
|
|||
)
|
||||
}
|
||||
|
||||
if sess.opts.debugging_opts.virtual_function_elimination {
|
||||
if sess.opts.unstable_opts.virtual_function_elimination {
|
||||
llvm::LLVMRustAddModuleFlag(
|
||||
llmod,
|
||||
llvm::LLVMModFlagBehavior::Error,
|
||||
|
|
|
@ -824,7 +824,7 @@ pub fn build_compile_unit_di_node<'ll, 'tcx>(
|
|||
output_filenames
|
||||
.split_dwarf_path(
|
||||
tcx.sess.split_debuginfo(),
|
||||
tcx.sess.opts.debugging_opts.split_dwarf_kind,
|
||||
tcx.sess.opts.unstable_opts.split_dwarf_kind,
|
||||
Some(codegen_unit_name),
|
||||
)
|
||||
// We get a path relative to the working directory from split_dwarf_path
|
||||
|
@ -881,15 +881,15 @@ pub fn build_compile_unit_di_node<'ll, 'tcx>(
|
|||
split_name.len(),
|
||||
kind,
|
||||
0,
|
||||
tcx.sess.opts.debugging_opts.split_dwarf_inlining,
|
||||
tcx.sess.opts.unstable_opts.split_dwarf_inlining,
|
||||
);
|
||||
|
||||
if tcx.sess.opts.debugging_opts.profile {
|
||||
if tcx.sess.opts.unstable_opts.profile {
|
||||
let cu_desc_metadata =
|
||||
llvm::LLVMRustMetadataAsValue(debug_context.llcontext, unit_metadata);
|
||||
let default_gcda_path = &output_filenames.with_extension("gcda");
|
||||
let gcda_path =
|
||||
tcx.sess.opts.debugging_opts.profile_emit.as_ref().unwrap_or(default_gcda_path);
|
||||
tcx.sess.opts.unstable_opts.profile_emit.as_ref().unwrap_or(default_gcda_path);
|
||||
|
||||
let gcov_cu_info = [
|
||||
path_to_mdstring(debug_context.llcontext, &output_filenames.with_extension("gcno")),
|
||||
|
@ -1559,7 +1559,7 @@ pub fn create_vtable_di_node<'ll, 'tcx>(
|
|||
) {
|
||||
// FIXME(flip1995): The virtual function elimination optimization only works with full LTO in
|
||||
// LLVM at the moment.
|
||||
if cx.sess().opts.debugging_opts.virtual_function_elimination && cx.sess().lto() == Lto::Fat {
|
||||
if cx.sess().opts.unstable_opts.virtual_function_elimination && cx.sess().lto() == Lto::Fat {
|
||||
vcall_visibility_metadata(cx, ty, poly_trait_ref, vtable);
|
||||
}
|
||||
|
||||
|
|
|
@ -104,7 +104,7 @@ impl<'ll, 'tcx> CodegenUnitDebugContext<'ll, 'tcx> {
|
|||
// This can be overridden using --llvm-opts -dwarf-version,N.
|
||||
// Android has the same issue (#22398)
|
||||
let dwarf_version =
|
||||
sess.opts.debugging_opts.dwarf_version.unwrap_or(sess.target.default_dwarf_version);
|
||||
sess.opts.unstable_opts.dwarf_version.unwrap_or(sess.target.default_dwarf_version);
|
||||
llvm::LLVMRustAddModuleFlag(
|
||||
self.llmod,
|
||||
llvm::LLVMModFlagBehavior::Warning,
|
||||
|
|
|
@ -355,7 +355,7 @@ impl CodegenBackend for LlvmCodegenBackend {
|
|||
.join(sess);
|
||||
|
||||
sess.time("llvm_dump_timing_file", || {
|
||||
if sess.opts.debugging_opts.llvm_time_trace {
|
||||
if sess.opts.unstable_opts.llvm_time_trace {
|
||||
let file_name = outputs.with_extension("llvm_timings.json");
|
||||
llvm_util::time_trace_profiler_finish(&file_name);
|
||||
}
|
||||
|
|
|
@ -87,7 +87,7 @@ unsafe fn configure_llvm(sess: &Session) {
|
|||
add("-debug-pass=Structure", false);
|
||||
}
|
||||
if sess.target.generate_arange_section
|
||||
&& !sess.opts.debugging_opts.no_generate_arange_section
|
||||
&& !sess.opts.unstable_opts.no_generate_arange_section
|
||||
{
|
||||
add("-generate-arange-section", false);
|
||||
}
|
||||
|
@ -102,7 +102,7 @@ unsafe fn configure_llvm(sess: &Session) {
|
|||
add("-enable-machine-outliner=never", false);
|
||||
}
|
||||
|
||||
match sess.opts.debugging_opts.merge_functions.unwrap_or(sess.target.merge_functions) {
|
||||
match sess.opts.unstable_opts.merge_functions.unwrap_or(sess.target.merge_functions) {
|
||||
MergeFunctions::Disabled | MergeFunctions::Trampolines => {}
|
||||
MergeFunctions::Aliases => {
|
||||
add("-mergefunc-use-aliases", false);
|
||||
|
@ -125,7 +125,7 @@ unsafe fn configure_llvm(sess: &Session) {
|
|||
}
|
||||
}
|
||||
|
||||
if sess.opts.debugging_opts.llvm_time_trace {
|
||||
if sess.opts.unstable_opts.llvm_time_trace {
|
||||
llvm::LLVMTimeTraceProfilerInitialize();
|
||||
}
|
||||
|
||||
|
@ -133,11 +133,11 @@ unsafe fn configure_llvm(sess: &Session) {
|
|||
|
||||
// Use the legacy plugin registration if we don't use the new pass manager
|
||||
if !should_use_new_llvm_pass_manager(
|
||||
&sess.opts.debugging_opts.new_llvm_pass_manager,
|
||||
&sess.opts.unstable_opts.new_llvm_pass_manager,
|
||||
&sess.target.arch,
|
||||
) {
|
||||
// Register LLVM plugins by loading them into the compiler process.
|
||||
for plugin in &sess.opts.debugging_opts.llvm_plugins {
|
||||
for plugin in &sess.opts.unstable_opts.llvm_plugins {
|
||||
let lib = Library::new(plugin).unwrap_or_else(|e| bug!("couldn't load plugin: {}", e));
|
||||
debug!("LLVM plugin loaded successfully {:?} ({})", lib, plugin);
|
||||
|
||||
|
@ -541,7 +541,7 @@ fn backend_feature_name(s: &str) -> Option<&str> {
|
|||
}
|
||||
|
||||
pub fn tune_cpu(sess: &Session) -> Option<&str> {
|
||||
let name = sess.opts.debugging_opts.tune_cpu.as_ref()?;
|
||||
let name = sess.opts.unstable_opts.tune_cpu.as_ref()?;
|
||||
Some(handle_native(name))
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue