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: [email protected]
ReportedBy: [email protected]
CC: [email protected]
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.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs