Skip to content

It there any way to preserve instructions depends on or depended by sliced criterions? #456

@XChy

Description

@XChy

@mchalupa, hi!. I'm working on reducing two semantically equivalent IRs, which share similar syntatical structure. Now I want to slice based those different instructions, and cut off anything irrelevant to them. For example:

int foo(int a, int* b) {
  int ret = other_func(a);
  *b = 666;
  ret += 1;
  return ret;
}

I slice it based on other_func(ret1), and want store of b to be sliced:

int foo(int a, int* b) {
  int ret = other_func(a);
  ret += 1;
  return ret;
}

But actually we only get a single other_func(a):

int foo(int a, int* b) {
  other_func(a);
  return undef;
}

So it's there any way to realize it ?

Apart from this, it's there any easy way to hack dg so that any type of instructions (not only call-sites/ret) can be the slicing criterions?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions