svf-tools 1.0.967 → 1.0.969

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.html CHANGED
@@ -26,7 +26,7 @@
26
26
 
27
27
  <p><a href="https://github.com/svf-tools/SVF">SVF</a> is a static tool that enables scalable and precise value-flow analysis for source code. SVF allows value-flow construction and pointer analysis to be performed iteratively, thereby providing increasingly improved precision for both. </p>
28
28
 
29
- For a pointer analysis framework that works for Java, we refer to <a href="https://qilinpta.github.io/"> Qilin</a>.
29
+ For pointer analysis frameworks that work for Java and Rust, we refer to <a href="https://qilinpta.github.io/"> Qilin</a> and <a href="https://rustanlys.github.io/rupta"> Rupta </a>.
30
30
 
31
31
  <h2>
32
32
  <a id="what-kind-of-analyses-does-svf-provide" class="anchor" href="#what-kind-of-analyses-does-svf-provide" aria-hidden="true"><span class="octicon octicon-link"></span></a>What kind of analyses does SVF provide?</h2>
@@ -66,6 +66,14 @@ GPLv3
66
66
 
67
67
  <p> Please make a <b>pull request</b> or <b>email us</b> if you have a paper for this list.</p>
68
68
 
69
+ <p> Xiao Cheng, Jiawei Ren and Yulei Sui. <a href = "https://yuleisui.github.io/publications/fse24a.pdf">Fast Graph Simplification for Path-Sensitive Typestate Analysis through Tempo-Spatial Multi-Point Slicing </a>. ACM International Conference on the Foundations of Software Engineering. (FSE'24) </p>
70
+
71
+ <p> Xiao Cheng, Jiawei Wang and Yulei Sui. <a href= "https://yuleisui.github.io/publications/icse24a.pdf"> Precise Sparse Abstract Execution via Cross-Domain Interaction. </a> 46th International Conference on Software Engineering (ICSE'24) </p>
72
+
73
+ <p> Yuxiang Lei, Camille Bossut, Yulei Sui and Qirun Zhang. <a href="https://dl.acm.org/doi/pdf/10.1145/3656451"> Context-Free Language Reachability via Skewed Tabulation. </a> ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'24) </p>
74
+
75
+ <p> Yuxiang Lei, Yulei Sui, Shin Hwei Tan, Qirun Zhang. <a href="https://yuleisui.github.io/publications/pldi23.pdf">Recursive State Machine Guided Graph Folding for Context-Free Language Reachability. </a> 44th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'23) </p>
76
+
69
77
  <p> Yuxiang Lei, Yulei Sui, Shuo Ding, and Qirun Zhang. <a href ="https://yuleisui.github.io/publications/oopsla22.pdf"> Taming Transitive Redundancy for Context-Free Language Reachability</a>. ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'22) </p>
70
78
 
71
79
  <p>Yaohui Chen, Peng Li, Jun Xu, Shengjian Guo,Rundong Zhou, Yulong Zhang, Tao Wei, and Long Lu. <a href ="https://arxiv.org/pdf/1906.07327.pdf">SAVIOR: Towards Bug-Driven Hybrid Testing</a>, 41st IEEE Symposium on Security and Privacy (S&ampP'20)</p>
@@ -112,7 +120,7 @@ for Multithreaded Programs</a>, International Symposium on Code Generation and O
112
120
  <h2>
113
121
  <a id="contacts" class="anchor" href="#contacts" aria-hidden="true"><span class="octicon octicon-link"></span></a>Contacts</h2>
114
122
  Any comments, contributions and collaborations are welcomed.
115
- Please contact the authors <a href="mailto:yulei.sui@uts.edu.au">Yulei Sui</a> or <a href="mailto:jingling@cse.unsw.edu.au">Jingling Xue</a> if you have any questions.
123
+ Please contact <a href="mailto:y.sui@unsw.edu.au">Yulei Sui</a> if you have any questions.
116
124
 
117
125
 
118
126
  </section>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svf-tools",
3
- "version": "1.0.967",
3
+ "version": "1.0.969",
4
4
  "description": "* <b>[TypeClone](https://github.com/SVF-tools/SVF/wiki/TypeClone) published in our [ECOOP paper](https://yuleisui.github.io/publications/ecoop20.pdf) is now available in SVF </b> * <b>SVF now uses a single script for its build. Just type [`source ./build.sh`](https://github.com/SVF-tools/SVF/blob/master/build.sh) in your terminal, that's it!</b> * <b>SVF now supports LLVM-10.0.0! </b> * <b>We thank [bsauce](https://github.com/bsauce) for writing a user manual of SVF ([link1](https://www.jianshu.com/p/068a08ec749c) and [link2](https://www.jianshu.com/p/777c30d4240e)) in Chinese </b> * <b>SVF now supports LLVM-9.0.0 (Thank [Byoungyoung Lee](https://github.com/SVF-tools/SVF/issues/142) for his help!). </b> * <b>SVF now supports a set of [field-sensitive pointer analyses](https://yuleisui.github.io/publications/sas2019a.pdf). </b> * <b>[Use SVF as an external lib](https://github.com/SVF-tools/SVF/wiki/Using-SVF-as-a-lib-in-your-own-tool) for your own project (Contributed by [Hongxu Chen](https://github.com/HongxuChen)). </b> * <b>SVF now supports LLVM-7.0.0. </b> * <b>SVF now supports Docker. [Try SVF in Docker](https://github.com/SVF-tools/SVF/wiki/Try-SVF-in-Docker)! </b> * <b>SVF now supports [LLVM-6.0.0](https://github.com/svf-tools/SVF/pull/38) (Contributed by [Jack Anthony](https://github.com/jackanth)). </b> * <b>SVF now supports [LLVM-4.0.0](https://github.com/svf-tools/SVF/pull/23) (Contributed by Jared Carlson. Thank [Jared](https://github.com/jcarlson23) and [Will](https://github.com/dtzWill) for their in-depth [discussions](https://github.com/svf-tools/SVF/pull/18) about updating SVF!) </b> * <b>SVF now supports analysis for C++ programs.</b> <br />",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -20,9 +20,13 @@
20
20
  #ifdef __has_builtin
21
21
  # define HAS_CLZ __has_builtin(__builtin_clz)
22
22
  # define HAS_CLZLL __has_builtin(__builtin_clzll)
23
+ # define HAS_CTZ __has_builtin(__builtin_ctz)
24
+ # define HAS_CTZLL __has_builtin(__builtin_ctzll)
23
25
  #else
24
26
  # define HAS_CLZ 0
25
27
  # define HAS_CLZLL 0
28
+ # define HAS_CLZ 0
29
+ # define HAS_CLZLL 0
26
30
  #endif
27
31
 
28
32
  namespace SVF
@@ -66,6 +70,44 @@ template <typename T, std::size_t SizeOfT> struct TrailingZerosCounter
66
70
  }
67
71
  };
68
72
 
73
+ #if defined(__GNUC__) || defined(_MSC_VER)
74
+ template <typename T> struct TrailingZerosCounter<T, 4>
75
+ {
76
+ static unsigned count(T Val, ZeroBehavior)
77
+ {
78
+ if (Val == 0)
79
+ return 32;
80
+
81
+ #if HAS_CTZ || defined(__GNUC__)
82
+ return __builtin_ctz(Val);
83
+ #elif defined(_MSC_VER)
84
+ unsigned long Index;
85
+ _BitScanForward(&Index, Val);
86
+ return Index;
87
+ #endif
88
+ }
89
+ };
90
+
91
+ #if !defined(_MSC_VER) || defined(_M_X64)
92
+ template <typename T> struct TrailingZerosCounter<T, 8>
93
+ {
94
+ static unsigned count(T Val, ZeroBehavior)
95
+ {
96
+ if (Val == 0)
97
+ return 64;
98
+
99
+ #if HAS_CTZLL || defined(__GNUC__)
100
+ return __builtin_ctzll(Val);
101
+ #elif defined(_MSC_VER)
102
+ unsigned long Index;
103
+ _BitScanForward64(&Index, Val);
104
+ return Index;
105
+ #endif
106
+ }
107
+ };
108
+ #endif
109
+ #endif
110
+
69
111
  /// Count number of 0's from the least significant bit to the most
70
112
  /// stopping at the first 1.
71
113
  ///