[BOLT] Increase coverage of shrink wrapping [3/5]Add the option to run -equalize-bb-counts before shrinkwrapping to avoid unnecessarily optimizing some CFGs where profile isinaccurate but we can
[BOLT] Increase coverage of shrink wrapping [3/5]Add the option to run -equalize-bb-counts before shrinkwrapping to avoid unnecessarily optimizing some CFGs where profile isinaccurate but we can prove two blocks have the same frequency.Reviewed By: AmirDifferential Revision: https://reviews.llvm.org/D126113
show more ...
[bolt] Remove unneeded cl::ZeroOrMore for cl::opt options
Remove unneeded cl::ZeroOrMore for cl::opt optionsSimilar to 557efc9a8b68628c2c944678c6471dac30ed9e8e.This commit handles options where cl::ZeroOrMore is more than one line belowcl::opt.
[Hexagon][bolt] Remove unneeded cl::ZeroOrMore for cl::opt options. NFCSimilar to 557efc9a8b68628c2c944678c6471dac30ed9e8e
[BOLT] Check if LLVM_REVISION is definedHandle the case where LLVM_REVISION is undefined (due to LLVM_APPEND_VC_REV=OFFor otherwise) by setting "<unknown>" value as before D123549.Reviewed By: y
[BOLT] Check if LLVM_REVISION is definedHandle the case where LLVM_REVISION is undefined (due to LLVM_APPEND_VC_REV=OFFor otherwise) by setting "<unknown>" value as before D123549.Reviewed By: yota9Differential Revision: https://reviews.llvm.org/D123852
[BOLT][NFC] Use LLVM_REVISION instead of BOLT_VERSION_STRINGRemove duplicate version string identificationReviewed By: rafaulerDifferential Revision: https://reviews.llvm.org/D123549
[BOLT] Set cold sections alignment explicitlyThe cold text section alignment is set using the maximum alignment valuepassed to the emitCodeAlignment. In order to calculate tentetive layoutright w
[BOLT] Set cold sections alignment explicitlyThe cold text section alignment is set using the maximum alignment valuepassed to the emitCodeAlignment. In order to calculate tentetive layoutright we will set the minimum alignment of such sections to the maximumpossible function alignment explicitly.Differential Revision: https://reviews.llvm.org/D121392
[BOLT] Refactor heatmap to be standalone toolSeparate heatmap from bolt and build it as standalone tool.Reviewed By: maksfbDifferential Revision: https://reviews.llvm.org/D118946
[BOLT] Prepare BOLT for unit-testingThis patch adds unit testing support for BOLT. In order to do this we will need at least do this changes on the code level:* Make createMCPlusBuilder accessible
[BOLT] Prepare BOLT for unit-testingThis patch adds unit testing support for BOLT. In order to do this we will need at least do this changes on the code level:* Make createMCPlusBuilder accessible externally* Remove positional InputFilename argument to bolt utlity sourcesAnd prepare the cmake and lit for the new tests.Vladislav Khmelevsky,Advanced Software Technology Lab, HuaweiReviewed By: maksfb, AmirDifferential Revision: https://reviews.llvm.org/D118271
[BOLT][NFC] Reduce includes with include-what-you-useSummary: Removed redundant includes with IWYUTest Plan: ninja boltReviewers: maksfbFBD32043568
[BOLT][NFC] Fix braces usage in the rest of the codebaseSummary:Refactor remaining bolt sources to follow the braces rule for if/else/loop from[LLVM Coding Standards](https://llvm.org/docs/Coding
[BOLT][NFC] Fix braces usage in the rest of the codebaseSummary:Refactor remaining bolt sources to follow the braces rule for if/else/loop from[LLVM Coding Standards](https://llvm.org/docs/CodingStandards.html).(cherry picked from FBD33345885)
[BOLT][NFC] Fix file-description commentsSummary: Fix comments at the start of source files.(cherry picked from FBD33274597)
[BOLT] Fix Windows buildSummary:Make BOLT build in VisualStudio compiler and run withoutcrashing on a simple test. Other tests are not running.(cherry picked from FBD32378736)
Rebase: [NFC] Refactor sources to be buildable in shared modeSummary:Moves source files into separate components, and make explicitcomponent dependency on each other, so LLVM build system knows h
Rebase: [NFC] Refactor sources to be buildable in shared modeSummary:Moves source files into separate components, and make explicitcomponent dependency on each other, so LLVM build system knows how tobuild BOLT in BUILD_SHARED_LIBS=ON.Please use the -c merge.renamelimit=230 git option when rebasing yourwork on top of this change.To achieve this, we create a new library to hold core IR files (mostclasses beginning with Binary in their names), a new library to holdUtils, some command line options shared across both RewriteInstanceand core IR files, a new library called Rewrite to hold most classesconcerned with running top-level functions coordinating the binaryrewriting process, and a new library called Profile to hold classesdealing with profile reading and writing.To remove the dependency from BinaryContext into X86-specific classes,we do some refactoring on the BinaryContext constructor to receive areference to the specific backend directly from RewriteInstance. Then,the dependency on X86 or AArch64-specific classes is transfered to theRewrite library. We can't have the Core library depend on targetsbecause targets depend on Core (which would create a cycle).Files implementing the entry point of a tool are transferred to thetools/ folder. All header files are transferred to the include/folder. The src/ folder was renamed to lib/.(cherry picked from FBD32746834)