Pietro Fezzardi
c1641afeb6
Add LayoutTypeSystem::createArtificialLayoutTypes
...
This helper allows creating many artifical types at once.
2022-08-09 08:02:10 +02:00
Pietro Fezzardi
f8bc4a2e77
Move isCallToIsolatedFunction to FunctionTags.h
2022-08-09 08:02:10 +02:00
Pietro Fezzardi
e920ef040d
Switch to dyn_cast_or_null in isCallToTagged
...
This allows to call the function passing null pointers without crashes.
2022-08-09 08:02:10 +02:00
Alessandro Di Federico
e23656fa5f
MakeSegmentRef: ignore 128-bit integer constants
2022-08-08 16:22:14 +02:00
Alessandro Di Federico
c15fae2065
CheckDLA.ll: fix ground truth
...
* `model::Function::Type` no longer exists
* We dropped `IndirectCall` edge type in favor of simply `FunctionCall`
2022-08-08 16:22:14 +02:00
Alessandro Di Federico
d9d45fa79b
ModelToHeader: fake functions no longer exist
2022-08-08 16:22:14 +02:00
Alessandro Di Federico
b2a0c62618
RegionCFG: rename functions to avoid conflicts
2022-08-08 16:22:14 +02:00
Alessandro Di Federico
662cbfda84
Minor changes
2022-08-08 16:22:14 +02:00
Alessandro Di Federico
1cf9a06009
EnforceABI: use read-only model
2022-08-08 13:55:36 +02:00
Alessandro Di Federico
fab6b4133b
Tests for ARM, i386, x86-64 and MIPS dynamic calls
2022-08-08 13:55:35 +02:00
Alessandro Di Federico
6a6cd939db
Rework EarlyFunctionAnalysis
2022-08-08 13:55:34 +02:00
Alessandro Di Federico
a844589739
ProgramCounterHandler: align PC address
...
ProgramCounterHandler now emits code masked with an alignment mask to
ease the job of various analyses.
2022-08-08 13:55:26 +02:00
Alessandro Di Federico
cf9a0bc3fc
getPrototype: don't fail on indirect calls
2022-08-08 13:55:26 +02:00
Alessandro Di Federico
562bb9959d
Reimplement GCBI::getBlocksGeneratedByPC
...
GCBI::getBlocksGeneratedByPC has been reimplemented using recursive
coroutines. Caching dominator trees was very error-prone.
2022-08-08 13:55:26 +02:00
Alessandro Di Federico
ff8ca0aaff
AVI: relax allowed operations on symbol
...
It is now legal to `and` and `bswap` the address of a symbol.
2022-08-08 13:55:26 +02:00
Alessandro Di Federico
f2bd49d562
defaultPrototype: set FinalStackOffset
2022-08-08 13:55:26 +02:00
Alessandro Di Federico
f236a490c3
GCBI::getSuccessors: make .Other additive
...
Previously, if `.Other` was set, all the other fields where unset.
2022-08-08 13:55:25 +02:00
Alessandro Di Federico
4eb70b0e35
Reimplement exitTBCleanup
2022-08-08 13:55:25 +02:00
Alessandro Di Federico
4d69437548
Split moveBlocksInto off moveToNewFunctionType
2022-08-08 13:55:25 +02:00
Alessandro Di Federico
40f672ead9
EFA debug passes: raw_{fd_,}ostream
2022-08-08 13:55:25 +02:00
Alessandro Di Federico
b07d134b73
Introduce CanonicalRegisterValues in the model
...
These canonical values ease certain analysis that can assume their value
at function entry.
2022-08-08 13:55:25 +02:00
Alessandro Di Federico
45d563bc15
revng: use ld.so --preload instead of LD_PRELOAD
2022-08-08 13:55:25 +02:00
Alessandro Di Federico
0566381ecf
ELFImporter: make importing more robust
2022-08-08 13:55:25 +02:00
Alessandro Di Federico
e0e8b4e5b6
ELFImporter.cpp: s/Log/ELFImporterLog/
2022-08-08 13:55:25 +02:00
Alessandro Di Federico
82771be9b5
revng-model-dump: emit YAML
2022-08-08 13:55:25 +02:00
Alessandro Di Federico
6d0fd9ada5
Make abi::FunctionType::Layout::Layout() public
2022-08-08 13:55:25 +02:00
Alessandro Di Federico
6f93a7503f
tuple_tree_generator: more informative errors
2022-08-08 13:55:25 +02:00
Alessandro Di Federico
bdfcbdd8d9
Implement std::set intersection
2022-08-08 13:55:23 +02:00
Alessandro Di Federico
2088a65fa0
Implement SuccessorsList::operator==
2022-08-08 13:54:41 +02:00
Alessandro Di Federico
c4ca2e5d14
Introduce MetaAddress::isIn
2022-08-08 13:54:41 +02:00
Alessandro Di Federico
8e358d6609
Introduce additional assertions
2022-08-08 13:54:41 +02:00
Alessandro Di Federico
81c2a93add
Normalize FilePortion
2022-08-08 13:54:41 +02:00
Alessandro Di Federico
c2f16b0907
Minor changes
2022-08-08 13:54:40 +02:00
Alessandro Di Federico
9a3c238b3f
Merge branch 'feature/revng-binary-location'
2022-08-08 13:53:22 +02:00
Ivan Krysak
b3f9ce7cc2
Use locations in PTML exporter
2022-08-05 21:47:05 +03:00
Ivan Krysak
7b7c4c25b9
Standardize the pipe names to use CamelCase
2022-08-05 21:46:46 +03:00
Ivan Krysak
dff7c5f37d
Move yield pipes into revngYield
2022-08-05 21:46:28 +03:00
Massimo Fioravanti
c97187fd0e
Add cross relations role
2022-08-05 21:45:19 +03:00
Ivan Krysak
191fc99c1c
Add a pipe for call-graph processing
2022-08-05 20:45:16 +02:00
Ivan Krysak
8f4590bf00
Outline the cross-relation interface
2022-08-05 21:42:58 +03:00
Ivan Krysak
67bff75b7f
Add basic location tests
2022-08-05 21:42:45 +03:00
Ivan Krysak
fe04a13a5b
Introduce basic location support
2022-08-05 20:42:41 +02:00
Ivan Krysak
1ac6d6ea0d
Introduce constexpr string splitter
2022-08-05 21:02:29 +03:00
Ivan Krysak
1b0fb2adfc
Introduce constexpr repeat helpers
2022-08-05 20:59:02 +03:00
Ivan Krysak
792da8151e
Redesign the rank definition process
2022-08-05 19:58:57 +02:00
Ivan Krysak
44fbe3e18b
Rename abi::IsTrait into abi::TraitLike
2022-08-05 17:27:56 +03:00
Ivan Krysak
65d1a016d4
Standardize concept naming across the codebase
2022-08-05 17:27:56 +03:00
Ivan Krysak
4ee2835d52
Fix a trait inheritance problem
2022-08-05 17:27:56 +03:00
Ivan Krysak
409486609c
Add EqualityComparable concept
2022-08-05 17:27:56 +03:00
Ivan Krysak
8dce9ef724
Fix the problem with negative node ranks
...
Having the initial rank threshhold too low caused them to sometimes
loop around and become negative, causing problems later down the line.
This sets the rank of the "entry" node to 4 offsetting the possible
causes of this issue quite a bit.
2022-08-05 17:27:56 +03:00