Skip to content

tidy struggles to reason about revisions #136763

Open
@workingjubilee

Description

@workingjubilee

after the following diff:

    tests/assembly: cross-compile x86-return-float
    
    We choose to test for Linux and Windows instead of random other targets.

diff --git a/tests/assembly/x86-return-float.rs b/tests/assembly/x86-return-float.rs
index 423263c9673..35b9e2d18d3 100644
--- a/tests/assembly/x86-return-float.rs
+++ b/tests/assembly/x86-return-float.rs
@@ -1,19 +1,27 @@
 //@ assembly-output: emit-asm
-//@ only-x86
 // FIXME(#114479): LLVM miscompiles loading and storing `f32` and `f64` when SSE is disabled.
 // There's no compiletest directive to ignore a test on i586 only, so just always explicitly enable
 // SSE2.
 // Use the same target CPU as `i686` so that LLVM orders the instructions in the same order.
 //@ compile-flags: -Ctarget-feature=+sse2 -Ctarget-cpu=pentium4
 // Force frame pointers to make ASM more consistent between targets
-//@ compile-flags: -Copt-level=3 -C force-frame-pointers
+//@ compile-flags: -C force-frame-pointers
+// At opt-level=3, LLVM can merge two movss into one movsd, and we aren't testing for that.
+//@ compile-flags: -Copt-level=2
 //@ filecheck-flags: --implicit-check-not fld --implicit-check-not fst
-//@ revisions: normal win
-//@[normal] ignore-windows
-//@[win] only-windows
+//@ revisions: linux win
+//@ add-core-stubs
+//@ needs-llvm-components: x86
+//@[linux] compile-flags: --target i686-unknown-linux-gnu
+//@[win] compile-flags: --target i686-pc-windows-msvc
 
 #![crate_type = "lib"]
 #![feature(f16, f128)]
+#![feature(no_core)]
+#![no_core]
+
+extern crate minicore;
+use minicore::*;
 

I got this feedback from tidy:

fmt: checked 5834 files
tidy check
/checkout/tests/assembly/x86-return-float.rs: revision [unspecified] should not specify `needs-llvm-components:` as it doesn't need `--target`
/checkout/tests/assembly/x86-return-float.rs: revision linux should specify `needs-llvm-components:` as it has `--target` set
/checkout/tests/assembly/x86-return-float.rs: revision win should specify `needs-llvm-components:` as it has `--target` set
some tidy checks failed

I think this review should get pushback, but I'm not sure how best to phrase it.

Activity

added
needs-triageThis issue may need triage. Remove it if it has been sufficiently triaged.
on Feb 9, 2025
jieyouxu

jieyouxu commented on Feb 9, 2025

@jieyouxu
Member

This is just a case where the tidy check isn't super smart, where it doesn't know how to reason about a needs-llvm-components that is "for-all-revisions". A temporary workaround is just duplicate the needs-llvm-components for each revision. I'd like to push this check to compiletest eventually, this tidy check is just a simple heuristics.

added
T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)
A-compiletestArea: The compiletest test runner
A-tidyArea: The tidy tool
and removed
needs-triageThis issue may need triage. Remove it if it has been sufficiently triaged.
on Feb 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-compiletestArea: The compiletest test runnerA-tidyArea: The tidy toolC-bugCategory: This is a bug.T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)

    Type

    No type

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @jieyouxu@workingjubilee@rustbot

        Issue actions

          tidy struggles to reason about revisions · Issue #136763 · rust-lang/rust