fghanim added inline comments.

================
Comment at: llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp:433
 
-  Builder.SetInsertPoint(OuterFn->getEntryBlock().getFirstNonPHI());
-  AllocaInst *TIDAddr = Builder.CreateAlloca(Int32, nullptr, "tid.addr");
-  AllocaInst *ZeroAddr = Builder.CreateAlloca(Int32, nullptr, "zero.addr");
+  IRBuilder<> AllocaBuilder(AllocaIP.getBlock(), AllocaIP.getPoint());
+
----------------
jdoerfert wrote:
> fghanim wrote:
> > jdoerfert wrote:
> > > fghanim wrote:
> > > > Here and elsewhere: You seem to have forgotten to undo the changes 
> > > > introduced by using a separate `AllocaBuilder`?
> > > > 
> > > > Also, Nit: before using `AllocaIP`, either add an assert that it is not 
> > > > empty, or alternatively, add logic to just set it to entry block of 
> > > > `outerfn` if it is
> > > > Here and elsewhere: You seem to have forgotten to undo the changes 
> > > > introduced by using a separate AllocaBuilder?
> > > 
> > > I don't get this. These changes are on purpose. 
> > Oh, my bad. I assumed that since we now pass `allocaip` to communicate 
> > where is the insertion point, using `builder` the way we used to is 
> > sufficient, and this was leftover code. So now what purpose does 
> > `AllocaBuilder` serve?
> 1) No switching the IP back and forth in one builder all the time.
> 2) Showing by the name of the builder directly where the instructions will be 
> created.
>No switching the IP back and forth in one builder all the time.
- Is this about something you expect in the future? because unless I am missing 
something, and looking at it side by side, I don't see any less setting 
/reseting of IPs going on, except in the new version we to set the debug info 
IP in `allocabuilder` in addition to in `builder`.
- we don't use either `AllocaIP` after returning from `bodyCB`
- Even if we did, both `bodyCB`, and `FiniCB` have IPGuards inside them.
- Also, since IRBuilders do `insertbefore` an IP, both `AllocaIP` should be 
up-to-date except if the iterator for an IP gets invalidated, the risk of which 
is sort of proportional to increase in number of IRbuilders.

>Showing by the name of the builder directly where the instructions will be 
>created.
Wouldn't a comment be better? 
Personally, I find it confusing when something called `AllocaBuilder`, is being 
used to emit loads and stores.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D82470/new/

https://reviews.llvm.org/D82470



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to