This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c/26369] New: value expectation attribute
- From: "acahalan at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 19 Feb 2006 20:49:10 -0000
- Subject: [Bug c/26369] New: value expectation attribute
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
Something used roughly like this:
unsigned foo __attribute__((
min(5), // value will never be below this
max(0x007fff04), // value will never be above this
set(0x00000004), // these bits will always be set
clear(0xff800002), // these bits will never be set
likely_min(100), // the value is rarely below this
likely_max(12345), // the value is rarely above this
likely_set(0x00000604), // these bits are usually set
likely_clear(0xfffff032) // these bits are usually clear
)) = 100;
The idea is that I tell gcc that my variable (or type) is certain or likely to
have various values. This lets me avoid marking up lots and lots of code with
__builtin_expect. I can just mark the variable or type.
A bit of error checking can be done too. It would be invalid to pass a value
that never exceeds 1 to a function whose argument is marked as always having
bit 4 set. The compiler could catch this and halt with an error.
--
Summary: value expectation attribute
Product: gcc
Version: 4.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: acahalan at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26369