Skip to content

Commit 0addcfa

Browse files
committed
Dataflow: Fix some perf issues.
1 parent b34f99f commit 0addcfa

File tree

9 files changed

+36
-0
lines changed

9 files changed

+36
-0
lines changed

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -565,6 +565,7 @@ module Impl<FullStateConfigSig Config> {
565565
/**
566566
* Holds if `c` is the target of a store in the flow covered by `fwdFlow`.
567567
*/
568+
pragma[assume_small_delta]
568569
pragma[nomagic]
569570
private predicate fwdFlowConsCand(Content c) {
570571
exists(NodeEx mid, NodeEx node, TypedContent tc |
@@ -784,6 +785,7 @@ module Impl<FullStateConfigSig Config> {
784785
)
785786
}
786787

788+
pragma[nomagic]
787789
additional predicate revFlowState(FlowState state) {
788790
exists(NodeEx node |
789791
sinkNode(node, state) and
@@ -1187,6 +1189,7 @@ module Impl<FullStateConfigSig Config> {
11871189
fwdFlow(node, state, cc, summaryCtx, argAp, ap, _)
11881190
}
11891191

1192+
pragma[assume_small_delta]
11901193
pragma[nomagic]
11911194
private predicate fwdFlow0(
11921195
NodeEx node, FlowState state, Cc cc, ParamNodeOption summaryCtx, ApOption argAp, Ap ap,
@@ -3512,6 +3515,7 @@ module Impl<FullStateConfigSig Config> {
35123515
)
35133516
}
35143517

3518+
pragma[assume_small_delta]
35153519
pragma[nomagic]
35163520
private predicate pathThroughCallable0(
35173521
DataFlowCall call, PathNodeMid mid, ReturnKindExt kind, FlowState state, CallContext cc,

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -565,6 +565,7 @@ module Impl<FullStateConfigSig Config> {
565565
/**
566566
* Holds if `c` is the target of a store in the flow covered by `fwdFlow`.
567567
*/
568+
pragma[assume_small_delta]
568569
pragma[nomagic]
569570
private predicate fwdFlowConsCand(Content c) {
570571
exists(NodeEx mid, NodeEx node, TypedContent tc |
@@ -784,6 +785,7 @@ module Impl<FullStateConfigSig Config> {
784785
)
785786
}
786787

788+
pragma[nomagic]
787789
additional predicate revFlowState(FlowState state) {
788790
exists(NodeEx node |
789791
sinkNode(node, state) and
@@ -1187,6 +1189,7 @@ module Impl<FullStateConfigSig Config> {
11871189
fwdFlow(node, state, cc, summaryCtx, argAp, ap, _)
11881190
}
11891191

1192+
pragma[assume_small_delta]
11901193
pragma[nomagic]
11911194
private predicate fwdFlow0(
11921195
NodeEx node, FlowState state, Cc cc, ParamNodeOption summaryCtx, ApOption argAp, Ap ap,
@@ -3512,6 +3515,7 @@ module Impl<FullStateConfigSig Config> {
35123515
)
35133516
}
35143517

3518+
pragma[assume_small_delta]
35153519
pragma[nomagic]
35163520
private predicate pathThroughCallable0(
35173521
DataFlowCall call, PathNodeMid mid, ReturnKindExt kind, FlowState state, CallContext cc,

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -565,6 +565,7 @@ module Impl<FullStateConfigSig Config> {
565565
/**
566566
* Holds if `c` is the target of a store in the flow covered by `fwdFlow`.
567567
*/
568+
pragma[assume_small_delta]
568569
pragma[nomagic]
569570
private predicate fwdFlowConsCand(Content c) {
570571
exists(NodeEx mid, NodeEx node, TypedContent tc |
@@ -784,6 +785,7 @@ module Impl<FullStateConfigSig Config> {
784785
)
785786
}
786787

788+
pragma[nomagic]
787789
additional predicate revFlowState(FlowState state) {
788790
exists(NodeEx node |
789791
sinkNode(node, state) and
@@ -1187,6 +1189,7 @@ module Impl<FullStateConfigSig Config> {
11871189
fwdFlow(node, state, cc, summaryCtx, argAp, ap, _)
11881190
}
11891191

1192+
pragma[assume_small_delta]
11901193
pragma[nomagic]
11911194
private predicate fwdFlow0(
11921195
NodeEx node, FlowState state, Cc cc, ParamNodeOption summaryCtx, ApOption argAp, Ap ap,
@@ -3512,6 +3515,7 @@ module Impl<FullStateConfigSig Config> {
35123515
)
35133516
}
35143517

3518+
pragma[assume_small_delta]
35153519
pragma[nomagic]
35163520
private predicate pathThroughCallable0(
35173521
DataFlowCall call, PathNodeMid mid, ReturnKindExt kind, FlowState state, CallContext cc,

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -565,6 +565,7 @@ module Impl<FullStateConfigSig Config> {
565565
/**
566566
* Holds if `c` is the target of a store in the flow covered by `fwdFlow`.
567567
*/
568+
pragma[assume_small_delta]
568569
pragma[nomagic]
569570
private predicate fwdFlowConsCand(Content c) {
570571
exists(NodeEx mid, NodeEx node, TypedContent tc |
@@ -784,6 +785,7 @@ module Impl<FullStateConfigSig Config> {
784785
)
785786
}
786787

788+
pragma[nomagic]
787789
additional predicate revFlowState(FlowState state) {
788790
exists(NodeEx node |
789791
sinkNode(node, state) and
@@ -1187,6 +1189,7 @@ module Impl<FullStateConfigSig Config> {
11871189
fwdFlow(node, state, cc, summaryCtx, argAp, ap, _)
11881190
}
11891191

1192+
pragma[assume_small_delta]
11901193
pragma[nomagic]
11911194
private predicate fwdFlow0(
11921195
NodeEx node, FlowState state, Cc cc, ParamNodeOption summaryCtx, ApOption argAp, Ap ap,
@@ -3512,6 +3515,7 @@ module Impl<FullStateConfigSig Config> {
35123515
)
35133516
}
35143517

3518+
pragma[assume_small_delta]
35153519
pragma[nomagic]
35163520
private predicate pathThroughCallable0(
35173521
DataFlowCall call, PathNodeMid mid, ReturnKindExt kind, FlowState state, CallContext cc,

go/ql/lib/semmle/go/dataflow/internal/DataFlowImpl.qll

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -565,6 +565,7 @@ module Impl<FullStateConfigSig Config> {
565565
/**
566566
* Holds if `c` is the target of a store in the flow covered by `fwdFlow`.
567567
*/
568+
pragma[assume_small_delta]
568569
pragma[nomagic]
569570
private predicate fwdFlowConsCand(Content c) {
570571
exists(NodeEx mid, NodeEx node, TypedContent tc |
@@ -784,6 +785,7 @@ module Impl<FullStateConfigSig Config> {
784785
)
785786
}
786787

788+
pragma[nomagic]
787789
additional predicate revFlowState(FlowState state) {
788790
exists(NodeEx node |
789791
sinkNode(node, state) and
@@ -1187,6 +1189,7 @@ module Impl<FullStateConfigSig Config> {
11871189
fwdFlow(node, state, cc, summaryCtx, argAp, ap, _)
11881190
}
11891191

1192+
pragma[assume_small_delta]
11901193
pragma[nomagic]
11911194
private predicate fwdFlow0(
11921195
NodeEx node, FlowState state, Cc cc, ParamNodeOption summaryCtx, ApOption argAp, Ap ap,
@@ -3512,6 +3515,7 @@ module Impl<FullStateConfigSig Config> {
35123515
)
35133516
}
35143517

3518+
pragma[assume_small_delta]
35153519
pragma[nomagic]
35163520
private predicate pathThroughCallable0(
35173521
DataFlowCall call, PathNodeMid mid, ReturnKindExt kind, FlowState state, CallContext cc,

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -565,6 +565,7 @@ module Impl<FullStateConfigSig Config> {
565565
/**
566566
* Holds if `c` is the target of a store in the flow covered by `fwdFlow`.
567567
*/
568+
pragma[assume_small_delta]
568569
pragma[nomagic]
569570
private predicate fwdFlowConsCand(Content c) {
570571
exists(NodeEx mid, NodeEx node, TypedContent tc |
@@ -784,6 +785,7 @@ module Impl<FullStateConfigSig Config> {
784785
)
785786
}
786787

788+
pragma[nomagic]
787789
additional predicate revFlowState(FlowState state) {
788790
exists(NodeEx node |
789791
sinkNode(node, state) and
@@ -1187,6 +1189,7 @@ module Impl<FullStateConfigSig Config> {
11871189
fwdFlow(node, state, cc, summaryCtx, argAp, ap, _)
11881190
}
11891191

1192+
pragma[assume_small_delta]
11901193
pragma[nomagic]
11911194
private predicate fwdFlow0(
11921195
NodeEx node, FlowState state, Cc cc, ParamNodeOption summaryCtx, ApOption argAp, Ap ap,
@@ -3512,6 +3515,7 @@ module Impl<FullStateConfigSig Config> {
35123515
)
35133516
}
35143517

3518+
pragma[assume_small_delta]
35153519
pragma[nomagic]
35163520
private predicate pathThroughCallable0(
35173521
DataFlowCall call, PathNodeMid mid, ReturnKindExt kind, FlowState state, CallContext cc,

python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -565,6 +565,7 @@ module Impl<FullStateConfigSig Config> {
565565
/**
566566
* Holds if `c` is the target of a store in the flow covered by `fwdFlow`.
567567
*/
568+
pragma[assume_small_delta]
568569
pragma[nomagic]
569570
private predicate fwdFlowConsCand(Content c) {
570571
exists(NodeEx mid, NodeEx node, TypedContent tc |
@@ -784,6 +785,7 @@ module Impl<FullStateConfigSig Config> {
784785
)
785786
}
786787

788+
pragma[nomagic]
787789
additional predicate revFlowState(FlowState state) {
788790
exists(NodeEx node |
789791
sinkNode(node, state) and
@@ -1187,6 +1189,7 @@ module Impl<FullStateConfigSig Config> {
11871189
fwdFlow(node, state, cc, summaryCtx, argAp, ap, _)
11881190
}
11891191

1192+
pragma[assume_small_delta]
11901193
pragma[nomagic]
11911194
private predicate fwdFlow0(
11921195
NodeEx node, FlowState state, Cc cc, ParamNodeOption summaryCtx, ApOption argAp, Ap ap,
@@ -3512,6 +3515,7 @@ module Impl<FullStateConfigSig Config> {
35123515
)
35133516
}
35143517

3518+
pragma[assume_small_delta]
35153519
pragma[nomagic]
35163520
private predicate pathThroughCallable0(
35173521
DataFlowCall call, PathNodeMid mid, ReturnKindExt kind, FlowState state, CallContext cc,

ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -565,6 +565,7 @@ module Impl<FullStateConfigSig Config> {
565565
/**
566566
* Holds if `c` is the target of a store in the flow covered by `fwdFlow`.
567567
*/
568+
pragma[assume_small_delta]
568569
pragma[nomagic]
569570
private predicate fwdFlowConsCand(Content c) {
570571
exists(NodeEx mid, NodeEx node, TypedContent tc |
@@ -784,6 +785,7 @@ module Impl<FullStateConfigSig Config> {
784785
)
785786
}
786787

788+
pragma[nomagic]
787789
additional predicate revFlowState(FlowState state) {
788790
exists(NodeEx node |
789791
sinkNode(node, state) and
@@ -1187,6 +1189,7 @@ module Impl<FullStateConfigSig Config> {
11871189
fwdFlow(node, state, cc, summaryCtx, argAp, ap, _)
11881190
}
11891191

1192+
pragma[assume_small_delta]
11901193
pragma[nomagic]
11911194
private predicate fwdFlow0(
11921195
NodeEx node, FlowState state, Cc cc, ParamNodeOption summaryCtx, ApOption argAp, Ap ap,
@@ -3512,6 +3515,7 @@ module Impl<FullStateConfigSig Config> {
35123515
)
35133516
}
35143517

3518+
pragma[assume_small_delta]
35153519
pragma[nomagic]
35163520
private predicate pathThroughCallable0(
35173521
DataFlowCall call, PathNodeMid mid, ReturnKindExt kind, FlowState state, CallContext cc,

swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -565,6 +565,7 @@ module Impl<FullStateConfigSig Config> {
565565
/**
566566
* Holds if `c` is the target of a store in the flow covered by `fwdFlow`.
567567
*/
568+
pragma[assume_small_delta]
568569
pragma[nomagic]
569570
private predicate fwdFlowConsCand(Content c) {
570571
exists(NodeEx mid, NodeEx node, TypedContent tc |
@@ -784,6 +785,7 @@ module Impl<FullStateConfigSig Config> {
784785
)
785786
}
786787

788+
pragma[nomagic]
787789
additional predicate revFlowState(FlowState state) {
788790
exists(NodeEx node |
789791
sinkNode(node, state) and
@@ -1187,6 +1189,7 @@ module Impl<FullStateConfigSig Config> {
11871189
fwdFlow(node, state, cc, summaryCtx, argAp, ap, _)
11881190
}
11891191

1192+
pragma[assume_small_delta]
11901193
pragma[nomagic]
11911194
private predicate fwdFlow0(
11921195
NodeEx node, FlowState state, Cc cc, ParamNodeOption summaryCtx, ApOption argAp, Ap ap,
@@ -3512,6 +3515,7 @@ module Impl<FullStateConfigSig Config> {
35123515
)
35133516
}
35143517

3518+
pragma[assume_small_delta]
35153519
pragma[nomagic]
35163520
private predicate pathThroughCallable0(
35173521
DataFlowCall call, PathNodeMid mid, ReturnKindExt kind, FlowState state, CallContext cc,

0 commit comments

Comments
 (0)