DIP56 - inlining

Mike via Digitalmars-d digitalmars-d at puremagic.com
Wed Feb 4 03:02:37 PST 2015


On Wednesday, 4 February 2015 at 10:57:25 UTC, Johannes Pfau 
wrote:

>
> alias forceinline = Attribute!("forceinline");
> (I don't remember the exact syntax but you can use an alias)
>

The syntax I'm using is...

version (GNU)
{
   static import gcc.attribute;
   enum inline = gcc.attribute.attribute("forceinline");
}

@inline T volatileLoad(T)(T* a)
{
     asm { "" ::: "memory"; };
     return *cast(shared T*)a;
}

@inline void volatileStore(T)(T* a, in T v)
{
     asm { "" ::: "memory"; };
     *cast(shared T*)a = v;
}

Quite nice IMO.

Mike


More information about the Digitalmars-d mailing list