Mathias Vorreiter Pedersen
|
6e5f09f7bb
|
C++: Ignore more instructions in dataflow.
|
2023-04-18 13:32:24 +01:00 |
|
Mathias Vorreiter Pedersen
|
bb8c3de6b2
|
Merge pull request #12599 from rdmarsh2/rdmarsh2/range-analysis-overflow
C++: add overflow detection to new range analysis
|
2023-04-17 20:18:44 +01:00 |
|
github-actions[bot]
|
648f0e19ec
|
Post-release preparation for codeql-cli-2.13.0
|
2023-04-17 15:39:24 +00:00 |
|
Mathias Vorreiter Pedersen
|
2a14479bf3
|
C++: Autoformat.
|
2023-04-17 09:34:44 +01:00 |
|
Mathias Vorreiter Pedersen
|
a87e67d89d
|
C++: Fix join orders.
Before:
```
Tuple counts for RangeAnalysisStage#38d7ce80::RangeStage#FloatDelta#0eab55d1::FloatDelta#RangeAnalysisImpl#edd69a76::ConstantBounds#FloatDelta#0eab55d1::FloatOverflow#RangeAnalysisConstantSpecific#878f81e8::CppLangImplConstant#RangeUtils#6da26777::RangeUtil#FloatDelta#0eab55d1::FloatDelta#RangeAnalysisConstantSpecific#878f81e8::CppLangImplConstant##::potentiallyOverflowingExpr#2#ff/2@36ed7auu after 42.1s:
365 ~0% {2} r1 = JOIN num#SemanticOpcode#e6f455a5::TNegate#f WITH SemanticExpr#91573b9a::SemExpr::getOpcode#0#dispred#fb_10#join_rhs ON FIRST 1 OUTPUT false, Rhs.1 'expr'
0 ~0% {2} r2 = JOIN num#SemanticOpcode#e6f455a5::TSubOne#f WITH SemanticExpr#91573b9a::SemExpr::getOpcode#0#dispred#fb_10#join_rhs ON FIRST 1 OUTPUT false, Rhs.1 'expr'
365 ~0% {2} r3 = r1 UNION r2
0 ~0% {2} r4 = JOIN num#SemanticOpcode#e6f455a5::TAddOne#f WITH project#SemanticExpr#91573b9a::SemKnownExpr#class#fff_10#join_rhs ON FIRST 1 OUTPUT true, Rhs.1 'expr'
2 ~0% {2} r5 = JOIN m#RangeAnalysisStage#38d7ce80::RangeStage#FloatDelta#0eab55d1::FloatDelta#RangeAnalysisImpl#edd69a76::ConstantBounds#FloatDelta#0eab55d1::FloatOverflow#RangeAnalysisConstantSpecific#878f81e8::CppLangImplConstant#RangeUtils#6da26777::RangeUtil#FloatDelta#0eab55d1::FloatDelta#RangeAnalysisConstantSpecific#878f81e8::CppLangImplConstant##::boundedPhiInp1#6#ffbfff WITH num#SemanticOpcode#e6f455a5::TMul#f CARTESIAN PRODUCT OUTPUT Rhs.0, Lhs.0 'positively'
22026 ~0% {2} r6 = JOIN r5 WITH SemanticExpr#91573b9a::SemExpr::getOpcode#0#dispred#fb_10#join_rhs ON FIRST 1 OUTPUT Lhs.1 'positively', Rhs.1 'expr'
2 ~0% {2} r7 = JOIN m#RangeAnalysisStage#38d7ce80::RangeStage#FloatDelta#0eab55d1::FloatDelta#RangeAnalysisImpl#edd69a76::ConstantBounds#FloatDelta#0eab55d1::FloatOverflow#RangeAnalysisConstantSpecific#878f81e8::CppLangImplConstant#RangeUtils#6da26777::RangeUtil#FloatDelta#0eab55d1::FloatDelta#RangeAnalysisConstantSpecific#878f81e8::CppLangImplConstant##::boundedPhiInp1#6#ffbfff WITH num#SemanticOpcode#e6f455a5::TShiftLeft#f CARTESIAN PRODUCT OUTPUT Rhs.0, Lhs.0 'positively'
1978 ~0% {2} r8 = JOIN r7 WITH SemanticExpr#91573b9a::SemExpr::getOpcode#0#dispred#fb_10#join_rhs ON FIRST 1 OUTPUT Lhs.1 'positively', Rhs.1 'expr'
24004 ~0% {2} r9 = r6 UNION r8
24004 ~0% {2} r10 = r4 UNION r9
24369 ~0% {2} r11 = r3 UNION r10
2726 ~1% {2} r12 = JOIN project#SemanticExpr#91573b9a::SemDivExpr#fffff WITH project#SemanticExpr#91573b9a::SemKnownExpr#class#fff#2 ON FIRST 1 OUTPUT Rhs.1, Lhs.0 'expr'
1900 ~2% {2} r13 = JOIN r12 WITH SemanticType#3725723c::SemFloatingPointType#ff ON FIRST 1 OUTPUT false, Lhs.1 'expr'
4500 ~0% {1} r14 = JOIN SemanticExpr#91573b9a::SemExpr::getOpcode#0#dispred#fb_10#join_rhs WITH num#SemanticOpcode#e6f455a5::TAdd#f ON FIRST 1 OUTPUT Lhs.1 'expr'
0 ~0% {1} r15 = JOIN SemanticExpr#91573b9a::SemExpr::getOpcode#0#dispred#fb_10#join_rhs WITH num#SemanticOpcode#e6f455a5::TPointerAdd#f ON FIRST 1 OUTPUT Lhs.1 'expr'
4500 ~0% {1} r16 = r14 UNION r15
4000 ~0% {2} r17 = JOIN r16 WITH project#SemanticExpr#91573b9a::SemBinaryExpr#fffff#2 ON FIRST 1 OUTPUT Rhs.1, Lhs.0 'expr'
7000 ~0% {2} r18 = JOIN r17 WITH SignAnalysisCommon#4b1623af::SignAnalysis#FloatDelta#0eab55d1::FloatDelta#RangeUtils#6da26777::RangeUtil#FloatDelta#0eab55d1::FloatDelta#RangeAnalysisConstantSpecific#878f81e8::CppLangImplConstant##::semExprSign#1#ff ON FIRST 1 OUTPUT Rhs.1, Lhs.1 'expr'
1264 ~0% {2} r19 = JOIN r18 WITH num#Sign#2ecc774b::TNeg#f ON FIRST 1 OUTPUT Lhs.0, Lhs.1 'expr'
188324151 ~0% {2} r20 = JOIN r19 WITH SignAnalysisCommon#4b1623af::SignAnalysis#FloatDelta#0eab55d1::FloatDelta#RangeUtils#6da26777::RangeUtil#FloatDelta#0eab55d1::FloatDelta#RangeAnalysisConstantSpecific#878f81e8::CppLangImplConstant##::semExprSign#1#ff_10#join_rhs ON FIRST 1 OUTPUT Lhs.1 'expr', Rhs.1
1000 ~0% {2} r21 = JOIN r20 WITH project#SemanticExpr#91573b9a::SemBinaryExpr#fffff ON FIRST 2 OUTPUT false, Lhs.0 'expr'
2900 ~0% {2} r22 = r13 UNION r21
3259 ~2% {2} r23 = JOIN r18 WITH num#Sign#2ecc774b::TPos#f ON FIRST 1 OUTPUT Lhs.0, Lhs.1 'expr'
1521124720 ~0% {2} r24 = JOIN r23 WITH SignAnalysisCommon#4b1623af::SignAnalysis#FloatDelta#0eab55d1::FloatDelta#RangeUtils#6da26777::RangeUtil#FloatDelta#0eab55d1::FloatDelta#RangeAnalysisConstantSpecific#878f81e8::CppLangImplConstant##::semExprSign#1#ff_10#join_rhs ON FIRST 1 OUTPUT Lhs.1 'expr', Rhs.1
3000 ~2% {2} r25 = JOIN r24 WITH project#SemanticExpr#91573b9a::SemBinaryExpr#fffff ON FIRST 2 OUTPUT true, Lhs.0 'expr'
```
(I stopped evaluation midway.)
After:
```ql
Evaluated relational algebra for predicate RangeAnalysisStage#38d7ce80::RangeStage#FloatDelta#0eab55d1::FloatDelta#RangeAnalysisImpl#edd69a76::ConstantBounds#FloatDelta#0eab55d1::FloatOverflow#RangeAnalysisConstantSpecific#878f81e8::CppLangImplConstant#RangeUtils#6da26777::RangeUtil#FloatDelta#0eab55d1::FloatDelta#RangeAnalysisConstantSpecific#878f81e8::CppLangImplConstant##::potentiallyOverflowingExpr#2#ff@dc3a0712 with tuple counts:
26269 ~2% {2} r1 = _SemanticExpr#91573b9a::SemExpr::getOpcode#0#dispred#fb_10#join_rhs_m#RangeAnalysisStage#38d7ce80::R__#shared UNION _SemanticExpr#91573b9a::SemExpr::getOpcode#0#dispred#fb_10#join_rhs_SemanticType#3725723c::SemFloati__#shared
26269 ~2% {2} r2 = _num#SemanticOpcode#e6f455a5::TAddOne#f_project#SemanticExpr#91573b9a::SemKnownExpr#class#fff_10#joi__#shared UNION r1
41333 ~1% {2} r3 = JOIN _SemanticExpr#91573b9a::SemExpr::getOpcode#0#dispred#fb_10#join_rhs_num#SemanticOpcode#e6f455a5::TAd__#shared WITH SignAnalysisCommon#4b1623af::SignAnalysis#FloatDelta#0eab55d1::FloatDelta#RangeUtils#6da26777::RangeUtil#FloatDelta#0eab55d1::FloatDelta#RangeAnalysisConstantSpecific#878f81e8::CppLangImplConstant##::semExprSign#1#ff ON FIRST 1 OUTPUT Rhs.1, Lhs.1
5806 ~2% {2} r4 = JOIN r3 WITH num#Sign#2ecc774b::TNeg#f ON FIRST 1 OUTPUT Lhs.1, Lhs.0
5806 ~1% {3} r5 = JOIN r4 WITH project#SemanticExpr#91573b9a::SemBinaryExpr#fffff#2 ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.0
3612 ~0% {2} r6 = JOIN r5 WITH SignAnalysisCommon#4b1623af::SignAnalysis#FloatDelta#0eab55d1::FloatDelta#RangeUtils#6da26777::RangeUtil#FloatDelta#0eab55d1::FloatDelta#RangeAnalysisConstantSpecific#878f81e8::CppLangImplConstant##::semExprSign#1#ff ON FIRST 2 OUTPUT false, Lhs.2
18476 ~1% {2} r7 = JOIN r3 WITH num#Sign#2ecc774b::TPos#f ON FIRST 1 OUTPUT Lhs.1, Lhs.0
18476 ~1% {3} r8 = JOIN r7 WITH project#SemanticExpr#91573b9a::SemBinaryExpr#fffff#2 ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.0
18444 ~2% {2} r9 = JOIN r8 WITH SignAnalysisCommon#4b1623af::SignAnalysis#FloatDelta#0eab55d1::FloatDelta#RangeUtils#6da26777::RangeUtil#FloatDelta#0eab55d1::FloatDelta#RangeAnalysisConstantSpecific#878f81e8::CppLangImplConstant##::semExprSign#1#ff ON FIRST 2 OUTPUT true, Lhs.2
22056 ~0% {2} r10 = r6 UNION r9
24137 ~2% {2} r11 = JOIN _SemanticExpr#91573b9a::SemExpr::getOpcode#0#dispred#fb_10#join_rhs_num#SemanticOpcode#e6f455a5::TPo__#shared WITH SignAnalysisCommon#4b1623af::SignAnalysis#FloatDelta#0eab55d1::FloatDelta#RangeUtils#6da26777::RangeUtil#FloatDelta#0eab55d1::FloatDelta#RangeAnalysisConstantSpecific#878f81e8::CppLangImplConstant##::semExprSign#1#ff ON FIRST 1 OUTPUT Rhs.1, Lhs.1
16966 ~2% {1} r12 = JOIN r11 WITH num#Sign#2ecc774b::TPos#f ON FIRST 1 OUTPUT Lhs.1
16966 ~4% {2} r13 = JOIN r12 WITH project#SemanticExpr#91573b9a::SemBinaryExpr#fffff ON FIRST 1 OUTPUT Rhs.1, Lhs.0
24917 ~1% {2} r14 = JOIN r13 WITH SignAnalysisCommon#4b1623af::SignAnalysis#FloatDelta#0eab55d1::FloatDelta#RangeUtils#6da26777::RangeUtil#FloatDelta#0eab55d1::FloatDelta#RangeAnalysisConstantSpecific#878f81e8::CppLangImplConstant##::semExprSign#1#ff ON FIRST 1 OUTPUT Rhs.1, Lhs.1
2781 ~0% {2} r15 = JOIN r14 WITH num#Sign#2ecc774b::TNeg#f ON FIRST 1 OUTPUT false, Lhs.1
2817 ~0% {1} r16 = JOIN r11 WITH num#Sign#2ecc774b::TNeg#f ON FIRST 1 OUTPUT Lhs.1
2817 ~0% {2} r17 = JOIN r16 WITH project#SemanticExpr#91573b9a::SemBinaryExpr#fffff ON FIRST 1 OUTPUT Rhs.1, Lhs.0
6922 ~0% {2} r18 = JOIN r17 WITH SignAnalysisCommon#4b1623af::SignAnalysis#FloatDelta#0eab55d1::FloatDelta#RangeUtils#6da26777::RangeUtil#FloatDelta#0eab55d1::FloatDelta#RangeAnalysisConstantSpecific#878f81e8::CppLangImplConstant##::semExprSign#1#ff ON FIRST 1 OUTPUT Rhs.1, Lhs.1
2765 ~1% {2} r19 = JOIN r18 WITH num#Sign#2ecc774b::TPos#f ON FIRST 1 OUTPUT true, Lhs.1
5546 ~0% {2} r20 = r15 UNION r19
27602 ~0% {2} r21 = r10 UNION r20
53871 ~0% {2} r22 = r2 UNION r21
return r22
```
|
2023-04-17 09:28:31 +01:00 |
|
Mathias Vorreiter Pedersen
|
7eee589304
|
Merge pull request #12569 from andersfugmann/andersfugmann/use_after_free
C++: Implement use-after-free and double-free queries using the new IR use-use dataflow
|
2023-04-17 08:01:58 +01:00 |
|
Geoffrey White
|
ba982e2f85
|
Merge pull request #12752 from gsingh93/buffer-access-array-expr
C++: Consider ArrayExpr with non-constant size expressions as a BufferAccess
|
2023-04-14 15:31:20 +01:00 |
|
Jeroen Ketema
|
0c7346707b
|
Fix minor issues with change notes
|
2023-04-14 15:37:04 +02:00 |
|
github-actions[bot]
|
075d063370
|
Release preparation for version 2.13.0
|
2023-04-14 13:31:30 +00:00 |
|
Alex Eyers-Taylor
|
c6a482819a
|
Bump all qlpacks major versions
|
2023-04-13 19:15:27 +01:00 |
|
Robert Marsh
|
fddbffee6f
|
C++: autoformat
|
2023-04-13 11:13:27 -04:00 |
|
Robert Marsh
|
316cb95547
|
C++: respond to overflow PR comments
|
2023-04-13 10:03:55 -04:00 |
|
Alex Ford
|
8c46bfd051
|
Merge pull request #12816 from github/rc/3.9
Merge `rc/3.9` into `main`
|
2023-04-13 12:35:41 +01:00 |
|
Chris Smowton
|
7eefa43f5a
|
Rename and document viableArgParamSpecific to make clear it is a temporary hook.
|
2023-04-12 14:33:46 +01:00 |
|
Chris Smowton
|
4d8ca3d759
|
Add dataflow callback to filter out receiver argument flow to Golang interface dispatch candidates.
Other langauges stub the callback.
|
2023-04-12 14:19:06 +01:00 |
|
Mathias Vorreiter Pedersen
|
ab70f5722e
|
C++: More QLDoc.
|
2023-04-12 11:22:31 +01:00 |
|
Mathias Vorreiter Pedersen
|
d65bb3b232
|
C++: Make basic block information available from dataflow nodes.
|
2023-04-11 13:52:26 +01:00 |
|
Jeroen Ketema
|
12702b59d3
|
C++: Fix deprecation warning
|
2023-04-06 17:13:15 +02:00 |
|
Jeroen Ketema
|
9123657fd2
|
C++: Update product flow to match data flow naming
|
2023-04-06 17:13:12 +02:00 |
|
Jeroen Ketema
|
a38c3171dd
|
C++: Use Unit instead of string in product flow
|
2023-04-06 17:11:56 +02:00 |
|
Jeroen Ketema
|
9b89a303ef
|
C++: Simplify the flow-state-less product flow module
|
2023-04-06 17:11:32 +02:00 |
|
Jeroen Ketema
|
4e12924521
|
C++: Refactor ProductFlow to have a DataFlow::ConfigSig-like interface
|
2023-04-06 17:10:40 +02:00 |
|
Robert Marsh
|
915c969efe
|
Merge branch 'main' into rdmarsh2/range-analysis-overflow
|
2023-04-05 16:19:55 -04:00 |
|
github-actions[bot]
|
ac426b1302
|
Post-release preparation for codeql-cli-2.12.6
|
2023-04-04 16:49:26 +00:00 |
|
Mathias Vorreiter Pedersen
|
7a32299f34
|
C++: Oops. Forgot to replace one use of a deprecated predicate.
|
2023-04-04 15:30:02 +01:00 |
|
Mathias Vorreiter Pedersen
|
6467ba4324
|
C++: Add change note.
|
2023-04-04 15:19:14 +01:00 |
|
Mathias Vorreiter Pedersen
|
f2197e67f5
|
C++: Deprecate single-parameter 'getFieldExpr' and 'getElementExpr'.
|
2023-04-04 15:14:27 +01:00 |
|
Mathias Vorreiter Pedersen
|
f28cf25ba2
|
Merge pull request #12755 from MathiasVP/aggregate-initialization-ir
C++: IR generation for repeated initializers
|
2023-04-04 15:04:55 +01:00 |
|
Robert Marsh
|
e4ae957cdd
|
C++: More fixes to overflow detection
|
2023-04-04 09:31:03 -04:00 |
|
Mathias Vorreiter Pedersen
|
6c26ad7c2d
|
C++: Expand QLDoc.
|
2023-04-04 14:02:31 +01:00 |
|
Mathias Vorreiter Pedersen
|
86fd2d5309
|
Merge pull request #12747 from MathiasVP/promote-new-range-analysis-out-of-experimental
C++: Promote IR-based range-analysis library out of experimental
|
2023-04-04 11:17:48 +01:00 |
|
Mathias Vorreiter Pedersen
|
52682e2ccb
|
C++: Replace the word 'repetition' with 'position' to properly reflect the semantics of the dbscheme.
|
2023-04-04 11:02:55 +01:00 |
|
Mathias Vorreiter Pedersen
|
6dd6488437
|
C++: Introduce 'getAnElementExpr' and 'getAnExpr'.
|
2023-04-04 10:12:25 +01:00 |
|
Mathias Vorreiter Pedersen
|
bef0a159c0
|
C++: IR generation for repeated initializers.
|
2023-04-04 10:08:32 +01:00 |
|
Gulshan Singh
|
56dc2a4d4e
|
C++: Consider ArrayExpr with non-constant size expressions as BufferAccesses
|
2023-04-03 23:11:14 -07:00 |
|
Mathias Vorreiter Pedersen
|
f6e774ed2e
|
C++: Alias the experimental 'Bound.qll' with the non-experimental one.
|
2023-04-03 18:18:33 +01:00 |
|
Alexandre Boulgakov
|
0aa39c0ca0
|
Merge pull request #12712 from github/sashabu/repeated-initializers
C++: Support repeated initializers in dbscheme.
|
2023-04-03 14:46:17 +01:00 |
|
Mathias Vorreiter Pedersen
|
4c5ca082ce
|
C++: Delete the experimental range-analysis library.
|
2023-04-03 13:53:43 +01:00 |
|
Mathias Vorreiter Pedersen
|
e8800a6dba
|
C++: Move the new range-analysis library out of experimental and into an 'internal' directory.
|
2023-04-03 13:53:43 +01:00 |
|
Jeroen Ketema
|
e5c7c88588
|
Merge pull request #12737 from MathiasVP/speed-up-gvn
C++: Speed up non-linear recursion in GVN library
|
2023-04-03 10:46:37 +02:00 |
|
Jeroen Ketema
|
1d9fc8a581
|
Merge branch 'main' into sashabu/repeated-initializers
|
2023-04-03 09:48:23 +02:00 |
|
Mathias Vorreiter Pedersen
|
9a34a7b7cc
|
Merge pull request #12719 from jketema/typebound-size
|
2023-04-03 08:31:41 +01:00 |
|
Mathias Vorreiter Pedersen
|
6638df1578
|
C++: Sync identical files.
|
2023-03-31 18:25:34 +01:00 |
|
Mathias Vorreiter Pedersen
|
0b33d26852
|
C++: Speed up non-linear recursion in GVN.
|
2023-03-31 18:25:19 +01:00 |
|
Alexandre Boulgakov
|
e593f0f7b3
|
C++: Update database stats.
|
2023-03-31 17:53:12 +01:00 |
|
Alexandre Boulgakov
|
b5932debc0
|
C++: Add db upgrade and downgrade scripts for repeated initializers.
|
2023-03-31 17:53:12 +01:00 |
|
Alexandre Boulgakov
|
d0a77a8433
|
C++: Support repeated initializers in dbscheme.
|
2023-03-31 17:53:12 +01:00 |
|
Jeroen Ketema
|
8d9b96b776
|
C++: Drop the bit size restriction in typeBound and use float
|
2023-03-31 14:36:11 +02:00 |
|
Geoffrey White
|
cc841a68f6
|
Merge pull request #11921 from gsingh93/range-node
C++: Add RangeNode class
|
2023-03-31 13:22:19 +01:00 |
|
github-actions[bot]
|
0a3218676c
|
Release preparation for version 2.12.6
|
2023-03-30 19:25:06 +00:00 |
|