[PATCH] D11200: Improve merging of stores from static constructors in GlobalOpt
Anthony Pesch
inolen at gmail.com
Mon Jul 20 16:50:53 PDT 2015
inolen added a comment.
Thanks again for the review!
================
Comment at: lib/Transforms/IPO/GlobalOpt.cpp:2011-2012
@@ +2010,4 @@
+ if (ConstantExpr *CE = dyn_cast<ConstantExpr>(Ptr)) {
+ if (CE->getOpcode() == Instruction::GetElementPtr) {
+ return cast<GlobalVariable>(CE->getOperand(0));
+ }
----------------
nlewycky wrote:
> Couldn't CE->getOpcode() == Instruction::BitCast also reach here?
As far as I can tell, it shouldn't.
If the store pointer is a bitcast (and it's not folded away), it gets through to the block we were discussing in IRC. If the logic in that block is successful, the pointer is converted into a GEP expression before being added to the map: http://llvm.org/docs/doxygen/html/GlobalOpt_8cpp_source.html#l02342
Repository:
rL LLVM
http://reviews.llvm.org/D11200
More information about the llvm-commits
mailing list