[llvm-dev] Using isConfused() method for LLVM Dependence Analysis

Bodhisatwa via llvm-dev llvm-dev at lists.llvm.org
Fri Jun 14 09:50:21 PDT 2019


I am trying to find out instances of confused dependencies in my 
program. According to LLVM's doxygen page, 'confused dependencies' are 
detected by function isConfused() - Returns true if this dependence is 
confused (the compiler understands nothing and makes worst-case 

For the following code snippet:

   for (int i = 0; i < 10; i++)
        a = 1;
        for (int j = 0; j < 9; j++)
              b = 2;
              for (int k = 0; k < 8; k++)
                      c = 3;
We are constructing dependencies between the corresponding IR of the 
above code and checking whether it is confused or not:

   store i32 1, i32* @a, align 4
   store i32 2, i32* @b, align 4
Confused Dependence or Not: 1

Since the variables 'a' and 'b' are in different memory locations, why 
is LLVM's isConfused method gives us True?

More information about the llvm-dev mailing list