[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
http://llvm.org/bugs/show_bug.cgi?id=11189
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
Hello,
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