Commit Graph

94 Commits

Author SHA1 Message Date
Jonas Jensen
b75bf06649 C++: Accept test changes in other IR tests 2019-09-24 13:00:21 +02:00
Jonas Jensen
4ef5c9af62 C++: Autoformat everything
Some files that will change in #1736 have been spared.

    ./build -j4 target/jars/qlformat
    find ql/cpp/ql -name "*.ql"  -print0 | xargs -0 target/jars/qlformat --input
    find ql/cpp/ql -name "*.qll" -print0 | xargs -0 target/jars/qlformat --input
    (cd ql && git checkout 'cpp/ql/src/semmle/code/cpp/ir/implementation/**/*SSA*.qll')
    buildutils-internal/scripts/pr-checks/sync-identical-files.py --latest
2019-09-09 11:25:53 +02:00
Dave Bartolomeo
ad966e4bd4 C++: Accept test diffs after imprecise use format change 2019-05-02 11:18:09 -07:00
Dave Bartolomeo
eed0894029 C++: Add operand labels for more operand tags
I kept forgetting which operand on a Chi instruction was which, so I added dump labels. I added labels for the function target of a `Call`, for positional arguments, and for address operands as well.
2019-05-02 11:18:08 -07:00
Robert Marsh
e7ca6c8bd9 C++: test for value number string pooling 2019-04-19 10:50:52 -07:00
Dave Bartolomeo
d8bf3ffe1b C++: Update test expectations 2019-02-13 14:19:57 -08:00
Dave Bartolomeo
5d71d06dbc C++: Fix test expectation 2019-02-07 14:26:00 -08:00
Jonas Jensen
b55573ebe3 C++: Accept test changes in ir_gvn.expected 2019-01-31 10:08:16 +01:00
Robert Marsh
c455db9e59 C++: update test expectations 2019-01-10 11:24:13 -08:00
Aditya Sharad
ce8ca5979b Merge rc/1.19 into next. 2018-12-13 12:23:59 +00:00
Aditya Sharad
3caf4e52a7 Merge rc/1.19 into next. 2018-12-04 12:39:41 +00:00
Nick Rolfe
a637eb651f C++: fix expected test output for improved extraction of agg. inits. 2018-12-03 16:45:53 +00:00
Dave Bartolomeo
7eb47f3f82 C++: A few more IR dataflow tweaks
Made `Node::getType()`, `Node::asParameter()`, and `Node::asUninitialized()` operate directly on the IR. This actually fixed several diffs compared to the AST dataflow, because `getType()` wasn't holding for nodes that weren't `Exprs`.

Made `Uninitialized` a `VariableInstruction`. This makes it consistent with `InitializeParameter`.
2018-11-30 16:53:45 -08:00
Dave Bartolomeo
40864f9ebb C++: Fix GVN test expectation 2018-11-28 14:07:23 -08:00
Dave Bartolomeo
90b79eb5f3 C++: Accept GVN test expectations with Chi nodes 2018-11-27 12:56:23 -08:00
Aditya Sharad
4ff79b046d C++: Update HashCons test output. 2018-09-26 17:56:21 +01:00
Dave Bartolomeo
aa267c8302 C++: Force LF for .c,.cpp,.h,.hpp 2018-09-23 16:23:52 -07:00
Robert Marsh
69962bd06c Merge pull request #203 from dave-bartolomeo/dave/GVN
C++: Initial attempt at IR-based value numbering
2018-09-20 10:00:45 -07:00
Dave Bartolomeo
5a25602c28 C++: Move GVN out of "internal" directory 2018-09-20 08:21:15 -07:00
Dave Bartolomeo
27cee9bd80 C++: Handle inheritance conversions in IR GVN 2018-09-20 08:00:38 -07:00
Dave Bartolomeo
43f0289f0f C++: Remove Phi instructions from previous IR generations
It turns out that when building aliased SSA IR, we were still keeping around the Phi instructions from unaliased SSA IR. These leftover instructions didn't show up in dumps because they were not assigned to a block. However, when dumping additional instruction properties, they would show up as a top-level node in the dump, without a label.
2018-09-18 11:28:09 -07:00
Dave Bartolomeo
46b2c19c66 C++: Initial attempt at IR-based value numbering 2018-09-17 17:19:05 -07:00
Robert Marsh
cb9f1269f9 C++: select example exprs for HashCons portably
This makes two changes to how example exprs are selected. Example exprs
are now ordered separately by each piece of the location, rather than by
stringifying their location. Second, UnknownLocations are now ordered
after locations with absolute paths, by using "~" in the lexicographic
comparison of absolute paths. I think this works on both POSIX and
Windows systems, but it's possible I'm missing a way to start an
absolute path with a unicode character.
2018-09-10 12:22:45 -07:00
Robert Marsh
166dba288b C++: accept test output 2018-09-10 12:22:45 -07:00
Robert Marsh
c42ecfe8f9 C++: Simplify HashCons for new and handle extents 2018-09-10 12:22:44 -07:00
Robert Marsh
06a3e8fc76 C++: Hashcons for ?:, ExprCall, and weird stuff 2018-09-10 12:22:44 -07:00
Robert Marsh
cfeed30a89 C++: Hashcons tests for ArrayExpr 2018-09-10 12:22:44 -07:00
Robert Marsh
8189798f43 C++: HashCons for throw 2018-09-10 12:22:43 -07:00
Robert Marsh
85cfb0202f C++: add HashCons for delete expressions 2018-09-10 12:22:43 -07:00
Robert Marsh
752f39b537 C++: initial support for aggregate initializers 2018-09-10 12:22:43 -07:00
Robert Marsh
8f446aa9cc C++: fix handling of aligned allocators 2018-09-10 12:22:43 -07:00
Robert Marsh
5549b6fcab C++: HashCons for new, new[], sizeof, alignof 2018-09-10 12:22:43 -07:00
Robert Marsh
fede8d63d4 C++: respond to PR comments 2018-09-10 12:22:43 -07:00
Robert Marsh
e6314c5f35 C++: add support for enums in HashCons 2018-09-10 12:22:43 -07:00
Robert Marsh
91da02bacf C++: uniqueness fixes for HashCons 2018-09-10 12:22:42 -07:00
Robert Marsh
3a5eb03055 C++: change floating point value in test 2018-09-10 12:22:42 -07:00
Robert Marsh
77c5a8e7bf C++: support impure binary operations in HashCons 2018-09-10 12:22:42 -07:00
Robert Marsh
b8bd285d64 C++: support functions in HashCons 2018-09-10 12:22:42 -07:00
Robert Marsh
a8895f4bed C++: Support crement ops in HashCons 2018-09-10 12:22:42 -07:00
Robert Marsh
cf222c51ac C++: treat constant-valued exprs structurally 2018-09-10 12:22:42 -07:00
Robert Marsh
d8dc75abf4 C++: rename HashCons test 2018-09-10 12:22:41 -07:00
Robert Marsh
8b8ec7c5aa C++: add literal tests 2018-09-10 12:22:41 -07:00
Robert Marsh
3c6a9c08a2 C++: first tests for HashCons 2018-09-10 12:22:41 -07:00
Pavel Avgustinov
b55526aa58 QL code and tests for C#/C++/JavaScript. 2018-08-02 17:53:23 +01:00