Commit Graph

3356 Commits

Author SHA1 Message Date
Dave Bartolomeo
10bbd566d4 C++: Autoformat 2020-07-01 02:28:53 -04:00
Dave Bartolomeo
6592f8c1bb C++: QLDoc cleanup
This PR just fixes a few bits of PR feedback from my previous QLDoc PR.
2020-06-30 17:33:52 -04:00
Jonas Jensen
cff0f48d34 C++: Work around join-order issue in flow-through
In this non-linear recursion, a `#prev` relation was joined earlier than
the `#prev_delta` relation. As a result, each iteration of the predicate
processes every tuple from previous iterations.

This quadratic behavior caused severe slowdowns on oneapi-src/oneDNN.
2020-06-30 21:12:57 +02:00
Jonas Jensen
17beb2d867 C++: Remove big-step relation in flow-through code
This relation was originally introduced to improve performance but may
no longer be necessary. The `localFlowStepPlus` predicate had an
explosion of tuples on oneapi-src/oneDNN for C++.
2020-06-30 21:06:45 +02:00
Tom Hvitved
1fa58bd82d Data flow: Sync files 2020-06-30 17:37:16 +02:00
Tom Hvitved
6bcb8a3a5b C#: Replace getErasedRepr() and getTypeBound() with getNodeType() 2020-06-30 17:37:16 +02:00
Jonas Jensen
63de58c557 Merge pull request #3819 from dbartol/codeql-c-analysis-team/40/2
C++: More IR QLDoc (including `Opcode.qll`)
2020-06-30 17:09:15 +02:00
Jonas Jensen
47bb007b9a C++: Autoformat fixups 2020-06-30 09:56:39 +02:00
Tom Hvitved
3efe1a9d10 C#: Remove unused viableImpl predicate 2020-06-30 08:31:30 +02:00
Tom Hvitved
b57cfc965a Merge pull request #3804 from aschackmull/dataflow/dispatch-refactor
Dataflow: Refactor dispatch with call context.
2020-06-30 08:28:27 +02:00
Gavin Lang
7a023a65b0 Grammatical issues in Encryption using ECB.qhelp 2020-06-30 15:33:05 +10:00
Dave Bartolomeo
42657dbe3f C++: Miscellaneous IR QLDoc 2020-06-29 14:30:12 -04:00
Dave Bartolomeo
1fa38474e9 C++: Autoformat 2020-06-29 14:09:53 -04:00
Dave Bartolomeo
c52653270e C++: QLDoc for IRConfiguration.qll 2020-06-29 12:43:51 -04:00
Dave Bartolomeo
87f0b0ef97 C++: QLDoc for EdgeKind.qll 2020-06-29 12:43:50 -04:00
Dave Bartolomeo
440ea6a069 C++: QLDoc for PrintIR.qll 2020-06-29 12:43:50 -04:00
Dave Bartolomeo
2043d9c7c4 C++: QLDoc for Operand.qll 2020-06-29 12:43:50 -04:00
Dave Bartolomeo
ead2a143e0 C++: QLDoc for IRVariable
Moved a couple of predicates that were only needed by IR construction into `TranslatedElement.qll`
2020-06-29 12:43:50 -04:00
Dave Bartolomeo
98348a9353 C++: QLDoc for IR.qll 2020-06-29 12:43:50 -04:00
Dave Bartolomeo
88f89b3334 C++: QLDoc for IRFunction.qll 2020-06-29 12:43:49 -04:00
Dave Bartolomeo
d0af9f5808 C++: QLDoc all of IRBlock.qll 2020-06-29 12:43:49 -04:00
Dave Bartolomeo
77bf564136 C++: Finish Instruction.qll QLDoc 2020-06-29 12:43:49 -04:00
Dave Bartolomeo
6de3d5bc3d C++: Change opcode QLDocs to refer to instruction QLDocs
As discussed in today's C++ analysis team meeting. `Opcode` is rarely used directly, so we'll just refer to the documentation for the corresponding `Instruction` class.

