transaction_callable not recognized by compiler

transaction_callable not recognized by compiler

I'm using the STM 4.0 compiler with a new Ubuntu 10.10 installation.

But the compiler doesn't recognize some of the transaction constructs. For example, transaction_safe works fine, transaction_callable creates an error.
Here is some sample code:


int foo(int a){
    return ++a;

void bar(){
    // do nothing

int main(){
    int i;
    #pragma omp parallel for
        int val = i;
	    val = foo(val);
	printf("%dn", val);

The Error Message is:

icc -Qtm_enabled -openmp foo.c -o foo
foo.c(24) (col. 6): error: non transaction ready function "bar" called inside __transaction section
foo.c(18): (col. 5) remark: OpenMP DEFINED LOOP WAS PARALLELIZED.
compilation aborted for foo.c (code 2)

I've checked the compiler. It is the Prototype Edition 4.0.

I would appreciate any suggestions.
Thank you in advance.


2 posts / 0 nouveau(x)
Dernière contribution
Reportez-vous à notre Notice d'optimisation pour plus d'informations sur les choix et l'optimisation des performances dans les produits logiciels Intel.

By default __transaction is assumed to be an __transaction You can only have transaction_safe calls inside these regions. To call a transcation_callable function use __transaction { ... bar()...}

Laisser un commentaire

Veuillez ouvrir une session pour ajouter un commentaire. Pas encore membre ? Rejoignez-nous dès aujourd’hui