Ivan Krysak
ce6d9a6dbf
Formatting: forbid \brief
2023-07-05 14:33:03 +02:00
Ivan Krysak
7d235f4fd0
Enforce licence header consistency
...
Also do some basic cleanup: capitalize first letters, add `.`
at the end of the sentences, and so on.
2023-07-03 15:23:10 +00:00
Ivan Krysak
5f6003346c
Increase licence header search range
2023-07-03 15:23:10 +00:00
Ivan Krysak
260508dea7
Formatting: add mlir include category
2023-07-03 15:23:10 +00:00
Ivan Krysak
ef7e576886
Formatting: drop unused include categories
2023-07-03 15:23:10 +00:00
Ivan Krysak
ee0dc1866d
Forbid clang format off
2023-07-03 15:23:10 +00:00
Ivan Krysak
5deede9992
Switch to c++20 from c++2a
2023-07-03 15:23:10 +00:00
Ivan Krysak
9f1d9fd5d0
Use Container::contains() where appropriate
2023-07-02 15:06:11 +00:00
Ivan Krysak
5779cd878d
KOCs: make more STL-like
...
This adds a couple of newer methods missing from these templates.
2023-07-02 15:06:11 +00:00
Ivan Krysak
4ab4d85ead
STLExtras: remove incomplete iterator concepts
2023-07-02 15:06:11 +00:00
Ivan Krysak
690df84eca
Concepts: prefer non-strict SpecializationOf
...
Not every case can benefit from extra liniency, so they were manually
reviewed on a case by case basis.
Additionally, this drops a couple of "this should be a non-strict
specialization" commits, because of a bug with clang
(see the GenericGraph concepts rework commit for more details) as
to avoid confusion (we wouldn't want anyone trying to solve these
"todo"s) until the clang struct type deduction is fixed. Especially
considering that there are currently no cases where these softer
versions would be beneficial (we never inherit from templates in
question).
2023-07-02 15:06:11 +00:00
Ivan Krysak
37b8f80bf1
Concepts: introduce SpecializationOf
...
It was not available earlier because it required clang-13+
2023-07-02 17:05:52 +02:00
Ivan Krysak
b927e26f94
Drop concepts provided by the standard library
...
We needed these because our libc++ version didn't provide them. Now that
that's no longer the case, they can be safely dropped.
2023-07-02 13:20:49 +02:00
Ivan Krysak
a123ec2c35
Remove clang-format off around concepts
...
Now that clang-format no longer breaks anything involving a concept or
a requires clause on sight, these are no longer necessary
2023-07-02 13:20:49 +02:00
Ivan Krysak
d0e174497b
Formatting: change PenaltyBreakOpenParenthesis
...
The new value is `800000`, same as that of
`PenaltyBreakBeforeFirstCallParameter`.
Currenly there are no cases where this is relevant in the codebase
(since it was not allowed), so here's an artificial one to illustrate
the situation:
(behaviour before this commit)
```
auto x = short_whatever(
whatever_but_the_name_is_long("first", "second", "a long argument"));
```
(behaviour after this commit)
```
auto x = short_whatever(whatever_but_the_name_is_long("first",
"second",
"a long argument"));
```
2023-07-02 13:20:49 +02:00
Ivan Krysak
bc98e0079f
Formatting: change PenaltyReturnTypeOnItsOwnLine
...
The new value is 21.
2023-07-02 13:20:49 +02:00
Ivan Krysak
01b4ec36c9
Formatting: set AllowShortEnumsOnASingleLine
...
The new value is `false`.
2023-07-02 13:15:08 +02:00
Ivan Krysak
c523167302
Formatting: enforce access modifier whitespaces
2023-07-02 13:09:52 +02:00
Ivan Krysak
f198f67e87
Formatting: set LineEnding to LF
2023-07-02 11:06:55 +00:00
Ivan Krysak
6c668d6820
Formatting: set InsertNewlineAtEOF to true
2023-07-02 11:06:55 +00:00
Ivan Krysak
aabc22a388
Update clang-format-style-file
...
Fill all the missing options based on their values from
`clang-format-16`'s `llvm` configuration.
2023-07-02 11:06:55 +00:00
Ivan Krysak
6e2d222c23
Formatting: update deprecated options
...
Updates options include
- `ConstructorInitializerAllOnOneLineOrOnePerLine: true`
- became `PackConstructorInitializers: NextLine`
2023-07-02 11:06:55 +00:00
Ivan Krysak
0e061aedc4
Make clang-format-style-file a YAML file
2023-07-02 11:06:55 +00:00
Ivan Krysak
7ed14ca65c
Minor improvements
2023-07-02 11:06:55 +00:00
Alessandro Di Federico
5885e4f9c8
ValueMaterializer: fix handling of ptr
2023-06-30 16:57:33 +02:00
Alessandro Di Federico
56d43ff089
Isolate/Enforce: add nomerge to calls
...
Isolated functions already have the `nomerge` attribute, but calls do
not. This is important in presence of indirect calls.
2023-06-30 16:54:01 +02:00
Alessandro Di Federico
5273aaa15c
check-conventions: handle one line commits
2023-06-30 15:05:27 +02:00
Alessandro Di Federico
e97501abc4
Merge branch 'feature/value-materializer'
2023-06-30 14:41:58 +02:00
Alessandro Di Federico
a65ccc3413
Introduce ValueMaterializer
...
`ValueMaterializer` is a rewrite of what was called `AdvancedValueInfo`
which follows the same principles.
The main benefits over the old version is:
* We materialize the data-flow graph and the CFG of the relevant part of
root. This makes debugging significantly easier.
* We drop the old MonotoneFramework infrastructure in favor of
getMaximalFixedPoint.
* We significantly reduce the amount of queries we make to
AdvancedValueInfo.
2023-06-30 13:39:22 +02:00
Alessandro Di Federico
4c01d9c28d
BidirectionalNode: implement edge removal
2023-06-30 13:38:27 +02:00
Alessandro Di Federico
4edcb6dd49
MetaAddress::decomposeIntegerPC: accept APInt
2023-06-30 13:35:04 +02:00
Alessandro Di Federico
466871e866
Introduce RegisterClobberer
2023-06-30 13:28:36 +02:00
Alessandro Di Federico
f120ad334c
Statistics.h: rework
2023-06-30 13:06:58 +02:00
Alessandro Di Federico
5e72f8e31b
ConstantRangeSet::dump: custom APInt formatter
2023-06-30 12:35:18 +02:00
Alessandro Di Federico
08b8b0bd9f
ConstantRangeSet::size: fix corner case
...
In order to correctly represent the size of a 32-bit ConstantRange, you
need 33 bits.
2023-06-30 12:35:18 +02:00
Alessandro Di Federico
b21861b7f9
GraphTraits<GenericGraph>: fix const support
...
GraphTraits were not fully usable in case of a `const` graph due to a
missing std::conditional_t for the definition of the `Node` type.
2023-06-30 12:35:18 +02:00
Alessandro Di Federico
6ca6692d1e
getUniqueJumpTarget: do not abort if PC unwritten
...
Sometimes code performs an indirect jump without changing the value of
the PC. In most cases this is due to non-code or some other faulty
situation, but it is in principle possible that an instruction performs
an indirect branch to its own address.
This commit ensures that this situation does not end up in an hard
failure.
2023-06-30 12:35:18 +02:00
Alessandro Di Federico
3706f77960
LDDTree: mark Logger static
2023-06-30 12:35:18 +02:00
Alessandro Di Federico
5ebec631b9
getMaximalFixedPoint: fix Flow argument type
2023-06-30 12:35:18 +02:00
Ivan Krysak
e3be901f1f
STLExtras: allow skip to result in empty ranges
...
This only affects the case where the number of elements to be skipped
exactly matches the number of elements in the container.
2023-06-30 12:35:18 +02:00
Alessandro Di Federico
d3c37fc692
ProgramCounterHandler::expandNewPC: take CallBase
2023-06-30 12:35:18 +02:00
Alessandro Di Federico
b8b2fcff71
GenericGraph tests: zero initialize EdgeLabel::X
2023-06-30 12:35:18 +02:00
Alessandro Di Federico
84dd10cbdb
GenerichGraph.h: nullptr-initialize Edge::Neighbor
2023-06-30 12:35:18 +02:00
Alessandro Di Federico
b53d3f457b
Minor changes
2023-06-30 12:35:18 +02:00
Alessandro Di Federico
c2f7f62677
Merge branch 'gh/feature/fix-test-list'
2023-06-30 10:47:08 +02:00
Alessandro Di Federico
72947f0f71
tests: limit inputs to ensure 1-to-1 matching
2023-06-23 17:57:02 +02:00
Alessandro Di Federico
0ecfbf94b9
SystemV_x86: remove VectorArgumentRegisters
2023-06-23 17:56:09 +02:00
Alessandro Di Federico
42abf64c62
revng.cli: ensure proper exit code propagation
2023-06-23 17:55:41 +02:00
Alessandro Di Federico
942cc1323a
revng::verify: dump module upon failure
2023-06-23 17:54:55 +02:00
Alessandro Di Federico
fa61c784c2
Reintroduce st0_x86 as floating point return value
2023-06-23 17:54:16 +02:00