[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