Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

Comments

Feat/multiblock lifting#1

Draft
BrunoGugli wants to merge 117 commits intomasterfrom
feat/multiblock_lifting
Draft

Feat/multiblock lifting#1
BrunoGugli wants to merge 117 commits intomasterfrom
feat/multiblock_lifting

Conversation

@BrunoGugli
Copy link
Collaborator

No description provided.

ltfish and others added 30 commits June 10, 2025 09:41
* VRA: Use function graph for dominance frontier if available.

* Make _pd_compress non-recursive.

* Bug fix.

* Bug fix.

* VRA: Specify function entry node addr.
* Fix store and extract for SimTypeWideChar.

* Type check test_types.py.
* Improve handling of phi var-involving constant propagation.

* Skip phi variables with unknown source vvars.

* Type check.
* VRA: Limit stack variable stores to 256 bytes.

* Type check.
* Peephole: Signed division simplification case B.

* Add more simplifications and a test case.

* Lint and type check.
…ngr#5520)

* Fix the check on guard that incorrectly checks the False condition

* use only valid check in _hash_false
…angr#5529)

* Add Emulator and ConcreteEngine; Adapt IcicleEngine to ConcreteEngine

* Remove redundant assertions

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Move test_emulator.py to tests/sim/

* Fix missed rename

* Add HeavyConcreteState to __all__

* Fix lint

* Put it in the right place

* Move it to the top level

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* SPropagator: Propagate stackvars that are not eliminatable.

* Fix incorrect l-value replacements.

* Add a hack to address duplicated return variables.

* The hack should only consider ret points.

* Type check.
* SAILR: Fix indentation (and the heuristics).

* AILCallCounter: Do not count calls within conditions.

* GotoSimplifier: Fix a typo.

* Phoenix: Fix short-circuit type b.

* Update a test case.

* Adjust the fmt.main test case; waiting for mahaloz to endorse.
* LoweredSwitchSimp: Do not test graph structurability.

* Type check.
* Phoenix: Speed up negating condition checks.

* Bug fix.

* Do not rely on conditional jump targets.
* Phoenix: Speed up acyclic graph conversion.

Also switches to deterministic post-ordering when possible for improved
speed.

* Add a missing node order update.

* Lint code.

* Properly handle multi-headed acyclic graphs.

* Fix another place where node_order is not updated when new nodes are created.

* Fix one more missed place.

* Add a missed list(reversed(...)).

* Adjust the tr.build_spec_list test case.
…angr#5553)

Bumps [actions-rust-lang/setup-rust-toolchain](https://github.com/actions-rust-lang/setup-rust-toolchain) from 1.12.0 to 1.13.0.
- [Release notes](https://github.com/actions-rust-lang/setup-rust-toolchain/releases)
- [Changelog](https://github.com/actions-rust-lang/setup-rust-toolchain/blob/main/CHANGELOG.md)
- [Commits](actions-rust-lang/setup-rust-toolchain@9d7e65c...fb51252)

---
updated-dependencies:
- dependency-name: actions-rust-lang/setup-rust-toolchain
  dependency-version: 1.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 6.1.0 to 6.3.0.
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](astral-sh/setup-uv@f0ec1fc...445689e)

---
updated-dependencies:
- dependency-name: astral-sh/setup-uv
  dependency-version: 6.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
@BrunoGugli BrunoGugli force-pushed the feat/multiblock_lifting branch from 88fec1c to 84a7269 Compare January 19, 2026 00:17
BrunoGugli and others added 5 commits January 29, 2026 02:22
* Fish's changes, time measurements and exit_statements optimization

* added flag to switch between multi and single for benchmark

* Fix size parameter and commented time dicts

* fix block size

* commented import time

---------

Co-authored-by: Rodriguezfran <[email protected]>
Comment on lines +1870 to +1874
# Commented for the moment - this will be deprecated
# if self.project.arch.name in ("X86", "AMD64", "MIPS32"):
# self._remove_redundant_overlapping_blocks()
# elif is_arm_arch(self.project.arch):
# self._remove_redundant_overlapping_blocks(function_alignment=4, is_arm=True)
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since we need to make measurements for our changes, we should comment the call to this function in single lifting too or don't comment it here. Just for our measurements, then when we finish with that we can comment it again.

project=self.project,
size=size,
backup_state=backup_state)

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

.

collect_data_references=None, # deprecated
extra_cross_references=None, # deprecated
elf_eh_frame=None, # deprecated
is_multi_lift=False,
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove

self._indirect_calls_always_return = indirect_calls_always_return
self._jumptable_resolver_resolve_calls = jumptable_resolver_resolves_calls

self._is_multi_lift = is_multi_lift
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

.

return callee_func.returning
return None

def _lift(self, addr, *args, opt_level=1, cross_insn_opt=False, **kwargs): # pylint:disable=arguments-differ
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

.


kwargs["extra_stop_points"] = set(self._known_thunks)
return super()._lift(addr, *args, opt_level=opt_level, cross_insn_opt=cross_insn_opt, **kwargs)

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

.

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

Successfully merging this pull request may close these issues.