[GSoC'16] Weekly Status - July 25 - Zhengyang Liu

Dear LLVM and SVA community:

This is to brief you the progress of this week. Following is what I
finished this week.

1. Fix a bug [1]. This bug happens in poolcheckui_debug() and
poolcheck_debug() pool check functions. Because !(not) operator have
higher precedence than &&(logic and) operator, the original code will
make a wrong decision on the if statement.

2. Implemented a CastTo(Value *, Type *, Twine, BasicBlock *) utility
function[2]. Before this, there is only a CastTo(Value *, Type *, Twine,
Instruction *), which adds a cast instruction before the last argument
instruction. Since I need to insert many cast instructions on the last
of a basicblock in my following work, I implemented this simple CastTo
alternative.

3. A new pass InlineBBRuntimeFunctions [3]. This pass inlines
boundscheckui_debug(), poolcheckui_debug(), poolregister_debug(),
poolunregister_debug().

4. A new pass InlineGetActualValue [4]. This pass inlines all
pck_getActualValue() calls.

5. Test the performance of current bbac implementation on gzip-1.8, by
compressing a 1024 MB random file.[5]

Best regards,

Zhengyang.

[1]
https://github.com/zhengyangl/safecode-llvm37/commit/8b01412ffe8df802f5eb51501a8d4174ed09ab3b

[2]
https://github.com/zhengyangl/safecode-llvm37/commit/6cd900391c3c22d06e3cee7a4af314070a357db2

[3]
https://github.com/zhengyangl/safecode-llvm37/commit/4c7da11bd193f9d124d657b716b50a7f23a8d8b6

[4]
https://github.com/zhengyangl/safecode-llvm37/commit/7eed57bf6976df55566fa72d11a61c4bfabd4e8d

[5]
https://docs.google.com/document/d/1S4mviKi2PX0LOIRCpzL6QFQU-yijUMmIyt1J8k49uJ4/edit