[LLVMbugs] [Bug 11189] New: more precise aliasing information

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Thu Oct 20 02:02:16 PDT 2011


           Summary: more precise aliasing information
           Product: new-bugs
           Version: unspecified
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: s3734770 at mail.zih.tu-dresden.de
                CC: llvmbugs at cs.uiuc.edu


I'm using a structure {i32, [0 x i8]} where I store a value into
   getelementptr {i32, [0 x i8]}, i32 0, i32 0
after that, I use
   getelementptr {i32, [0 x i8]}, i32 0, i32 1
and pass the value to a stdlib call like puts or fwrite.
After this, I read
   getelementptr {i32, [0 x i8]}, i32 0, i32 0
again and the value could not constant folded.

I would like to have more attributes for functions and parameters like:
 - io (for functions) - indicates that a function does io, but does not
manipulate any internal memory
 - nobelow (for parameters) - indicates that the function does not read memory
that lies below this pointer; maybe we need a more precise value from where the
memory starts
 - endsatzero (for parameters) - indicates that the function will not read
memory above the first occurance of i8 0 in the memory

the nobelow and endsatzero could be represented as a range, too:
 - (0..4) for a i32*
 - (0..zero) for a i8* string
 - (0..) for an array
 - (..) for some hacky struct
 - (..12) for other hacky structs (for example selinux in xorg)

This would optimize array access, too because the compiler knows which element
is accessed and that the inner function does not work with other than the one
element it got passed to.

Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

More information about the llvm-bugs mailing list