|
Revision tags: llvmorg-20.1.0, llvmorg-20.1.0-rc3, llvmorg-20.1.0-rc2, llvmorg-20.1.0-rc1, llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init |
|
| #
b5b6d3a4 |
| 06-Jul-2022 |
Nikola Tesic <[email protected]> |
[Debugify] Port verify-debuginfo-preserve to NewPM
Debugify in OriginalDebugInfo mode, introduced with D82545, runs only with legacy PassManager.
This patch enables this utility for the NewPM.
Dif
[Debugify] Port verify-debuginfo-preserve to NewPM
Debugify in OriginalDebugInfo mode, introduced with D82545, runs only with legacy PassManager.
This patch enables this utility for the NewPM.
Differential Revision: https://reviews.llvm.org/D115351
show more ...
|
| #
dacfa24f |
| 27-Jun-2022 |
Mitch Phillips <[email protected]> |
Delete 'llvm.asan.globals' for global metadata.
Now that we have the sanitizer metadata that is actually on the global variable, and now that we use debuginfo in order to do symbolization of globals
Delete 'llvm.asan.globals' for global metadata.
Now that we have the sanitizer metadata that is actually on the global variable, and now that we use debuginfo in order to do symbolization of globals, we can delete the 'llvm.asan.globals' IR synthesis.
This patch deletes the 'location' part of the __asan_global that's embedded in the binary as well, because it's unnecessary. This saves about ~1.7% of the optimised non-debug with-asserts clang binary.
Reviewed By: vitalybuka
Differential Revision: https://reviews.llvm.org/D127911
show more ...
|
|
Revision tags: llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1 |
|
| #
0bda12b5 |
| 31-Mar-2022 |
Wenju He <[email protected]> |
[NewPM] Add OptimizerEarly module extension point
VectorizerStart extension is module callback in old PM, but is function callback in new PM. We lack a module extension point between end of buildMod
[NewPM] Add OptimizerEarly module extension point
VectorizerStart extension is module callback in old PM, but is function callback in new PM. We lack a module extension point between end of buildModuleSimplificationPipeline and the function optimization (including vectorizer) pipeline. So this patch adds a new module extension point before the function optimization pipeline.
Reviewed By: aeubanks
Differential Revision: https://reviews.llvm.org/D122296
show more ...
|
|
Revision tags: llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2 |
|
| #
df0b893d |
| 10-Feb-2022 |
Arthur Eubanks <[email protected]> |
[opt] Remove -analyze option
This is legacy PM-specific, which is deprecated.
Uses of this should be replaced with a corresponding `-passes='print<foo>'`.
Reviewed By: asbirlea
Differential Revis
[opt] Remove -analyze option
This is legacy PM-specific, which is deprecated.
Uses of this should be replaced with a corresponding `-passes='print<foo>'`.
Reviewed By: asbirlea
Differential Revision: https://reviews.llvm.org/D122420
show more ...
|
| #
c80198b3 |
| 14-Mar-2022 |
Wael Yehia <[email protected]> |
Reland "Load pass plugins during option processing, so that plugin options are registered and live."
Fix Polly failures.
Reviewed By: mehdi_amini, Meinersbur
Differential Revision: https://reviews
Reland "Load pass plugins during option processing, so that plugin options are registered and live."
Fix Polly failures.
Reviewed By: mehdi_amini, Meinersbur
Differential Revision: https://reviews.llvm.org/D121566
show more ...
|
| #
ed4c03af |
| 15-Mar-2022 |
Wael Yehia <[email protected]> |
Revert "Load pass plugins during option processing, so that plugin options are registered and live."
This reverts commit 5e8700ce8bf58bdf0a59eef99c85185a74177555.
|
| #
5e8700ce |
| 14-Mar-2022 |
Wael Yehia <[email protected]> |
Load pass plugins during option processing, so that plugin options are registered and live.
|
| #
b7fd30ea |
| 28-Feb-2022 |
Kirill Stoimenov <[email protected]> |
[ASan] Removed unused AddressSanitizerPass functional pass.
This is a clean-up patch. The functional pass was rolled into the module pass in D112732.
Reviewed By: vitalybuka, aeubanks
Differential
[ASan] Removed unused AddressSanitizerPass functional pass.
This is a clean-up patch. The functional pass was rolled into the module pass in D112732.
Reviewed By: vitalybuka, aeubanks
Differential Revision: https://reviews.llvm.org/D120674
show more ...
|
| #
5e4b68cc |
| 25-Feb-2022 |
Elia Geretto <[email protected]> |
[NewPM] Fix tests for OptimizerLast extension point
This PR fixes the tests for the `OptimizerLast` extension point in the new pass manager. The extension point uses module passes, but it was being
[NewPM] Fix tests for OptimizerLast extension point
This PR fixes the tests for the `OptimizerLast` extension point in the new pass manager. The extension point uses module passes, but it was being tested with a function pass.
Reviewed By: aeubanks
Differential Revision: https://reviews.llvm.org/D120581
show more ...
|
| #
942efa59 |
| 25-Feb-2022 |
Elia Geretto <[email protected]> |
[NewPM] Add extension points to LTO pipeline in PassBuilder
This PR adds two extension points to the default LTO pipeline in PassBuilder, one at the beginning and one at the end. These two extension
[NewPM] Add extension points to LTO pipeline in PassBuilder
This PR adds two extension points to the default LTO pipeline in PassBuilder, one at the beginning and one at the end. These two extension points already existed in the old pass manager, the aim is to replicate the same functionality in the new one.
Reviewed By: aeubanks
Differential Revision: https://reviews.llvm.org/D120491
show more ...
|
|
Revision tags: llvmorg-14.0.0-rc1, llvmorg-15-init |
|
| #
464be7af |
| 27-Jan-2022 |
Bjorn Pettersson <[email protected]> |
[NewPM] Add debugify and check-debugify to the PassRegistry
Adding -debugify and -check-debugify in the PassRegistry will make sure the passes are listed properly by -print-pipeline-passes as well a
[NewPM] Add debugify and check-debugify to the PassRegistry
Adding -debugify and -check-debugify in the PassRegistry will make sure the passes are listed properly by -print-pipeline-passes as well as -print-passes.
It also allows removal of the custom pipeline parsing callback that has been used in the NewPMDriver.
Differential Revision: https://reviews.llvm.org/D118369
show more ...
|
|
Revision tags: llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2, llvmorg-13.0.1-rc1 |
|
| #
a55c4ec1 |
| 03-Nov-2021 |
Kirill Stoimenov <[email protected]> |
[ASan] Process functions in Asan module pass
This came up as recommendation while reviewing D112098.
Reviewed By: vitalybuka
Differential Revision: https://reviews.llvm.org/D112732
|
| #
3131714f |
| 03-Nov-2021 |
Vitaly Buka <[email protected]> |
[NFC][asan] Use AddressSanitizerOptions in ModuleAddressSanitizerPass
Reviewed By: kstoimenov
Differential Revision: https://reviews.llvm.org/D113072
|
| #
b3145323 |
| 03-Nov-2021 |
Kirill Stoimenov <[email protected]> |
Revert "[ASan] Process functions in Asan module pass"
This reverts commit 76ea87b94e5cba335d691e4e18e3464ad45c8b52.
Reviewed By: kstoimenov
Differential Revision: https://reviews.llvm.org/D113129
|
| #
76ea87b9 |
| 03-Nov-2021 |
Kirill Stoimenov <[email protected]> |
[ASan] Process functions in Asan module pass
This came up as recommendation while reviewing D112098.
Reviewed By: vitalybuka
Differential Revision: https://reviews.llvm.org/D112732
|
|
Revision tags: llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3 |
|
| #
304f2bd2 |
| 02-Sep-2021 |
Markus Lavin <[email protected]> |
[NPM] Added opt option -print-pipeline-passes.
Added opt option -print-pipeline-passes to print a -passes compatible string describing the built pass pipeline.
As an example: $ opt -enable-new-pm=1
[NPM] Added opt option -print-pipeline-passes.
Added opt option -print-pipeline-passes to print a -passes compatible string describing the built pass pipeline.
As an example: $ opt -enable-new-pm=1 -adce -licm -simplifycfg -o /dev/null /dev/null -print-pipeline-passes verify,function(adce),function(loop-mssa(licm)),function(simplifycfg<bonus-inst-threshold=1;no-forward-switch-cond;no-switch-to-lookup;keep-loops;no-hoist-common-insts;no-sink-common-insts>),verify,BitcodeWriterPass
At the moment this is best-effort only and there are some known limitations: - Not all passes accepting parameters will print their parameters (currently only implemented for simplifycfg). - Some ClassName to pass-name mappings are not unique. - Some ClassName to pass-name mappings are missing (e.g. BitcodeWriterPass).
Differential Revision: https://reviews.llvm.org/D108298
show more ...
|
| #
645af79e |
| 02-Sep-2021 |
Markus Lavin <[email protected]> |
Revert "[NPM] Added opt option -print-pipeline-passes."
This reverts commit c71869ed4c24b3d4d13e2f83ee2c0104013ca129.
|
| #
c71869ed |
| 02-Sep-2021 |
Markus Lavin <[email protected]> |
[NPM] Added opt option -print-pipeline-passes.
Added opt option -print-pipeline-passes to print a -passes compatible string describing the built pass pipeline.
As an example: $ opt -enable-new-pm=1
[NPM] Added opt option -print-pipeline-passes.
Added opt option -print-pipeline-passes to print a -passes compatible string describing the built pass pipeline.
As an example: $ opt -enable-new-pm=1 -adce -licm -simplifycfg -o /dev/null /dev/null -print-pipeline-passes verify,function(adce),function(loop-mssa(licm)),function(simplifycfg<bonus-inst-threshold=1;no-forward-switch-cond;no-switch-to-lookup;keep-loops;no-hoist-common-insts;no-sink-common-insts>),verify,BitcodeWriterPass
At the moment this is best-effort only and there are some known limitations: - Not all passes accepting parameters will print their parameters (currently only implemented for simplifycfg). - Some ClassName to pass-name mappings are not unique. - Some ClassName to pass-name mappings are missing (e.g. BitcodeWriterPass).
show more ...
|
|
Revision tags: llvmorg-13.0.0-rc2 |
|
| #
d52f5061 |
| 18-Aug-2021 |
Bjorn Pettersson <[email protected]> |
[NewPM] Use parameterized syntax for a couple of more passes
A couple of passes that are parameterized in new-PM used different pass names (in cmd line interface) while using the same pass class nam
[NewPM] Use parameterized syntax for a couple of more passes
A couple of passes that are parameterized in new-PM used different pass names (in cmd line interface) while using the same pass class name. This patch updates the PassRegistry to model pass parameters more properly using PASS_WITH_PARAMS.
Reason for the change is to ensure that we have a 1-1 mapping between class name and pass name (when disregarding the params). With a 1-1 mapping it is more obvious which pass name to use in options such as -debug-only, -print-after etc.
The opt -passes syntax is changed for the following passes: early-cse-memssa => early-cse<memssa> post-inline-ee-instrument => ee-instrument<post-inline> loop-extract-single => loop-extract<single> lower-matrix-intrinsics-minimal => lower-matrix-intrinsics<minimal>
This patch is not updating pass names in docs/Passes.rst. Not quite sure what the status is for that document (e.g. when it comes to listing pass paramters). It is only loop-extract-single that is mentioned in Passes.rst today, out of the passes mentioned above.
Differential Revision: https://reviews.llvm.org/D108362
show more ...
|
|
Revision tags: llvmorg-13.0.0-rc1, llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4 |
|
| #
36d51386 |
| 28-Jun-2021 |
Bjorn Pettersson <[email protected]> |
[NewPM] Make some sanitizer passes parameterized in the PassRegistry
Refactored implementation of AddressSanitizerPass and HWAddressSanitizerPass to use pass options similar to passes like MemorySan
[NewPM] Make some sanitizer passes parameterized in the PassRegistry
Refactored implementation of AddressSanitizerPass and HWAddressSanitizerPass to use pass options similar to passes like MemorySanitizerPass. This makes sure that there is a single mapping from class name to pass name (needed by D108298), and options like -debug-only and -print-after makes a bit more sense when (despite that it is the unparameterized pass name that should be used in those options).
A result of the above is that some pass names are removed in favor of the parameterized versions: - "khwasan" is now "hwasan<kernel;recover>" - "kasan" is now "asan<kernel>" - "kmsan" is now "msan<kernel>"
Differential Revision: https://reviews.llvm.org/D105007
show more ...
|
| #
5fdaaf7f |
| 18-Aug-2021 |
Rong Xu <[email protected]> |
[SampleFDO] Flow Sensitive Sample FDO (FSAFDO) profile loader
This patch implements Flow Sensitive Sample FDO (FSAFDO) profile loader. We have two profile loaders for FS profile, one before RegAlloc
[SampleFDO] Flow Sensitive Sample FDO (FSAFDO) profile loader
This patch implements Flow Sensitive Sample FDO (FSAFDO) profile loader. We have two profile loaders for FS profile, one before RegAlloc and one before BlockPlacement.
To enable it, when -fprofile-sample-use=<profile> is specified, add "-enable-fs-discriminator=true \ -disable-ra-fsprofile-loader=false \ -disable-layout-fsprofile-loader=false" to turn on the FS profile loaders.
Differential Revision: https://reviews.llvm.org/D107878
show more ...
|
| #
ccb5b9bb |
| 11-Aug-2021 |
Hongtao Yu <[email protected]> |
[CSSPGO] Allow the use of debug-info-for-profiling and pseudo-probe-for-profiling together
Previoulsy debug-info-for-profiling and pseudo-probe-for-profiling are mutual exclusive because they compet
[CSSPGO] Allow the use of debug-info-for-profiling and pseudo-probe-for-profiling together
Previoulsy debug-info-for-profiling and pseudo-probe-for-profiling are mutual exclusive because they compete the dwarf discrimnator for callsites on the IR. This changes allows to use the two switches together. The side effect is that callsite discriminators will be taken by pseudo probe, while discriminators for other instructions are still available for AutoFDO use. This is less than ideal, however, it still allows us a chance to smoothly transition from AutoFDO to CSSPGO, by collecting both profiles from a CSSPGO binary.
Reviewed By: wenlei, wmi
Differential Revision: https://reviews.llvm.org/D107876
show more ...
|
| #
7a797b29 |
| 30-Jul-2021 |
Tarindu Jayatilaka <[email protected]> |
Take OptimizationLevel class out of Pass Builder
Pulled out the OptimizationLevel class from PassBuilder in order to be able to access it from within the PassManager and avoid include conflicts.
Re
Take OptimizationLevel class out of Pass Builder
Pulled out the OptimizationLevel class from PassBuilder in order to be able to access it from within the PassManager and avoid include conflicts.
Reviewed By: mtrofin
Differential Revision: https://reviews.llvm.org/D107025
show more ...
|
| #
5de114b6 |
| 19-Jul-2021 |
Arthur Eubanks <[email protected]> |
[NewPM][opt] Add -debug-pass-manager=quiet to not print analysis info
Reviewed By: asbirlea
Differential Revision: https://reviews.llvm.org/D106307
|
| #
8a1727ba |
| 15-Jul-2021 |
Chuanqi Xu <[email protected]> |
[Coroutines] Run coroutine passes by default
This patch make coroutine passes run by default in LLVM pipeline. Now the clang and opt could handle IR inputs containing coroutine intrinsics without sp
[Coroutines] Run coroutine passes by default
This patch make coroutine passes run by default in LLVM pipeline. Now the clang and opt could handle IR inputs containing coroutine intrinsics without special options. It should be fine. On the one hand, the coroutine passes seems to be stable since there are already many projects using coroutine feature. On the other hand, the coroutine passes should do nothing for IR who doesn't contain coroutine intrinsic.
Test Plan: check-llvm
Reviewed by: lxfind, aeubanks
Differential Revision: https://reviews.llvm.org/D105877
show more ...
|