- 
                Notifications
    You must be signed in to change notification settings 
- Fork 13.9k
Remove TmpLayout in layout_of_enum #145387
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
          
     Merged
      
      
    
                
     Merged
            
            
          
      
        
          +9
        
        
          −30
        
        
          
        
      
    
  
Conversation
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
    | @bors r+ rollup | 
    
  bors 
      added a commit
      that referenced
      this pull request
    
      Aug 29, 2025 
    
    
      
  
    
      
    
  
Rollup of 9 pull requests Successful merges: - #143713 (Add a mailmap entry for gnzlbg) - #144275 (implement Sum and Product for Saturating(u*)) - #144354 (fix(std): Fix undefined reference to __my_thread_exit on QNX 8.0) - #145387 (Remove TmpLayout in layout_of_enum) - #145793 (std library: use execinfo library also on NetBSD.) - #145884 (Test `instrument-mcount` codegen) - #145947 (Add more to the `[workspace.dependencies]` section in the top-level `Cargo.toml`) - #145972 (fix `core::marker::Destruct` doc) - #145977 (tests: Ignore basic-stepping.rs on riscv64) r? `@ghost` `@rustbot` modify labels: rollup
    
  rust-timer 
      added a commit
      that referenced
      this pull request
    
      Aug 29, 2025 
    
    
      
  
    
      
    
  
Rollup merge of #145387 - zachs18:remove-tmplayout, r=cjgillot Remove TmpLayout in layout_of_enum 09a3846 from <#103693> made LayoutData be owned instead of interned in `Variants::Multiple::variants`[^1], so there's no need for `TmpLayout` in layout_of_enum anymore, and we can just store the variants' layouts directly in the prospective `LayoutData`s' `variants` fields. This should have no effect on semantics or layout. (written as part of #145337 but not related to the layout optimizations in that PR) [^1]: see line 1154 of `compiler/rustc_target/src/abi/mod.rs` in the linked commit; `Variants::Multiple::variants` effectively changed from `IndexVec<.., Layout<'tcx>>` to `IndexVec<.., LayoutData>` where the `LayoutData`s are not interned as `Layout`s (`LayoutData` was at the time called `LayoutS`)
| Already merged. | 
    
  rust-cloud-vms bot
      pushed a commit
        to makai410/rustc_public
      that referenced
      this pull request
    
      Oct 12, 2025 
    
    
      
  
    
      
    
  
Rollup of 9 pull requests Successful merges: - rust-lang/rust#143713 (Add a mailmap entry for gnzlbg) - rust-lang/rust#144275 (implement Sum and Product for Saturating(u*)) - rust-lang/rust#144354 (fix(std): Fix undefined reference to __my_thread_exit on QNX 8.0) - rust-lang/rust#145387 (Remove TmpLayout in layout_of_enum) - rust-lang/rust#145793 (std library: use execinfo library also on NetBSD.) - rust-lang/rust#145884 (Test `instrument-mcount` codegen) - rust-lang/rust#145947 (Add more to the `[workspace.dependencies]` section in the top-level `Cargo.toml`) - rust-lang/rust#145972 (fix `core::marker::Destruct` doc) - rust-lang/rust#145977 (tests: Ignore basic-stepping.rs on riscv64) r? `@ghost` `@rustbot` modify labels: rollup
  
    Sign up for free
    to join this conversation on GitHub.
    Already have an account?
    Sign in to comment
  
      Labels
      
    S-waiting-on-author
  Status: This is awaiting some action (such as code changes or more information) from the author. 
  
    T-compiler
  Relevant to the compiler team, which will review and decide on the PR/issue. 
  Add this suggestion to a batch that can be applied as a single commit.
  This suggestion is invalid because no changes were made to the code.
  Suggestions cannot be applied while the pull request is closed.
  Suggestions cannot be applied while viewing a subset of changes.
  Only one suggestion per line can be applied in a batch.
  Add this suggestion to a batch that can be applied as a single commit.
  Applying suggestions on deleted lines is not supported.
  You must change the existing code in this line in order to create a valid suggestion.
  Outdated suggestions cannot be applied.
  This suggestion has been applied or marked resolved.
  Suggestions cannot be applied from pending reviews.
  Suggestions cannot be applied on multi-line comments.
  Suggestions cannot be applied while the pull request is queued to merge.
  Suggestion cannot be applied right now. Please check back later.
  
    
  
    
09a3846 from #103693 made LayoutData be owned instead of interned in
Variants::Multiple::variants1, so there's no need forTmpLayoutin layout_of_enum anymore, and we can just store the variants' layouts directly in the prospectiveLayoutDatas'variantsfields.This should have no effect on semantics or layout.
(written as part of #145337 but not related to the layout optimizations in that PR)
Footnotes
see line 1154 of
compiler/rustc_target/src/abi/mod.rsin the linked commit;Variants::Multiple::variantseffectively changed fromIndexVec<.., Layout<'tcx>>toIndexVec<.., LayoutData>where theLayoutDatas are not interned asLayouts (LayoutDatawas at the time calledLayoutS) ↩