Displaying 4 results from an estimated 4 matches for "reversedominancefrontier".
2015 Jun 29
2
[LLVMdev] Inferring dependencies in phi instructions
...t;
>>Also, I feel like this should be a recurring problem. Could you point me to
>> any code example that identifies all dependencies (control and data) for phi
>> instructions?
>
> You won’t have any of this problems if you build dominance frontiers in the
> reverse CFG (ReverseDominanceFrontiers).
>
You actually don't even need reverse dominance frontiers, you can do
it with a post-dominator tree.
2015 Jun 29
3
[LLVMdev] Inferring dependencies in phi instructions
...onversion" which
transforms control dependencies to data dependencies; it is discussed in
the Allen and Kennedy book ("Optimizing Compilers for Modern
Architectures" in Chapter 6 or 7, I think).
If you need to find control dependencies, you can find them easily using
LLVM's ReverseDominanceFrontier pass.
Regards,
John Criswell
> What is the problem with using phi-functions in DFG? Yes they require more
> work to find out what they depend on.
>
> Kind regards,
> Evgeny Astigeevich
>
> -----Original Message-----
> From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-b...
2015 Jun 29
2
[LLVMdev] Inferring dependencies in phi instructions
On Jun 29, 2015 3:16 AM, "Evgeny Astigeevich" <evgeny.astigeevich at arm.com>
wrote:
>
> Hi Anirudh,
>
> 'x' has a control dependency on 'y' because the value assigned to 'x'
> depends on a path selected. This dependency can be converted into a data
> dependency by means of a 'select' instruction because the control flow is
>
2015 Jun 29
3
[LLVMdev] Inferring dependencies in phi instructions
I am trying to infer data dependencies using LLVM's def-use chains and
I am having trouble dealing with 'phi' instructions. Specifically,
If I am given the code snippet:
int foo() {
int y = 1;
int x;
if (y) {
x = 2;
} else {
x = 3;
}
return x;
}
Here, x has a data dependence on y (not control because x is assigned
in both halves), but LLVM expresses 'x'