[PATCH] D41079: [RFC][WIP] Add VS extension for viewing optimization remarks to clang-tools-extra.

River Riddle via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Dec 11 11:04:54 PST 2017


rriddle created this revision.
rriddle added a project: clang-tools-extra.
Herald added subscribers: aheejin, fhahn, mgorny, mehdi_amini.
Herald added a reviewer: dberlin.

This is a visual studio extension for displaying optimization remarks. It's a side project that I have been working on recently at work and wanted to see if people were interested in having this upstreamed in tools/extra. I'd like some feedback on what people think and if they would find it useful or not. It's still somewhat prototypy but I'd like to continue this upstream if possible.

It supports things like:

- Auto load remarks from VS intermediate directory.
- Auto load remarks from external build directory.
- Filtering Remarks by:
  - hotness
  - remark type(pass/miss/analysis/etc.)
  - remark pass(inline/gvn/etc.)
  - remark pass sub-type(e.g. inline definition)

- Comparing remarks from multiple build configurations.
- Only showing differences when comparing configurations.
- Auto emit remarks (if the tool chain supports it).
- Show visible remarks in the error list.
- Show visible remark counts(number of remarks per function) in the error list.

More documentation on what it does, and what it looks like, can be found at:
https://goo.gl/24jZZc


Repository:
  rCTE Clang Tools Extra

https://reviews.llvm.org/D41079

Files:
  CMakeLists.txt
  CODE_OWNERS.TXT
  remark-viewer-vs/.gitignore
  remark-viewer-vs/CMakeLists.txt
  remark-viewer-vs/OptRemarkViewer.sln
  remark-viewer-vs/README.txt
  remark-viewer-vs/RemarkInterface/Async/RemarkEvent.cs
  remark-viewer-vs/RemarkInterface/Core/ExternalConfigDirWatcher.cs
  remark-viewer-vs/RemarkInterface/Core/RemarkFilter.cs
  remark-viewer-vs/RemarkInterface/Core/RemarkManager.cs
  remark-viewer-vs/RemarkInterface/Core/RemarkReader.cs
  remark-viewer-vs/RemarkInterface/Core/RemarkSettings.cs
  remark-viewer-vs/RemarkInterface/ErrorList/ErrorList.cs
  remark-viewer-vs/RemarkInterface/ErrorList/ErrorListUtils.cs
  remark-viewer-vs/RemarkInterface/Properties/AssemblyInfo.cs
  remark-viewer-vs/RemarkInterface/Properties/GuidStrings.cs
  remark-viewer-vs/RemarkInterface/Properties/Resources.Designer.cs
  remark-viewer-vs/RemarkInterface/Properties/Resources.resx
  remark-viewer-vs/RemarkInterface/Remark/DebugLocation.cs
  remark-viewer-vs/RemarkInterface/Remark/Remark.cs
  remark-viewer-vs/RemarkInterface/Remark/RemarkFile.cs
  remark-viewer-vs/RemarkInterface/RemarkInterface.csproj
  remark-viewer-vs/RemarkInterface/Service/IRemarkService.cs
  remark-viewer-vs/RemarkInterface/Utils/Demangler.cs
  remark-viewer-vs/RemarkInterface/Utils/FileUtils.cs
  remark-viewer-vs/RemarkInterface/Utils/IEnumeratorUtils.cs
  remark-viewer-vs/RemarkInterface/Utils/ProjectUtils.cs
  remark-viewer-vs/RemarkInterface/packages.config
  remark-viewer-vs/RemarkPackage/GenericPackage.ico
  remark-viewer-vs/RemarkPackage/LTORemarkViewerProps.props
  remark-viewer-vs/RemarkPackage/PkgCmd.vsct
  remark-viewer-vs/RemarkPackage/ProjectOptions/RemarkPropertyPageProvider.cs
  remark-viewer-vs/RemarkPackage/ProjectOptions/RemarkSolutionPropPageControl.Designer.cs
  remark-viewer-vs/RemarkPackage/ProjectOptions/RemarkSolutionPropPageControl.cs
  remark-viewer-vs/RemarkPackage/ProjectOptions/RemarkSolutionPropPageControl.resx
  remark-viewer-vs/RemarkPackage/Properties/AssemblyInfo.cs
  remark-viewer-vs/RemarkPackage/Properties/GlobalSuppressions.cs
  remark-viewer-vs/RemarkPackage/Properties/GuidStrings.cs
  remark-viewer-vs/RemarkPackage/RemarkPackage.csproj
  remark-viewer-vs/RemarkPackage/RemarkService/GlobalSuppressions.cs
  remark-viewer-vs/RemarkPackage/RemarkService/PkgCmdId.cs
  remark-viewer-vs/RemarkPackage/RemarkService/RemarkPackage.cs
  remark-viewer-vs/RemarkPackage/RemarkService/RemarkService.cs
  remark-viewer-vs/RemarkPackage/RemarkViewerProps.props
  remark-viewer-vs/RemarkPackage/Resources.Designer.cs
  remark-viewer-vs/RemarkPackage/Resources.resx
  remark-viewer-vs/RemarkPackage/Resources/CompareFolder_16x.png
  remark-viewer-vs/RemarkPackage/ToolOptions/GeneralPageControl.Designer.cs
  remark-viewer-vs/RemarkPackage/ToolOptions/GeneralPageControl.cs
  remark-viewer-vs/RemarkPackage/ToolOptions/GeneralPageControl.resx
  remark-viewer-vs/RemarkPackage/ToolOptions/OptionsPageGeneral.cs
  remark-viewer-vs/RemarkPackage/ToolOptions/OptionsPagePerRemarkStatus.cs
  remark-viewer-vs/RemarkPackage/ToolOptions/OptionsPageRemarkSubStatusPage.cs
  remark-viewer-vs/RemarkPackage/ToolOptions/PerRemarkStatusPageControl.Designer.cs
  remark-viewer-vs/RemarkPackage/ToolOptions/PerRemarkStatusPageControl.cs
  remark-viewer-vs/RemarkPackage/ToolOptions/PerRemarkStatusPageControl.resx
  remark-viewer-vs/RemarkPackage/ToolOptions/PerRemarkSubStatusPageControl.Designer.cs
  remark-viewer-vs/RemarkPackage/ToolOptions/PerRemarkSubStatusPageControl.cs
  remark-viewer-vs/RemarkPackage/ToolOptions/PerRemarkSubStatusPageControl.resx
  remark-viewer-vs/RemarkPackage/Util/CheckedComboBox.cs
  remark-viewer-vs/RemarkPackage/Util/NativeMethods.cs
  remark-viewer-vs/RemarkPackage/VS2015/source.extension.vsixmanifest
  remark-viewer-vs/RemarkPackage/VS2017/source.extension.vsixmanifest
  remark-viewer-vs/RemarkPackage/VSPackage.Designer.cs
  remark-viewer-vs/RemarkPackage/VSPackage.resx
  remark-viewer-vs/RemarkPackage/app.config
  remark-viewer-vs/RemarkPackage/license.txt
  remark-viewer-vs/RemarkPackage/packages.config
  remark-viewer-vs/RemarkTagger/Properties/AssemblyInfo.cs
  remark-viewer-vs/RemarkTagger/Properties/GlobalSuppressions.cs
  remark-viewer-vs/RemarkTagger/RemarkTagger.csproj
  remark-viewer-vs/RemarkTagger/Support/IntraTextAdornmentTagTransformer.cs
  remark-viewer-vs/RemarkTagger/Support/IntraTextAdornmentTagger.cs
  remark-viewer-vs/RemarkTagger/Support/TextDocumentUtils.cs
  remark-viewer-vs/RemarkTagger/Tagging/RemarkAdornment.cs
  remark-viewer-vs/RemarkTagger/Tagging/RemarkAdornmentTagger.cs
  remark-viewer-vs/RemarkTagger/Tagging/RemarkAdornmentTaggerProvider.cs
  remark-viewer-vs/RemarkTagger/Tagging/RemarkTag.cs
  remark-viewer-vs/RemarkTagger/Tagging/RemarkTagger.cs
  remark-viewer-vs/RemarkTagger/Tagging/RemarkTaggerProvider.cs
  remark-viewer-vs/demangler/demangle.cpp
  remark-viewer-vs/demangler/demangler.vcxproj
  remark-viewer-vs/demangler/demangler.vcxproj.filters
  remark-viewer-vs/demangler/libcxxabi/LICENSE.txt
  remark-viewer-vs/demangler/libcxxabi/cxa_demangle.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D41079.126405.patch
Type: text/x-patch
Size: 563617 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20171211/2e0352f6/attachment-0001.bin>


More information about the cfe-commits mailing list