Intel® C++ STM Compiler Prototype Edition (Archived)

Why can't I see a transactional malloc()/free()?

The release notes for the Intel STM Prototype v2.0 promise a transactional malloc() and free(). Version 3.0 promises new and delete operators, in addition. I am using v3.0 now, and my tm_safe functions do not compile because these two functions are not recognized to be transaction-safe. I'm confused.

Does the compiler include a transactional malloc/free? If so, can you provide me with a simple example which compiles tm_safe functions that perform memory management?

Intel STM C++ compiler for Mac OSX?

Nil, Thanks for your interests on Intel C++ STM Compiler. However, at this point, we don't have C++ STM compiler release for MacOS. But, I do have a release for Linux.

Xinmin Tian (Intel)

Hi All,
I am new to this group. I would like to install STM compiler on Mac OSX. Is there any version available of the STM alpha version?
Thanks in advance,
Best reagrds, Nil

STM Compiler installation problem


When I tried to install the STM compiler on a Linux machine, got stuck at EULA, infinitely prompting the accept/decline question independent of whatever I typed. I was installing to a non-default dir without root-priviledges, under $INSTALL_DIR/opt/intel (with the license file placed into $INSTALL_DIR/opt/intel/licenses).

Linking problem with libitm


I am trying to create a shared library that uses some functions defined in itmuser.h If I use _ITM_getThreadnum function following error occurs:

relocation R_X86_64_32S against `_ITM_nvFunctions' can not be used when making a shared object; recompile with -fPIC

way to reproduce:


void foo()
  int thread_num = _ITM_getThreadnum();

and then compile with icc -shared -Qtm_enabled -fbuiltin

Is this expected behavior?


using 3rd party STM library with icc

I am trying to use my STM library with Intel's STM compiler, but am encountering problems with free and malloc functions.

I implemented all functions in the ABI specification and created a static library. When I try to link some benchmark application with my STM library the linker complains about missingfree._$TXN and malloc._$TXN. Linking with the library that is shipped with the compiler works fine. Doing a "nm libitm.a" shows that these two functions are defined in Intel STM library.

_tm_release() in STM Compiler/ABI

I had some conversations with Serge Preis regarding "partial commits" and "partly overlapping transactions" which are intended to increase STM scalability for manipulations on linked-lists, trees, etc. Following proposal is a reincarnation of those ideas. It's inspired by (directly borrowed from) AMD's ASF proposal ( They propose a nice way to aviod read-set explosion.

Does the STM Prototype v3.0 Have a Transactional STL?

The release notes for the Intel STM Prototype v3.0 promise, "Support for transactional C++ STL library."

I cannot manage to find a version of the STL library with transactional annotations. Using STL algorithms (for_each) and data structures (vector) in my programs yields a bunch of warning #2316's ("non transaction ready function").

What is the nature of this support for a transactional STL?

Iscriversi a Intel® C++ STM Compiler Prototype Edition (Archived)