[llvm-dev] [GSoC'16] Weekly Status - June 19 - Zhengyang Liu

Zhengyang Liu via llvm-dev llvm-dev at lists.llvm.org
Mon Jun 20 03:40:45 PDT 2016

Dear LLVM and SVA community:

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

1. Add a prohibted function list to CFIChecks pass, which will make the pass ignore SAFECode runtime functions when create TargetList global. [1]

2. Add a template style registerExternal switch to RegisterGlobalVariables pass. When registerExternal is set to true, RegisterGlobalVariable will generate register functions for external variable (for debug_runtime). If registerExternal is set to false, RegisterGlobalVariable pass will not generate for external variable. [2][3]

3. Make InstrumentMemoryAccess’s doInitialization insert the __storecheck prototype and the __loadcheck prototype to llvm.compiler.used global, to make them survive from llvm optimizations. [4]

4. Implementated a PromoteArrayAllocas pass. This pass will translate array allocas to malloc calls. This supports the padded variable-length memory allocation. [5]

This week's plan:

1. Test SAFECode’s bbac implementation on more real-world programs, and fix possible crashes.

2. Make transformed array allocas carry meta-data on the last of the padding area.

Best regards,

[1] https://github.com/zhengyangl/safecode-llvm37/commit/b324534fca14d684ecef8981384002bf0ef6ea32
[2] https://github.com/zhengyangl/safecode-llvm37/commit/4b353ff9da1b2c61c709af99f3ade5b1c8d086e9
[3] https://github.com/zhengyangl/safecode-llvm37/commit/010a70d060a4a1942f58998c5fa6e83b0abf6156
[4] https://github.com/zhengyangl/safecode-llvm37/commit/ca1c707f1ae3b4acc2af1ffa160df9ebc6697a39
[5] https://github.com/zhengyangl/safecode-llvm37/commit/a6746c54c1d6e162dac716588465148d581916e9

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160620/4851fe09/attachment.html>

More information about the llvm-dev mailing list