I've preserved the script in case we want to do a bulk change of all of the `Opcode` comments, but I don't expect it will be needed if we just add a new `Opcode` or two.
2020-06-29 12:41:36 -04:00
Anders Schack-Mulligen
0bd81eb4b8 Dataflow: Fix reference to viableCallable. 2020-06-29 16:22:58 +02:00
Dave Bartolomeo
4dcdd8a0ee C++: Add last remaining QLDoc to Opcode.qll 2020-06-26 17:25:30 -04:00
Dave Bartolomeo
bdf121f3b8 C++: Update opcode QLDoc script to handle abstract base classes
This auto-generates even more QLDoc for `Opcode.qll`
2020-06-26 16:04:33 -04:00
Dave Bartolomeo
281985b845 C++: Sync Opcode.qll QLDoc with Instruction.qll QLDoc
For every concrete `Opcode`, there is a corresponding `Instruction` class. Rather than duplicate all of the QLDoc by hand, I wrote a quick Python script to copy the QLDoc from `Instruction.qll` to `Opcode.qll`. I don't expect that we will need to do this often, so I'm not hooking it up to a PR check or anything like that, but I did commit the script itself in case we need it again.
2020-06-26 11:42:32 -04:00
Dave Bartolomeo
023e1dc0a2 Instruction and opcode cleanup
- Renamed `DynamicCastToVoid` to the more descriptive `CompleteObjectAddress`
- Split verbose description from summary in a few Instruction QLDoc comments.
- Added `Instruction` classes for the few remaining `Opcode`s that didn't have one.
- Removed a use of "e.g."
2020-06-26 11:39:10 -04:00
Dave Bartolomeo
f48948c604 C++: Opcode cleanup
- Remove unused `MemoryAccessOpcode`
- Make `OpcodeWithCondition` private
- Add QLDoc for `Opcode` module
2020-06-26 09:04:37 -04:00
Mathias Vorreiter Pedersen
beb66299e9 Merge pull request #3796 from dbartol/codeql-c-analysis-team/40/2
C++: QLDoc for all of `Instruction.qll`
2020-06-26 14:04:48 +02:00
Tom Hvitved
795c5784b0 C#: Precise data flow for collections 2020-06-26 13:40:05 +02:00
Jonas Jensen
9d8052a434 Merge pull request #3813 from MathiasVP/is-argument-for-parameter-join-order
C++: Improve join order for AliasAnalysis::isArgumentForParameter
2020-06-26 11:34:33 +02:00
Mathias Vorreiter Pedersen
63752dddef C++/C#: Sync identical files 2020-06-26 09:08:44 +02:00
Dave Bartolomeo
7e3f2dbe4c C++: Improve QLDoc for getElementSize() 2020-06-25 17:04:32 -04:00
Calum Grant
b759856ccb Merge pull request #3792 from calumgrant/cs/qldoc-coverage1
C#: Improve qldoc coverage
2020-06-25 16:34:52 +01:00
Dave Bartolomeo
b889d3687e C++: Fix QLDoc review feedback 2020-06-25 09:33:43 -04:00
Anders Schack-Mulligen
6c679c328d Dataflow: Refactor dispatch with call context. 2020-06-25 14:28:35 +02:00
Dave Bartolomeo
6dc02c719b C++: Fix typos 2020-06-25 07:19:15 -04:00
Calum Grant
4642bb2767 Merge pull request #3774 from hvitved/csharp/tripleticks
C#: Enable syntax highlighting in QLDoc snippets
2020-06-25 10:31:50 +01:00
Calum Grant
6e3609696a C#: Address review comments. 2020-06-25 09:59:59 +01:00
Dave Bartolomeo
2685aa4b8b C++: Use fewer words 2020-06-24 20:42:02 -04:00
Dave Bartolomeo
8b02f121d6 C++: QLDoc for all of Instruction.qll
I think I've now documented every class and public predicate in `Instruction.qll` I've tried to include detailed semantics of each instruction where appropriate.
2020-06-24 20:29:31 -04:00
Calum Grant
d32199cccc C#: QLdoc for CIL instructions. 2020-06-24 22:01:33 +01:00
Calum Grant
262a20cea0 C#: Add qldocs for Concurrency.qll, Documentation.qll, cil.qll and dotnet.qll. 2020-06-24 22:01:33 +01:00
Anders Schack-Mulligen
941177ee25 Merge pull request #3762 from hvitved/dataflow/clear-contents
Data flow: Model field clearing
2020-06-24 10:19:50 +02:00
Tom Hvitved
652de80fa5 C#: Enable syntax highlighting in QLDoc snippets 2020-06-23 16:56:56 +02:00
Tom Hvitved
a3e7fd60f2 Data flow: Enable syntax highlighting in QLDoc snippets 2020-06-23 16:54:34 +02:00
Tom Hvitved
ff751ac0f8 Data flow: Sync files 2020-06-23 10:55:12 +02:00
Tom Hvitved
98ed2a18ac Data flow: Move field-clearing checks from flowCandFwf0 into flowCandFwd 2020-06-23 10:55:12 +02:00
Tom Hvitved
13b4dfa972 Data flow: Rename BigStepBarrierNode to FlowCheckNode 2020-06-23 10:55:12 +02:00