Ivan Krysak
855999f5f0
Layout: add support for multiple return values
2022-11-30 15:06:54 +01:00
Ivan Krysak
535c9dd346
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-30 15:06:54 +01:00
Ivan Krysak
afdd3302d8
STLExtras: add constepxr version of find
2022-11-30 15:06:54 +01:00
Ivan Krysak
1f4b5dfd36
Model: associate a primitive kind to each register
2022-11-30 15:06:54 +01:00
Ivan Krysak
207668070a
QualifiedType: add argument-less isPrimitive()
2022-11-30 15:06:54 +01:00
Ivan Krysak
c3c3ed4381
Move pointer creation away from model::Binary
2022-11-30 15:06:54 +01:00
Alessandro Di Federico
b83edd61c0
DwarfImport: fix handling of local functions
2022-11-30 15:06:54 +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
Massimo Fioravanti
a057ce54a7
Avoids missing outputs when empty
...
FileContainer should not be used when we wish to produce a empty output
file rather than no file at all.
2022-11-22 15:21:03 +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
Massimo Fioravanti
335d402245
Change signatures to forward metadata cache.
2022-11-22 12:27:02 +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
8aaa3ca92e
Refactor PTML generation for functions
2022-11-16 16:02:09 +01:00
Pietro Fezzardi
e72a578743
Refactor PTML generation for local variables
2022-11-16 11:24:37 +01:00
Pietro Fezzardi
79a319cdeb
PTML.h: sort ptml::c::tokens alphabetically
2022-11-16 07:48:43 +01:00
Pietro Fezzardi
0812989cb0
Drop unused ptml::c::tokens::Comparison
2022-11-16 07:47:18 +01:00
Pietro Fezzardi
a23d4f8dcf
Ranks.h: simplify ranks, delete unnecessary ranks
2022-11-15 15:54:20 +01:00
Pietro Fezzardi
ff631c5364
PTMLC.h: switch to string-based return values
2022-11-15 15:54:20 +01:00
Pietro Fezzardi
c93392fa3b
Refactor PTML generation for helpers
2022-11-15 15:54:20 +01:00
Pietro Fezzardi
38ce08edba
PTMLC: add Const keyword
2022-11-15 15:54:20 +01:00
Pietro Fezzardi
e1ded3a479
HelpersToHeader: refactor PTML Tags
2022-11-15 15:54:20 +01:00
Pietro Fezzardi
2ec8b7e32c
ModelToHeader: refactor creation of PTML Tags
2022-11-15 15:54:20 +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
Pietro Fezzardi
6734494bad
Move scopeTag helper function to revng
2022-11-15 14:03:07 +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
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
Giacomo Vercesi
6e8333ed62
Kinds: add new Location/definitionKind info
2022-11-10 17:27:53 +01:00
Pietro Fezzardi
cf6be43571
Support void types in areMemOpCompatible
2022-11-09 17:00:14 +01:00
Pietro Fezzardi
0097af6dd0
Fix peelConstAndTypedefs for model::TypedefType
...
Before this commit typedefs were not unwrapped correctly, leading to
infinite loops.
2022-11-09 11:59:51 +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
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
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
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
Pietro Fezzardi
bf83f40e3b
Move SCEVBaseAddressExplorer.h from public headers
2022-10-21 10:00:23 +02:00