mchalupa / dg

[LLVM Static Slicer] Various program analyses, construction of dependence graphs and program slicing of LLVM bitcode.
MIT License
484 stars 135 forks source link

make slicing context sensitive precise #86

Open mchalupa opened 8 years ago

mchalupa commented 8 years ago

we have interprocedural edges that make strong updates impossible. For example in this code:

int a;

void foo(void)
{
        a = 3;
}

int main(void)
{
        a = 1;
        foo();
        foo();
        test_assert(a == 3); 

        return 0;
}

we should keep only the last foo() call and remove the a = 1 and the other foo call, but we keep everything (with both old and new pta analysis)

mchalupa commented 8 years ago

yeah, but that needs better slicing algorithm (now we make all call-sites a dependence for the called function, so when we keep the function, we keep all callsites...)

mchalupa commented 5 years ago

Subissue of #242

mchalupa commented 2 years ago

See also #428 .