Skip to content

Redundant oom branches not being eliminated #42666

@brson

Description

@brson

Original report: https://bugzilla.mozilla.org/show_bug.cgi?id=1369420

From that report:

"In the disassembly of style::properties::PropertyDeclaration::parse_into, at the end there is an area with hundreds of repetitions of:"

142476 00000001`80437946 e8b5490f00      call    xul!alloc::oom::oom (00000001`8052c300)
142476 00000001`8043794b 0f0b            ud2
142476 00000001`8043794d e8ae490f00      call    xul!alloc::oom::oom (00000001`8052c300)
142476 00000001`80437952 0f0b            ud2
142476 00000001`80437954 e8a7490f00      call    xul!alloc::oom::oom (00000001`8052c300)
142476 00000001`80437959 0f0b            ud2

"I'm guessing what's happening is that the compiler places unlikely fatal codepaths at the end of the function, outside of the normal control flow (which is good) but it would be good if it could recognize when several of these paths will lead to the same place and collapse them to save space."

If what's going on here is as simple as it seems, this could be a nice easy win.

cc @arielb1 seems like something that might interest you.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-codegenArea: Code generationC-enhancementCategory: An issue proposing an enhancement or a PR with one.I-slowIssue: Problems and improvements with respect to performance of generated code.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions