debug intrinsics might be marked norecurse to enable the caller function to be norecurse and optimized if needed. This avoids code gen optimisation differences when -g is used, as in globalOpt.cpp:processInternalGlobal checks.
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
Comment Actions
Looks mostly good.
lib/Transforms/IPO/FunctionAttrs.cpp | ||
---|---|---|
1311 ↗ | (On Diff #176319) | Is there something like on the function level? http://www.llvm.org/doxygen/classllvm_1_1BasicBlock.html#a126c95a0ff18e58ac0c2c7439fb2dc6d |
test/Transforms/InferFunctionAttrs/norecurse_debug.ll | ||
53 ↗ | (On Diff #176319) | Do you need the TBAA info for the testcase? |
lib/Transforms/IPO/FunctionAttrs.cpp | ||
---|---|---|
1311 ↗ | (On Diff #176319) | Yeah, I'd much prefer to iterate the filtered sequence here. |
lib/Transforms/IPO/FunctionAttrs.cpp | ||
---|---|---|
1311 ↗ | (On Diff #176319) | not at function level but yes I can iterate on the BBs something like: for (auto &BB : *F) { for (auto &I : BB.instructionsWithoutDebug()) |
test/Transforms/InferFunctionAttrs/norecurse_debug.ll | ||
53 ↗ | (On Diff #176319) | indeed no, not related to this issue to the tbaa meta can be removed. |