diff options
author | Wei Yi Tee <wyt@google.com> | 2022-06-27 11:18:01 +0200 |
---|---|---|
committer | Dmitri Gribenko <gribozavr@gmail.com> | 2022-06-27 11:37:46 +0200 |
commit | bdfe556dd837007c5671f33384d26e9ea315db53 (patch) | |
tree | 2a63de0f475e1d6c6d5456f78e0399f91bbb0a48 /flang/lib/Frontend/CompilerInvocation.cpp | |
parent | 88c4a4a6beb57c10dfa9de8bd8bb886fd1a08093 (diff) | |
download | llvm-bdfe556dd837007c5671f33384d26e9ea315db53.zip llvm-bdfe556dd837007c5671f33384d26e9ea315db53.tar.gz llvm-bdfe556dd837007c5671f33384d26e9ea315db53.tar.bz2 |
[clang][dataflow] Implement functionality for flow condition variable substitution.
This patch introduces `buildAndSubstituteFlowCondition` - given a flow condition token, this function returns the expression of constraints defining the flow condition, with values substituted where specified.
As an example:
Say we have tokens `FC1`, `FC2`, `FC3`:
```
FlowConditionConstraints: {
FC1: C1,
FC2: C2,
FC3: (FC1 v FC2) ^ C3,
}
```
`buildAndSubstituteFlowCondition(FC3, /*Substitutions:*/{{C1 -> C1'}})`
returns a value corresponding to `(C1' v C2) ^ C3`.
Note:
This function returns the flow condition expressed directly as its constraints, which differs to how we currently represent the flow condition as a token bound to a set of constraints and dependencies. Making the representation consistent may be an option to consider in the future.
Depends On D128357
Reviewed By: gribozavr2, xazax.hun
Differential Revision: https://reviews.llvm.org/D128363
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions