User Details
- User Since
- Apr 13 2016, 8:06 AM (388 w, 3 d)
Aug 13 2021
Jan 8 2021
Hi Craig Topper,
I noticed a regression after this change set hit our repository at Intel. The code in llvm/lib/Transforms/IPO/FunctionAttrs.cpp has a function checkFunctionMemoryAccess() that is not checking for intrinsics which may have side effects. This causes the inliner to remove a function as trivially dead when it only has a ldmxcsr instruction and some setup and shutdown code. I could change the line:
if (!AliasAnalysis::onlyAccessesArgPointees(MRB))
to
if (!AliasAnalysis::onlyAccessesArgPointees(MRB) || I->mayHaveSideEffects()) {
but I do have some concern whether this will be overly conservative.
Any thoughts?
- Robert Cox from Intel (rcox2)
Oct 28 2016
No comments on this review, yet. Any chance the reviewers I picked will be able to look at it in the near future? Should I add some other names? -- Thanks, Robert
Oct 14 2016
Jun 2 2016
May 23 2016
I’ve been looking at the patch that you posted for the annotated source listing to get an idea of how you would like the inlining report to conform to the diagnostic mechanism which you have already implemented.
May 2 2016
Of course, it would be my preference to mirror the functionality of what is available in the "new" hierarchical form of optimization report Intel compiler. So, I would like to distinguish between what Hal is proposing (which we call an "annotated listing") and what I am proposing, which we call an "optimization report".
Apr 28 2016
Actually, the Intel compiler distinguishes between an optimization report (-qopt-report) and an annotated listing (-qopt-report-annotate). The optimization report lists the info for optimizations in a hierarchical fashion. To use you example,
icc -c -O3 -qopt-report=1 -qopt-report-file=stderr v.c
yields:
Apr 22 2016
Having a high level Report class would be useful. I talked to a few people at the Bay Area LLVM Social and they supported the idea of Report class into which all optimizaitons could report information.