Alessandro Di Federico
f60c1bb4ad
s/TrackGuard/DisableTracking/
2024-06-20 10:24:51 +02:00
Alessandro Di Federico
c3733f293a
s/RevngPasses/FunctionPass/g
2024-06-20 10:24:51 +02:00
Alessandro Di Federico
553d869d03
Drop Pipe::print method
2024-06-20 10:24:51 +02:00
Alessandro Di Federico
148e6b1979
Rename all LLVMContainer arguments
2024-06-20 10:24:51 +02:00
Alessandro Di Federico
036e9282fe
Disable invalidation on const containers
2024-06-20 10:24:51 +02:00
Alessandro Di Federico
bce1d6c0f3
Adopt invalidation along the core pipeline
2024-06-20 10:24:50 +02:00
Alessandro Di Federico
b5f7576573
Rework TupleTreeGenerator tracking
2024-06-20 10:24:50 +02:00
Alessandro Di Federico
831ed0db91
TaggedFunctionKind: fix tracking-related issues
2024-06-20 10:24:50 +02:00
Alessandro Di Federico
9fce67eee9
Reduce IRBuilder usage in favor of IRBuilderBase
2024-06-20 10:24:50 +02:00
Alessandro Di Federico
7553e2acf8
Introduce UniquedBy{Prototype,Metadata}
...
This commit introduces new tags to specify how LLVMContainer should
deduplicate sets of equivalent functions, typically managed by an
`OpaqueFunctionPool`.
2024-06-20 10:24:50 +02:00
Alessandro Di Federico
a47c6e81dd
FunctionKind::appendAllTargets: disable tracking
2024-06-20 10:24:50 +02:00
Alessandro Di Federico
c3751a8c5a
Introduce Pipe::invalidate
...
This method enables pipes to specify a custom invalidation logic. This
change enables us to supress automatic model tracking in certain parts
and then handle the consequences by hand.
Make sure you read the TODO before using this.
2024-06-20 10:24:50 +02:00
Alessandro Di Federico
a6cf3fbb83
Centralize computation of llvm::Function names
...
This commit introduces a function to obtain the name assigned to a
`llvm::Function` associated to a `model::Function`. This simplifies the
codebase but also enables us to introduce an option to produce
human-friendly names for debugging/testing purposes.
2024-06-20 10:24:49 +02:00
Alessandro Di Federico
3097e94a0d
Enable fetching call site prototype without CFG
...
Before this commit, we used to attach to call site a metadata to trace
back the call site to the CFG (i.e., `FunctionMetadata`).
This led several passes in revng-c to depend on `FunctionMetadata` just
for this.
This commit, attaches to call sites a reference to the prototype itself
(on the `revng.prototype` metadata), breaking many of such dependencies.
2024-06-20 10:24:49 +02:00
Alessandro Di Federico
fd68c25aee
Implement ContainerBase::dump{,ToDisk}
2024-06-20 10:24:49 +02:00
Alessandro Di Federico
b350d12ad2
TTG: spread some optional: true around
2024-06-20 10:24:49 +02:00
Alessandro Di Federico
e44fe36539
Make GCBI::getJTReasons static
2024-06-20 10:24:49 +02:00
Alessandro Di Federico
2925b11f6a
Model: adopt getConst where appropriate
2024-06-20 10:24:49 +02:00
Alessandro Di Federico
7001d96b97
Implement TagsSet::{operator<,operator==}
2024-06-20 10:24:49 +02:00
Alessandro Di Federico
b0d897b87d
Minor changes
2024-06-20 10:24:49 +02:00
Alessandro Di Federico
d07d6c4f1f
Drop leftover Section.h
2024-06-20 10:24:49 +02:00
Massimo Fioravanti
db15f7df9a
Propagate info about inputs and outputs of pipes
...
This comit propagates the deduced info about inputs and outputs of pipes
all the way up to the runner, so that the requested output of a pipe can
be passed to its invocation.
2024-06-20 10:24:49 +02:00
Massimo Fioravanti
f783868dde
Model: adopt tryGet instead of find() != end()
2024-06-20 09:57:36 +02:00
Massimo Fioravanti
43349943a7
Stop serializing the model in the IR
2024-06-20 09:57:36 +02:00
Massimo Fioravanti
7ee8c8000d
Introduce revng pipe
2024-06-20 09:57:36 +02:00
Alessandro Di Federico
5186a58053
s/FunctionMetadata/ControlFlowGraph/
2024-06-18 17:56:24 +02:00
Alessandro Di Federico
61358cd862
Clift: adopt revng pipe for unit testing
2024-06-18 17:56:24 +02:00
Pietro Fezzardi
4549e71a22
Add TODO for future refactoring
2024-06-10 17:41:02 +02:00
Pietro Fezzardi
84a40d0239
TypeInlineHelper: clean up members and methods
2024-06-07 17:59:06 +02:00
Pietro Fezzardi
7a38a257b9
Refactor TypeInlineHelper::findTypesToInline
...
This change is a preparation for further decoupling of the
TypeInlineHelper from its custom dependency graph type, to try and reuse
the DependencyGraph used in ModelToHeader.
2024-06-07 17:59:06 +02:00
Pietro Fezzardi
914ef9cc41
Better documentation for DisableStackTypeInlining
2024-06-07 17:56:14 +02:00
Lauri Vasama
f4001063a7
Add note on temporary nature of scalar tuple
2024-06-05 15:07:23 +02:00
Lauri Vasama
cccee1ed99
Add structured Clift type alias generation
2024-06-05 15:07:23 +02:00
Lauri Vasama
d822e463e2
Use clift::ValueType instead of mlir::Type
2024-06-05 15:07:23 +02:00
Lauri Vasama
6470dd34ff
Miscellaneous Clift cleanup for consistency
2024-06-05 15:07:23 +02:00
Lauri Vasama
9f7cfa183f
Reorganize Clift code
2024-06-05 15:07:23 +02:00
Lauri Vasama
b1afb79302
Add Clift_ prefix to all Clift tablegen defs
2024-06-05 15:07:23 +02:00
Lauri Vasama
4ebe4fb140
Rename remaining Clift type definition attributes
2024-06-05 15:07:23 +02:00
Lauri Vasama
a310080fbd
Rename Clift StructType and UnionType attributes
2024-06-05 15:07:23 +02:00
Lauri Vasama
8f19b5f351
Remove redundant global namespace qualifiers
2024-06-05 15:07:23 +02:00
Djordje Todorovic
31b5453551
Support/IRHelpers.h: Add toLLVMConstant()
...
Convert llvm::APInt to llvm::Constant.
2024-05-29 16:25:53 +02:00
Djordje Todorovic
0468a41913
Add DataFlowGraph::materializeOne method
2024-05-29 16:25:53 +02:00
Lauri Vasama
ba58ec8edb
Add import-clift-types pipe
2024-05-29 15:43:35 +02:00
Lauri Vasama
ba914a1bb5
Replace MLIR container and LLVM import pipe
2024-05-29 15:43:35 +02:00
Lauri Vasama
a8e2bb8c48
Add ImportModelType pass, register in clift-opt
2024-05-29 15:43:35 +02:00
Lauri Vasama
7abadd08ae
Add model types to Clift MLIR import
2024-05-29 15:43:35 +02:00
Lauri Vasama
f4ff27b221
Add ScalarTupleType for RawFunctionType return
2024-05-29 15:43:35 +02:00
Lauri Vasama
9f99866edd
Move CliftStorage.h to lib/
2024-05-29 15:43:35 +02:00
Lauri Vasama
6db424b02b
Factor Clift type parsing out into separate files
2024-05-29 15:43:35 +02:00
Lauri Vasama
10a80de57f
Fix Clift type parsing
...
* Allow empty parameter list for FunctionAttr.
* Allow empty field list for struct but not union.
2024-05-29 15:43:35 +02:00