move pretty_print to display.cpp

Signed-off-by: xiehuc <xiehuc@gmail.com>
pretty_print ignore + if rhs is negative

(+-1) should be -1, which + should ignore

Signed-off-by: xiehuc <xiehuc@gmail.com>
pretty_print add support ConstantExpr

Signed-off-by: xiehuc <xiehuc@gmail.com>
pretty_print add visit raw_ostream

同时完成PHINode的打印,要求所有的入口打印的结果都是一致的,否则报错

Signed-off-by: xiehuc <xiehuc@gmail.com>
solve phinode circle recursion

当PHINode的Incoming出现循环迭代的时候,会导致无限递归问题,解决方法是创建
一个静态visitStack栈,每次首先搜索栈,如果是发现两个相同项,则说明出现了循
环迭代,此时返回一个magic字符串unary(未定义值),对unary的比较一定返回true,
就略过了循环迭代的情况.

Signed-off-by: xiehuc <xiehuc@gmail.com>
pretty_print add Argument Type

Signed-off-by: xiehuc <xiehuc@gmail.com>
pretty_print add * for 'load' translation

Signed-off-by: xiehuc <xiehuc@gmail.com>
pretty_print add some space

Signed-off-by: xiehuc <xiehuc@gmail.com>
pretty_print support phinode using ||

使用||表示phinode,表明其值可能来自多条路径,具体是哪条则不可知晓.
将unary改为Δ,表明"自身"的含义,可读性更好.可以组合复杂的运算表达式.

Signed-off-by: xiehuc <xiehuc@gmail.com>
change ()?: to ()?{}:{} for readibility

Signed-off-by: xiehuc <xiehuc@gmail.com>
add depth reference for \Delta#d

Signed-off-by: xiehuc <xiehuc@gmail.com>
add operator precedence system

Signed-off-by: xiehuc <xiehuc@gmail.com>
code for curve fitting