Question about simple constant propagation pass

Hi,

I just started working with llvm, I am trying to test and improve the constant propagation pass (-constprop),

I have two main questions,

  1. I wrote my own test file, which has something like
    int a = 1
    int b = a + 2;
    int c = b + 3;
    print c

However, non of the instruction was killed according to -stat. I think it might due to the fact the llvm instructions generated was a bit convoluted, but overall, I am not sure why this simple test case has no instruction killed? Shouldn’t c be just 6 and show at least two instructions killed?

  1. The description states that this pass is very simple. Can anyone point me to a few directions that might be interesting to improve it? I am not sure about why is it labeled “simple” ?

Thanks

Yunming

Hi Yunming,

Hi,

I just started working with llvm, I am trying to test and improve the constant
propagation pass (-constprop),

I have two main questions,

1. I wrote my own test file, which has something like
    int a = 1
    int b = a + 2;
    int c = b + 3;
    print c

     However, non of the instruction was killed according to -stat. I think it
might due to the fact the llvm instructions generated was a bit convoluted, but
overall, I am not sure why this simple test case has no instruction killed?
Shouldn't c be just 6 and show at least two instructions killed?

optimization passes usually assume you have run at least -mem2reg (or -sroa)
first and won't do much if you haven't.

Ciao, Duncan.

Thanks a lot Duncan!!

It worked like magic,

Yunming