@@ -2563,13 +2563,15 @@ _exp_mp_atomic_read(int stc, const datainfo* o, DTYPE dtype,
25632563 o -> dtype == DT_DCMPLX ) {
25642564
25652565 tmp_sptr = mkatomictemp (o -> dtype );
2566- nme [0 ] = addnme (NT_VAR , tmp_sptr , 0 , (INT )0 );
25672566 size = zsize_of (dtype );
25682567 size_ili = ad_icon (size );
2568+ ADDRTKNP (tmp_sptr , 1 );
2569+ loc_of (nme [0 ]);
25692570 result = ll_make_atomic_load (size_ili , opnd [0 ],
25702571 ad_acon (tmp_sptr , 0 ), opnd [2 ]);
25712572 iltb .callfg = 1 ;
25722573 chk_block (result );
2574+ nme [0 ] = addnme (NT_VAR , tmp_sptr , 0 , (INT )0 );
25732575 result = ad3ili (o -> ld ,
25742576 ad_acon (tmp_sptr , 0 ),
25752577 nme [0 ],
@@ -2650,6 +2652,8 @@ _exp_mp_atomic_write(int stc, const datainfo* o, DTYPE dtype,
26502652 nme [1 ], mem_size (DTY (dtype )));
26512653 chk_block (result );
26522654 size_ili = ad_icon (size );
2655+ ADDRTKNP (tmp_sptr , 1 );
2656+ loc_of (nme [0 ]);
26532657 result = ll_make_atomic_store (size_ili , opnd [0 ],
26542658 ad_acon (tmp_sptr , 0 ), opnd [2 ]);
26552659 iltb .callfg = 1 ;
@@ -2802,6 +2806,7 @@ exp_mp_atomic_update(ILM *ilmp)
28022806 expected_sptr = mkatomictemp (o -> dtype );
28032807 stc = atomic_encode_rmw (mem_size (DTY (dtype )),
28042808 SS_PROCESS , AORG_OPENMP , aop );
2809+ loc_of (nme [0 ]);
28052810 result = ad5ili (o -> atomicrmw , opnd [1 ], opnd [0 ], nme [0 ], stc , opnd [2 ]);
28062811
28072812 result = ad4ili (o -> st , result , ad_acon (expected_sptr , 0 ),
@@ -2844,6 +2849,7 @@ exp_mp_atomic_update(ILM *ilmp)
28442849 result = ad4ili (o -> st , desired_val , ad_acon (desired_sptr , 0 ),
28452850 addnme (NT_VAR , desired_sptr , 0 , (INT )0 ),
28462851 mem_size (DTY (dtype )));
2852+ ASSNP (desired_sptr , 1 );
28472853 chk_block (result );
28482854 }
28492855 /* do compare exchange */
@@ -2852,6 +2858,7 @@ exp_mp_atomic_update(ILM *ilmp)
28522858 size_ili = ad_icon (size );
28532859 ADDRTKNP (expected_sptr , 1 );
28542860 ADDRTKNP (desired_sptr , 1 );
2861+ loc_of (nme [0 ]);
28552862 result = ll_make_atomic_compare_xchg (size_ili , opnd [0 ],
28562863 ad_acon (expected_sptr , 0 ),
28572864 ad_acon (desired_sptr , 0 ),
@@ -2889,6 +2896,7 @@ exp_mp_atomic_update(ILM *ilmp)
28892896 addnme (NT_VAR , desired_sptr , 0 , (INT )0 ),
28902897 msz );
28912898 stc = atomic_encode (msz , SS_PROCESS , AORG_OPENMP );
2899+ loc_of (nme [0 ]);
28922900 cmpxchg = ad_cmpxchg (o -> cmpxchg , desired_val , opnd [0 ], nme [0 ],
28932901 stc , expected_val , ad_icon (0 ), opnd [2 ],
28942902 ad_icon (0 ));
@@ -3054,6 +3062,7 @@ exp_mp_atomic_capture(ILM *ilmp)
30543062 expected_sptr = mkatomictemp (o -> dtype );
30553063 stc = atomic_encode_rmw (mem_size (DTY (cpt .dtype )),
30563064 SS_PROCESS , AORG_OPENMP , cpt .aop );
3065+ loc_of (cpt .x_nme );
30573066 result = ad5ili (o -> atomicrmw , cpt .expr , cpt .x , cpt .x_nme , stc ,
30583067 cpt .mem_order );
30593068
@@ -3111,6 +3120,7 @@ exp_mp_atomic_capture(ILM *ilmp)
31113120 size_ili = ad_icon (size );
31123121 ADDRTKNP (expected_sptr , 1 );
31133122 ADDRTKNP (desired_sptr , 1 );
3123+ loc_of (cpt .x_nme );
31143124 result = ll_make_atomic_compare_xchg (size_ili , cpt .x ,
31153125 ad_acon (expected_sptr , 0 ),
31163126 ad_acon (desired_sptr , 0 ),
@@ -3166,6 +3176,7 @@ exp_mp_atomic_capture(ILM *ilmp)
31663176 addnme (NT_VAR , desired_sptr , 0 , (INT )0 ),
31673177 msz );
31683178 stc = atomic_encode (msz , SS_PROCESS , AORG_OPENMP );
3179+ loc_of (cpt .x_nme );
31693180 cmpxchg = ad_cmpxchg (o -> cmpxchg , desired_val , cpt .x , cpt .x_nme ,
31703181 stc , expected_val , ad_icon (0 ), cpt .mem_order ,
31713182 ad_icon (0 ));
0 commit comments