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

Question about Souper IR's advantage compare to LLVM IR? #876

Open
hstk30-hw opened this issue Nov 30, 2023 · 1 comment
Open

Question about Souper IR's advantage compare to LLVM IR? #876

hstk30-hw opened this issue Nov 30, 2023 · 1 comment

Comments

@hstk30-hw
Copy link

I see the paper:

why have we developed a new middle-end superoptimizer? First, LLVM IR is the narrow waist in a large
and growing ecosystem of frontends and backends; improvements made at this level can benefit many projects
and billions of end users (via, for example, Android). Second, Souper excels at generating constants, particularly for
Boolean valued variables that are used to control branches.
Constants ripple through the rest of the middle-end and the
full benefits are not realized until constant propagation, dead
code elimination, and other optimization passes have exploited them. Generating constants in the backend would
leave these benefits on the table. Third, the SSA form that
many modern compilers use in their middle ends is effectively a functional programming language [1] that is highly
amenable to automated reasoning techniques.

I still confuse about the advantage compare to LLVM IR.
Is Souper IR can make use of SAT, SMT ... tools?
Or Souper IR eliminates LLVM IR's basic blocks?

@hxm-cpp
Copy link

hxm-cpp commented Nov 30, 2023

your question is dumb.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants