[PATCH] Add control dependence computation that computes control dependence equivalence classes.
Daniel Berlin
dberlin at dberlin.org
Mon Mar 30 10:36:32 PDT 2015
On Tue, Mar 24, 2015 at 10:12 AM, Adam Nemet <anemet at apple.com> wrote:
> ================
> Comment at: test/Analysis/ControlDependence/testdiamond.ll:4-14
> @@ +3,13 @@
> +target datalayout = "e-i64:64-f80:128-n8:16:32:64-S128"
> +define void @testdiamond() {
> +start:
> + br i1 true, label %same, label %different
> +same:
> + br label %returnit
> +different:
> + br label %returnit
> +returnit:
> + ret void
> +}
> +; CHECK: ({different},{same},{returnit,start})
> +
> ----------------
> Hi Danny,
>
> Quick question, is this control equivalence or control dependence?
They are CDEQ sets, so control dependence equivalence :)
We can call it whatever we want.
> Without looking at the details, it looks more like control equiv to me.
> Can this analysis also provide control dependence?
>
Without thinking too hard, you should be able to calculate the other sets
from where the equivalence classes change.
IE the edge which leads from one equivalence class to another.
>
> Also probably a silly question, but aren't 'different' and 'same'
> control-equiv here? They both seem to be control-depended on start, no?
>
>
No, because it's not really nodes but edges (because they are CDEQ sets,
which are made up of edges)
The edge (start, different) is a different edge than (start, same), so they
are not dependent on the same edge.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150330/57c38d41/attachment.html>
More information about the llvm-commits
mailing list