Skip to content
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

Enable constraint-elimination by default #49344

Closed
fhahn opened this issue Apr 16, 2021 · 5 comments
Closed

Enable constraint-elimination by default #49344

fhahn opened this issue Apr 16, 2021 · 5 comments
Labels
bugzilla Issues migrated from bugzilla llvm:optimizations

Comments

@fhahn
Copy link
Contributor

fhahn commented Apr 16, 2021

Bugzilla Link 50000
Version trunk
OS All
CC @LebedevRI

Extended Description

An umbrella bug to keep track of work towards enabling -constraint-elimination by default.

@llvmbot llvmbot transferred this issue from llvm/llvm-bugzilla-archive Dec 11, 2021
@fhahn
Copy link
Contributor Author

fhahn commented Feb 4, 2022

fhahn added a commit to fhahn/llvm-project that referenced this issue Feb 8, 2022
fhahn added a commit to fhahn/llvm-project that referenced this issue Feb 18, 2022
fhahn added a commit to fhahn/llvm-project that referenced this issue Jun 24, 2022
@fhahn
Copy link
Contributor Author

fhahn commented Sep 30, 2022

#58074 is also handled by ConstraintElimination.

@fhahn
Copy link
Contributor Author

fhahn commented Sep 30, 2022

#51358 could also be handled by ConstraintElimination, modulo the fact that GEP indices are treated as signed with respect to inbounds so we are treating size_t indices as possibly signed at the moment.

@fhahn fhahn closed this as completed in fb13dcf Jan 4, 2023
@fitzgen
Copy link
Contributor

fitzgen commented Jan 10, 2023

Hi @fhahn! Are there any presentations or docs I can read to learn more about -constraint-elimination, or is reading the source currently the best way to learn about how it works and its goals and all that? Thanks!

(Apologies if this is the wrong forum for a question like this!)

@fhahn
Copy link
Contributor Author

fhahn commented Jan 11, 2023

I did a presentation during a previous LLLVM Dev meeting: https://www.youtube.com/watch?v=1hm5ZVmBEvo

fhahn added a commit that referenced this issue Feb 6, 2023
This reverts commit 695ce48.

The compile-time regression causing the revert has been fixed. Recommit
the original patch.

Original commit message:

   The pass should help to close a functional gap when it comes to
    reasoning about related conditions in a relatively general way.

    It addresses multiple existing issues (linked below) and the need for a
    more powerful reasoning system was also discussed recently in
    https://discourse.llvm.org/t/rfc-alternative-approach-of-dealing-with-implications-from-comparisons-through-pos-analysis/65601/7

    On AArch64, the new pass performs ~2000 simplifications on
    MultiSource,SPEC2006,SPEC2017 with -O3.

    Compile-time impact:

    NewPM-O3: +0.20%
    NewPM-ReleaseThinLTO: +0.32%
    NewPM-ReleaseLTO-g: +0.28%

    https://llvm-compile-time-tracker.com/compare.php?from=f01a3a893c147c1594b9a3fbd817456b209dabbf&to=577688758ef64fb044215ec3e497ea901bb2db28&stat=instructions:u

    Fixes #49344.
    Fixes #47888.
    Fixes #48253.
    Fixes #49229.
    Fixes #58074.

    Reviewed By: asbirlea

    Differential Revision: https://reviews.llvm.org/D135915
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bugzilla Issues migrated from bugzilla llvm:optimizations
Projects
None yet
Development

No branches or pull requests

2 participants