[LLVMdev] LICM promoting memory to scalar

Balaram Makam bmakam at codeaurora.org
Thu Oct 9 12:29:01 PDT 2014

-----Original Message-----
> From: Hal Finkel [mailto:hfinkel at anl.gov] 
> Sent: Sunday, September 28, 2014 4:43 AM
> To: Balaram Makam
> Cc: LLVM Developers Mailing List; Robin Morisset; Filip Pizlo
> Subject: Re: [LLVMdev] LICM promoting memory to scalar

----- Original Message -----
> From: "Balaram Makam" <bmakam at codeaurora.org>
> To: "Robin Morisset" <morisset at google.com>, "Filip Pizlo" 
> <fpizlo at apple.com>
> Cc: "LLVM Developers Mailing List" <llvmdev at cs.uiuc.edu>
> Sent: Wednesday, September 3, 2014 11:59:26 AM
> Subject: Re: [LLVMdev] LICM promoting memory to scalar
> Thanks for the background on the concurrent memory model.
> So, is it sufficient that the loop entry is guarded by condition (cbz 
> at top) for preventing the race?
> The loop entry will be guarded by condition if loop has been rotated 
> by loop rotate pass.
> Since LICM runs after loop rotate, we can use 
> ScalarEvolution::isLoopEntryGuardedByCond to check if we can 
> speculatively execute load without causing a race.
> Is it heavy-handed solution for this problem? I can create a bug if 
> you would like to.

> If you did not file a bug report, please do.

 > -Hal

Sorry for the late response. 
Bug reported here:


More information about the llvm-dev mailing list