Massimo Fioravanti
866392472f
Fix tools empty input crash
...
Fix various edge cases when a binary with no functions was analyzed
2022-11-22 15:10:52 +01:00
Alessandro Di Federico
009c0c2434
flake8: disable R505 (else after return statement)
2022-11-22 15:10:52 +01:00
Massimo Fioravanti
0bfb73fe95
FunctionMetadata: introduce cache
...
FunctionMetadata was being deserialized every time they were
inspected. This commit introduces a cache structure to prevent this
excessive deserializations.
2022-11-22 14:15:00 +01:00
Alessandro Di Federico
517f33e673
Merge branch 'feature/ptml-c-refactor'
2022-11-22 10:37:26 +01:00
Pietro Fezzardi
764c7efbb8
Make isCallTo accept any llvm::Value *
2022-11-22 10:12:34 +01:00
Pietro Fezzardi
fd0914b460
QualifiedType: add isConst method
2022-11-22 10:12:31 +01:00
Pietro Fezzardi
4334481894
UpcastablePointer: upcast with mutable callables
2022-11-15 14:15:20 +01:00
Pietro Fezzardi
fb7edef129
Add ptml::scopeTag helper function
2022-11-15 14:15:20 +01:00
Alessandro Di Federico
7db60e68d2
Merge branch 'feature/kinds-expose-locations'
2022-11-11 14:25:31 +01:00
Giacomo Vercesi
7526d72492
Kinds: exposed locations produced
...
Expose the locations that can be found in each kind
2022-11-11 13:43:55 +01:00
Giacomo Vercesi
d185fc80ac
Rank: fix RankConvertibleTo with RootRank
...
RankConvertibleTo would be erroneously fail when used with a RootRank
either in the From or To template parameter.
2022-11-11 13:43:55 +01:00
Alessandro Di Federico
ee3a8af90a
Merge branch 'feature/avi-performance'
2022-11-10 19:41:56 +01:00
Massimo Fioravanti
fa30486ce0
Outliner: create extractor cache once
2022-11-10 19:41:42 +01:00
Massimo Fioravanti
ad0f1163b2
AVI: increase performance by caching successors
2022-11-10 19:40:11 +01:00
Alessandro Di Federico
91c4bdcd79
Merge branch 'feature/revng-distributable-revamp'
2022-11-02 11:51:35 +01:00
Giacomo Vercesi
48cd3aad42
revng.cli: init commands_registry once
...
Only init commands_registry once, this is to avoid commands being
re-registered and allow quicker execution of nested commands.
2022-11-02 11:50:40 +01:00
Giacomo Vercesi
dad9dbcec8
getCurrentRoot: improve /proc/self/maps parsing
...
This fixes a behavior in getCurrentRoot that would lead it to reporting
an incorrect path if revng was installed in a path with spaces.
2022-11-02 11:50:40 +01:00
Giacomo Vercesi
4af389c703
daemon-self-test: fix daemon output
...
Fix the `fail` function, to properly capture the output of the daemon
process in case of failure.
2022-11-02 11:50:40 +01:00
Giacomo Vercesi
4ae8df0ad2
Yield disassembler: drop support for AMDGPU
2022-11-02 11:50:40 +01:00
Massimo Fioravanti
e24fdbd446
revng-artifact: handle binaries with 0 functions
...
When revng-artifact is requested to produce the functions of a binary
that had 0 functions, it crashed. This commit fixes it by checking if
something has been actually being produced.
2022-11-02 10:47:33 +01:00
Massimo Fioravanti
10ab39664d
Runner: postpone logging after checks
2022-10-31 16:47:33 +01:00
Alessandro Di Federico
bb2abcc9ea
Merge branch 'feature/graphql-invalidations'
2022-10-30 09:14:22 +01:00
Giacomo Vercesi
0b80801b2b
TupleTreeDiff: applyDiff uses ErrorList
...
Change how TupleTreeDiff and Visitor work so they can populate an
ErrorList in case the deserialization/apply of a diff fails.
2022-10-30 09:13:44 +01:00
Giacomo Vercesi
2c4f5d1381
GraphQL: introduce target endpoint
2022-10-30 09:13:34 +01:00
Giacomo Vercesi
de76a5239b
PipelineC: improve documentation
2022-10-30 09:13:29 +01:00
Giacomo Vercesi
a75fc40abe
PipelineC: drop rp_manager_create_memory_only
...
The function was unused, broken and superseded by the other
rp_manager_create with `execution_directory=nullptr`.
2022-10-30 09:13:23 +01:00
Giacomo Vercesi
81d25f9805
PipelineC: expose invalidation logic
2022-10-30 09:13:14 +01:00
Giacomo Vercesi
a6a7a09606
daemon-self-test: fix dumping of daemon output
...
Fix the `fail` function, to properly capture the output of the daemon
process in case of failure.
2022-10-30 09:12:33 +01:00
Giacomo Vercesi
a465e796df
revng.api: explicitly declare exports
2022-10-30 09:11:53 +01:00
Alessandro Di Federico
7d9a80b0e6
Merge branch 'feature/ttr-caching'
2022-10-30 08:18:34 +01:00
Pietro Fezzardi
f371c03e93
Globals.h: evictCachedReferences on clear()
2022-10-29 16:46:19 +02:00
Pietro Fezzardi
d520fd5aea
Cache TTRs in Model tools
2022-10-29 16:46:19 +02:00
Pietro Fezzardi
fff0fbd874
LoadModelPass: cache TTRs on getReadOnlyModel
...
The cache is evicted on the next call to getWritableModel.
2022-10-29 16:46:19 +02:00
Pietro Fezzardi
f371be4271
Cache TTRs on getModelFromContext
...
The cache is evicted on getWritableModelFromContext.
2022-10-29 16:46:19 +02:00
Pietro Fezzardi
d04e2e73d3
TupleTree: caching methods for TupleTreeReferences
2022-10-29 16:46:19 +02:00
Pietro Fezzardi
0795c7e331
TupleTreeReference: cache target pointers
2022-10-29 16:46:19 +02:00
Pietro Fezzardi
7eb94c6646
QualifiedType: add operator<=>
2022-10-29 16:46:19 +02:00
Pietro Fezzardi
cf3103d3d7
TupleTree{Path,Reference}: add operator<=>
2022-10-29 16:46:19 +02:00
Pietro Fezzardi
8e9170eb60
Enforce that TTRs in TupleTree are mutable
2022-10-29 16:46:19 +02:00
Pietro Fezzardi
6173d154a3
TupleTree: visitReferences with non-const visitors
2022-10-29 16:46:19 +02:00
Pietro Fezzardi
5f8dab184d
Move ConstOrNot to Concepts.h
2022-10-29 16:46:19 +02:00
Alessandro Di Federico
53616b34ea
LinkForTranslation: use ld, not c++
...
This change enables us to depend on the linker only, not on the
compiler.
2022-10-29 12:11:17 +02:00
Alessandro Di Federico
5161ed3325
Update README.md
2022-10-27 01:22:02 +02:00
Alessandro Di Federico
8a61d2a69e
Merge branch 'feature/vscode-web-component'
2022-10-25 16:53:17 +02:00
Giacomo Vercesi
579cd2c558
npm: handle global install in lib64
...
Some distributions change the LIBDIR for global installation to lib64,
account for that when installing the model in CMAKE_BINARY_DIR
2022-10-24 14:27:52 +02:00
Giacomo Vercesi
232a28ae69
FileContainer: handle case where Path is empty
...
When requesting a `cloneFiltered` the Path attribute of the
FileContainer might be empty, and this will lead to an abort. Fix this
situation by checking if the Path is empty.
2022-10-24 14:25:02 +02:00
Giacomo Vercesi
d36fddc71e
revng-model: install in global mode
...
Install revng-model in global mode, so it is consistent with the
other installed packages
2022-10-24 09:58:55 +02:00
Giacomo Vercesi
e4adbe8134
revng.support: add get_root
...
Add the get_root function which will return the absolute path of the
root, relatively to the file location in support
2022-10-24 09:58:55 +02:00
Giacomo Vercesi
f7ec377aa4
mktemp: use --tmpdir
...
Without the --tmpdir argument the current directory is used to generate
the temporary file
2022-10-24 09:58:55 +02:00
Alessandro Di Federico
368f27b876
yields test: use one-per-architecture
2022-10-22 00:42:53 +02:00