Skip to content

Commit 8e33653

Browse files
authored
Merge pull request #9017 from hvitved/dataflow/subpaths-perf
Data flow: Speedup `subpaths` predicate
2 parents 0d8bef7 + 9cb63c0 commit 8e33653

29 files changed

+58
-58
lines changed

cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4264,9 +4264,9 @@ private module Subpaths {
42644264
*/
42654265
predicate subpaths(PathNode arg, PathNodeImpl par, PathNodeImpl ret, PathNode out) {
42664266
exists(ParamNodeEx p, NodeEx o, FlowState sout, AccessPath apout, PathNodeMid out0 |
4267-
pragma[only_bind_into](arg).getASuccessor() = par and
4267+
pragma[only_bind_into](arg).getASuccessor() = pragma[only_bind_into](par) and
42684268
pragma[only_bind_into](arg).getASuccessor() = out0 and
4269-
subpaths03(arg, p, localStepToHidden*(ret), o, sout, apout) and
4269+
subpaths03(pragma[only_bind_into](arg), p, localStepToHidden*(ret), o, sout, apout) and
42704270
not ret.isHidden() and
42714271
par.getNodeEx() = p and
42724272
out0.getNodeEx() = o and

cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4264,9 +4264,9 @@ private module Subpaths {
42644264
*/
42654265
predicate subpaths(PathNode arg, PathNodeImpl par, PathNodeImpl ret, PathNode out) {
42664266
exists(ParamNodeEx p, NodeEx o, FlowState sout, AccessPath apout, PathNodeMid out0 |
4267-
pragma[only_bind_into](arg).getASuccessor() = par and
4267+
pragma[only_bind_into](arg).getASuccessor() = pragma[only_bind_into](par) and
42684268
pragma[only_bind_into](arg).getASuccessor() = out0 and
4269-
subpaths03(arg, p, localStepToHidden*(ret), o, sout, apout) and
4269+
subpaths03(pragma[only_bind_into](arg), p, localStepToHidden*(ret), o, sout, apout) and
42704270
not ret.isHidden() and
42714271
par.getNodeEx() = p and
42724272
out0.getNodeEx() = o and

cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4264,9 +4264,9 @@ private module Subpaths {
42644264
*/
42654265
predicate subpaths(PathNode arg, PathNodeImpl par, PathNodeImpl ret, PathNode out) {
42664266
exists(ParamNodeEx p, NodeEx o, FlowState sout, AccessPath apout, PathNodeMid out0 |
4267-
pragma[only_bind_into](arg).getASuccessor() = par and
4267+
pragma[only_bind_into](arg).getASuccessor() = pragma[only_bind_into](par) and
42684268
pragma[only_bind_into](arg).getASuccessor() = out0 and
4269-
subpaths03(arg, p, localStepToHidden*(ret), o, sout, apout) and
4269+
subpaths03(pragma[only_bind_into](arg), p, localStepToHidden*(ret), o, sout, apout) and
42704270
not ret.isHidden() and
42714271
par.getNodeEx() = p and
42724272
out0.getNodeEx() = o and

cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4264,9 +4264,9 @@ private module Subpaths {
42644264
*/
42654265
predicate subpaths(PathNode arg, PathNodeImpl par, PathNodeImpl ret, PathNode out) {
42664266
exists(ParamNodeEx p, NodeEx o, FlowState sout, AccessPath apout, PathNodeMid out0 |
4267-
pragma[only_bind_into](arg).getASuccessor() = par and
4267+
pragma[only_bind_into](arg).getASuccessor() = pragma[only_bind_into](par) and
42684268
pragma[only_bind_into](arg).getASuccessor() = out0 and
4269-
subpaths03(arg, p, localStepToHidden*(ret), o, sout, apout) and
4269+
subpaths03(pragma[only_bind_into](arg), p, localStepToHidden*(ret), o, sout, apout) and
42704270
not ret.isHidden() and
42714271
par.getNodeEx() = p and
42724272
out0.getNodeEx() = o and

cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4264,9 +4264,9 @@ private module Subpaths {
42644264
*/
42654265
predicate subpaths(PathNode arg, PathNodeImpl par, PathNodeImpl ret, PathNode out) {
42664266
exists(ParamNodeEx p, NodeEx o, FlowState sout, AccessPath apout, PathNodeMid out0 |
4267-
pragma[only_bind_into](arg).getASuccessor() = par and
4267+
pragma[only_bind_into](arg).getASuccessor() = pragma[only_bind_into](par) and
42684268
pragma[only_bind_into](arg).getASuccessor() = out0 and
4269-
subpaths03(arg, p, localStepToHidden*(ret), o, sout, apout) and
4269+
subpaths03(pragma[only_bind_into](arg), p, localStepToHidden*(ret), o, sout, apout) and
42704270
not ret.isHidden() and
42714271
par.getNodeEx() = p and
42724272
out0.getNodeEx() = o and

cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4264,9 +4264,9 @@ private module Subpaths {
42644264
*/
42654265
predicate subpaths(PathNode arg, PathNodeImpl par, PathNodeImpl ret, PathNode out) {
42664266
exists(ParamNodeEx p, NodeEx o, FlowState sout, AccessPath apout, PathNodeMid out0 |
4267-
pragma[only_bind_into](arg).getASuccessor() = par and
4267+
pragma[only_bind_into](arg).getASuccessor() = pragma[only_bind_into](par) and
42684268
pragma[only_bind_into](arg).getASuccessor() = out0 and
4269-
subpaths03(arg, p, localStepToHidden*(ret), o, sout, apout) and
4269+
subpaths03(pragma[only_bind_into](arg), p, localStepToHidden*(ret), o, sout, apout) and
42704270
not ret.isHidden() and
42714271
par.getNodeEx() = p and
42724272
out0.getNodeEx() = o and

cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4264,9 +4264,9 @@ private module Subpaths {
42644264
*/
42654265
predicate subpaths(PathNode arg, PathNodeImpl par, PathNodeImpl ret, PathNode out) {
42664266
exists(ParamNodeEx p, NodeEx o, FlowState sout, AccessPath apout, PathNodeMid out0 |
4267-
pragma[only_bind_into](arg).getASuccessor() = par and
4267+
pragma[only_bind_into](arg).getASuccessor() = pragma[only_bind_into](par) and
42684268
pragma[only_bind_into](arg).getASuccessor() = out0 and
4269-
subpaths03(arg, p, localStepToHidden*(ret), o, sout, apout) and
4269+
subpaths03(pragma[only_bind_into](arg), p, localStepToHidden*(ret), o, sout, apout) and
42704270
not ret.isHidden() and
42714271
par.getNodeEx() = p and
42724272
out0.getNodeEx() = o and

cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4264,9 +4264,9 @@ private module Subpaths {
42644264
*/
42654265
predicate subpaths(PathNode arg, PathNodeImpl par, PathNodeImpl ret, PathNode out) {
42664266
exists(ParamNodeEx p, NodeEx o, FlowState sout, AccessPath apout, PathNodeMid out0 |
4267-
pragma[only_bind_into](arg).getASuccessor() = par and
4267+
pragma[only_bind_into](arg).getASuccessor() = pragma[only_bind_into](par) and
42684268
pragma[only_bind_into](arg).getASuccessor() = out0 and
4269-
subpaths03(arg, p, localStepToHidden*(ret), o, sout, apout) and
4269+
subpaths03(pragma[only_bind_into](arg), p, localStepToHidden*(ret), o, sout, apout) and
42704270
not ret.isHidden() and
42714271
par.getNodeEx() = p and
42724272
out0.getNodeEx() = o and

cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4264,9 +4264,9 @@ private module Subpaths {
42644264
*/
42654265
predicate subpaths(PathNode arg, PathNodeImpl par, PathNodeImpl ret, PathNode out) {
42664266
exists(ParamNodeEx p, NodeEx o, FlowState sout, AccessPath apout, PathNodeMid out0 |
4267-
pragma[only_bind_into](arg).getASuccessor() = par and
4267+
pragma[only_bind_into](arg).getASuccessor() = pragma[only_bind_into](par) and
42684268
pragma[only_bind_into](arg).getASuccessor() = out0 and
4269-
subpaths03(arg, p, localStepToHidden*(ret), o, sout, apout) and
4269+
subpaths03(pragma[only_bind_into](arg), p, localStepToHidden*(ret), o, sout, apout) and
42704270
not ret.isHidden() and
42714271
par.getNodeEx() = p and
42724272
out0.getNodeEx() = o and

csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4264,9 +4264,9 @@ private module Subpaths {
42644264
*/
42654265
predicate subpaths(PathNode arg, PathNodeImpl par, PathNodeImpl ret, PathNode out) {
42664266
exists(ParamNodeEx p, NodeEx o, FlowState sout, AccessPath apout, PathNodeMid out0 |
4267-
pragma[only_bind_into](arg).getASuccessor() = par and
4267+
pragma[only_bind_into](arg).getASuccessor() = pragma[only_bind_into](par) and
42684268
pragma[only_bind_into](arg).getASuccessor() = out0 and
4269-
subpaths03(arg, p, localStepToHidden*(ret), o, sout, apout) and
4269+
subpaths03(pragma[only_bind_into](arg), p, localStepToHidden*(ret), o, sout, apout) and
42704270
not ret.isHidden() and
42714271
par.getNodeEx() = p and
42724272
out0.getNodeEx() = o and

0 commit comments

Comments
 (0)