Nullstone Logo

COMPANY
Home
Contacts
Customers
Testimonials

PRODUCTS
Overview
NULLSTONE for C
NULLSTONE for Java
Technical Overview

SUPPORT
Release Notes
Download
PGP Information
Service Report
Write Us

INFORMATION
Performance Results
Glossary of Terms

RELATED LINKS
Compiler Connection
Compiler Jobs

Previous Up Next
Bitfield Optimization

Accessing and storing bitfields are relative expensive, since most architectures do not support bit memory operations and require a series of load/shift/mask/store instructions. Run-time performance can be improved through various bitfield optimizations including keeping bitfields in registers, performing constant propagation through bitfields, and combining adjacent bitfield stores into one store.

Example:

In the code fragment below, the two bitfield assignments can be combined into one store operation, thus eliminating some of the load/shift/mask/store instructions.

    struct
    {
      int bit1 : 1;
      int bit2 : 1;
    } bits;
    
    bits.bit1 = 1;
    bits.bit2 = 1;
    

In the code fragment below, the compiler has generated a two-bit alias for bit1 and bit2 and combined the two stores into one store.

    struct
    {
      int t : 2;   /* compiler-generated alias for bit1 and bit2 */
    } bits;
    
    bits.t = 3;
    

© 1990-2012 Nullstone Corporation. All Rights Reserved.