Alessandro Di Federico
fff5f989a5
tests: adopt temp
2022-11-23 10:43:33 +01:00
Massimo Fioravanti
497836bb0c
Pipeline: only remove targets in the container
...
This commit ensures that only content that is actually inside a
container is elegible to be removed.
2022-11-23 10:43:33 +01:00
Pietro Fezzardi
4c15f17dcf
FunctionType::Layout: introduce argument kind
...
This commit introduces a `Kind` for arguments described in
`FunctionType::Layout`. We nowe basically have three types of arguments:
* Scalar: a regular scarlar argument;
* ReferenceToAggregate: a reference to an aggregete argument on the
stack;
* ShadowPointerToAggregateReturnValue: a pointer to the storage for the
(aggregate) return value allocated by the caller;
2022-11-23 10:41:18 +01:00
Pietro Fezzardi
85397dc3ca
PrimitiveType: support for 80 and 96 bits types
...
This commit completes the support of various rare PrimitiveTypes, that
has been added opportunistically over time and has remained inconsistent
across the codebase:
- float80_t
- float96_t
- generic80_t
- generic96_t
The first two are necessary because on some platforms long double is
either 10 or 12 bytes wide.
The second two are necessary because the Generic PrimitiveType should
allow all non-zero byte sizes allowed by any other PrimitiveType.
2022-11-23 09:26:01 +01:00
Pietro Fezzardi
cdaf119b54
QualifiedType::isScalar: true for model::EnumType
2022-11-23 09:26:01 +01:00
Alessandro Di Federico
e07d0e2b9e
DwarfImporter: set Architecture if Invalid
2022-11-23 09:26:01 +01:00
Ivan Krysak
8a0626e592
Layout: work around vector return value problems
2022-11-23 09:26:01 +01:00
Ivan Krysak
3196e8b371
Layout: add support for multiple return values
2022-11-23 09:26:01 +01:00
Ivan Krysak
bf8a212281
ABI: remove MinimumStackArgumentSize value
...
The architecture-specific pointer (generic register) size is used
instead.
For all the ABIs we support the value of this parameter was already
set to its pointer size. We might need to reintroduce the parameter
in the future if we want to support a super-exotic ABI with different
stack alignment requirements, but that seems highly unlikely.
This also introduces the argument extension helper for one stop all
treating small arguments when they are put into a register or pushed
into the stack.
2022-11-23 09:26:01 +01:00
Ivan Krysak
c8ca9ffd77
STLExtras: add constepxr version of find
2022-11-23 09:26:01 +01:00
Ivan Krysak
f912ebf9b9
Model: associate a primitive kind to each register
2022-11-23 09:26:01 +01:00
Ivan Krysak
d7867e0e7e
QualifiedType: add argument-less isPrimitive()
2022-11-23 09:26:01 +01:00
Ivan Krysak
4eced0adc4
Move pointer creation away from model::Binary
2022-11-23 09:26:01 +01:00
Alessandro Di Federico
ff95853c1b
DetectABI: do not analyze functions with prototype
2022-11-23 09:26:01 +01:00
Alessandro Di Federico
3441c6d136
DwarfImport: fix handling of local functions
2022-11-23 09:26:01 +01:00
Alessandro Di Federico
f8ddcdf255
check-conventions: use first byte as diff opcode
2022-11-23 09:26:01 +01:00
Alessandro Di Federico
25f4de006c
Minor changes
2022-11-23 08:52:09 +01:00
Massimo Fioravanti
044071435e
Fix handling of binaries with no functions
...
Fix various edge cases when a binary with no functions was analyzed.
2022-11-22 16:19:28 +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