Revision tags: llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3 |
|
#
789fdd53 |
| 24-Oct-2024 |
Akshat Oke <Akshat.Oke@amd.com> |
[CodeGen][NewPM] Make MFProperties methods const NFC (#113304)
Makes them congruent with the legacy PM methods.
|
Revision tags: 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 |
|
#
4145ad2b |
| 22-Jun-2024 |
paperchalice <liujunchang97@outlook.com> |
[NewPM] Add deduction guide to `MFPropsModifier` to suppress warning (#96384)
Buildbot `clang-ppc64le-rhel` failed with:
```sh
error: 'MFPropsModifier' may not intend to support class template arg
[NewPM] Add deduction guide to `MFPropsModifier` to suppress warning (#96384)
Buildbot `clang-ppc64le-rhel` failed with:
```sh
error: 'MFPropsModifier' may not intend to support class template argument deduction [-Werror,-Wctad-maybe-unsupported]
note: add a deduction guide to suppress this warning
```
after #94854. This PR adds deduction guide explicitly to suppress
warning.
show more ...
|
#
8e9c6bfb |
| 22-Jun-2024 |
paperchalice <liujunchang97@outlook.com> |
[CodeGen][NewPM] Extract MachineFunctionProperties modification part to an RAII class (#94854)
Modify MachineFunctionProperties in PassModel makes `PassT P;
P.run(...);` not work properly. This is
[CodeGen][NewPM] Extract MachineFunctionProperties modification part to an RAII class (#94854)
Modify MachineFunctionProperties in PassModel makes `PassT P;
P.run(...);` not work properly. This is a necessary compromise.
show more ...
|
Revision tags: llvmorg-18.1.8 |
|
#
1bc8b325 |
| 07-Jun-2024 |
paperchalice <liujunchang97@outlook.com> |
[NewPM][CodeGen] Port `regallocfast` to new pass manager (#94426)
This pull request port `regallocfast` to new pass manager. It exposes
the parameter `filter` to handle different register classes f
[NewPM][CodeGen] Port `regallocfast` to new pass manager (#94426)
This pull request port `regallocfast` to new pass manager. It exposes
the parameter `filter` to handle different register classes for AMDGPU.
IIUC AMDGPU need to allocate different register classes separately so it
need implement its own `--<reg-class>-regalloc`. Now users can use e.g.
`-passe=regallocfast<filter=sgpr>` to allocate specific register class.
The command line option `--regalloc-npm` is still in work progress, plan
to reuse the syntax of passes, e.g. use
`--regalloc-npm=regallocfast<filter=sgpr>,greedy<filter=vgpr>` to
replace `--sgpr-regalloc` and `--vgpr-regalloc`.
show more ...
|
Revision tags: llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5 |
|
#
6ea0c0a2 |
| 30-Apr-2024 |
paperchalice <liujunchang97@outlook.com> |
[NewPM][CodeGen] Add `MachineFunctionAnalysis` (#88610)
In new pass system, `MachineFunction` could be an analysis result again,
machine module pass can now fetch them from analysis manager.
`Mach
[NewPM][CodeGen] Add `MachineFunctionAnalysis` (#88610)
In new pass system, `MachineFunction` could be an analysis result again,
machine module pass can now fetch them from analysis manager.
`MachineModuleInfo` no longer owns them.
Remove `FreeMachineFunctionPass`, replaced by
`InvalidateAnalysisPass<MachineFunctionAnalysis>`.
Now `FreeMachineFunction` is replaced by
`InvalidateAnalysisPass<MachineFunctionAnalysis>`, the workaround in
`MachineFunctionPassManager` is no longer needed, there is no difference
between `unittests/MIR/PassBuilderCallbacksTest.cpp` and
`unittests/IR/PassBuilderCallbacksTest.cpp`.
show more ...
|
Revision tags: llvmorg-18.1.4 |
|
#
496de32e |
| 11-Apr-2024 |
paperchalice <liujunchang97@outlook.com> |
[NewPM] Remove `MachinePassInfoMixin` (#88243)
Unify the inheritance paths of IR and machine function.
|
Revision tags: llvmorg-18.1.3 |
|
#
b361b536 |
| 30-Mar-2024 |
paperchalice <liujunchang97@outlook.com> |
Reland "[PassManager] Support MachineFunctionProperties (#83668)" (#87141)
Unfortunately GCC 9 rejects code in https://godbolt.org/z/zd9r5GM3e GCC
11 accepts this code.
|
#
e9e4ab81 |
| 30-Mar-2024 |
paperchalice <liujunchang97@outlook.com> |
Revert "Reland "[PassManager] Support MachineFunctionProperties (#83668)"" (#87138)
Reverts llvm/llvm-project#87137
It introduces ambiguous template specialization problem. Revert it.
|
#
4f713295 |
| 30-Mar-2024 |
paperchalice <liujunchang97@outlook.com> |
Reland "[PassManager] Support MachineFunctionProperties (#83668)" (#87137)
Fix preprocessor directive.
|
#
0be26dbb |
| 30-Mar-2024 |
paperchalice <liujunchang97@outlook.com> |
Revert "[PassManager] Support MachineFunctionProperties (#83668)" (#87136)
This reverts commit 5538853f9abb559ff4bb7ff598535041d91d97d7. #83668
Break some test bots.
|
#
5538853f |
| 30-Mar-2024 |
paperchalice <liujunchang97@outlook.com> |
[PassManager] Support MachineFunctionProperties (#83668)
This pull request adds `MachineFunctionProperties` support. If a pass
wants to modify machine function properties, it must derive from
`Mac
[PassManager] Support MachineFunctionProperties (#83668)
This pull request adds `MachineFunctionProperties` support. If a pass
wants to modify machine function properties, it must derive from
`MachinePassInfoMixin` and define some static methods like in legacy
pass manager. A test pass `RequireAllMachineFunctionPropertiesPass` is
also added here, which could be a example.
show more ...
|
Revision tags: llvmorg-18.1.2 |
|
#
ff60a84f |
| 19-Mar-2024 |
Malay Sanghi <malay.sanghi@intel.com> |
Convert copy to r-value reference. (#85606)
That seems to be the intention based on calling code.
|
#
9e004054 |
| 14-Mar-2024 |
mahesh-attarde <145317060+mahesh-attarde@users.noreply.github.com> |
[CodeGen][X86] Remove Expensive option copy and delete copy assignment (#85187)
Remove Expensive option copy and delete copy assignment
|
Revision tags: llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4 |
|
#
91e9e317 |
| 22-Feb-2024 |
Arthur Eubanks <aeubanks@google.com> |
[NewPM/CodeGen] Rewrite pass manager nesting (#81068)
Currently the new PM infra for codegen puts everything into a
MachineFunctionPassManager. The MachineFunctionPassManager owns both
Module pass
[NewPM/CodeGen] Rewrite pass manager nesting (#81068)
Currently the new PM infra for codegen puts everything into a
MachineFunctionPassManager. The MachineFunctionPassManager owns both
Module passes and MachineFunction passes, and batches adjacent
MachineFunction passes like a typical PassManager.
The current MachineFunctionAnalysisManager also directly references a
module and function analysis manager to get results.
The initial argument was that the codegen pipeline is relatively "flat",
meaning it's mostly machine function passes with a couple of module
passes here and there. However, there are a couple of issues with this
as compared to a more structured nesting more like the optimization
pipeline. For example, it doesn't allow running function passes then
machine function passes on a function and its machine function all at
once. It also currently requires the caller to split out the IR passes
into one pass manager and the MIR passes into another pass manager.
This patch rewrites the new pass manager infra for the codegen pipeline
to be more similar to the nesting in the optimization pipeline.
Basically, a Function contains a MachineFunction. So we can have Module
-> Function -> MachineFunction adaptors. It also rewrites the analysis
managers to have inner/outer proxies like the ones in the optimization
pipeline. The new pass managers/adaptors/analysis managers can be seen
in use in PassManagerTest.cpp.
This allows us to consolidate to just having to add to one
ModulePassManager when using the codegen pipeline.
I haven't added the Function -> MachineFunction adaptor in this patch,
but it should be added when we merge AddIRPass/AddMachinePass so that we
can run IR and MIR passes on a function before proceeding to the next
function.
The MachineFunctionProperties infra for MIR verification is still WIP.
show more ...
|
Revision tags: llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2 |
|
#
a4cd9812 |
| 02-Feb-2024 |
Arthur Eubanks <aeubanks@google.com> |
[NFC][PassManager] Remove PreservedAnalysesT template parameter (#80324)
This is always PreservedAnalyses. Perhaps in the past there was the idea
to make some types of passes return more invalidati
[NFC][PassManager] Remove PreservedAnalysesT template parameter (#80324)
This is always PreservedAnalyses. Perhaps in the past there was the idea
to make some types of passes return more invalidation information, but
that hasn't happened.
Requires splitting out some analysis classes into a header so
PassManagerInternal.h can see the definition of PreservedAnalyses.
show more ...
|
Revision tags: llvmorg-18.1.0-rc1 |
|
#
122ed552 |
| 25-Jan-2024 |
paperchalice <liujunchang97@outlook.com> |
[CodeGen] Remove MachinePassKey (#79406)
We now use PassT::name to distinguish Passes.
|
Revision tags: llvmorg-19-init |
|
#
f94c410e |
| 15-Dec-2023 |
paperchalice <liujunchang97@outlook.com> |
[CodeGen] Use `MachinePassKey` for machine passes (#75567)
Machine passes define `AnalysisKey`, it is counterintuitive. Add
`MachinePassKey` and `MachinePassInfoMixin` to avoid this.
|
Revision tags: 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 |
|
#
48ed7c43 |
| 27-Apr-2023 |
Arthur Eubanks <aeubanks@google.com> |
[NFC][MachineFunctionPassManager] Remove unused DebugLogging param
|
Revision tags: 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, working, 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, llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1 |
|
#
989f1c72 |
| 15-Mar-2022 |
serge-sans-paille <sguelton@redhat.com> |
Cleanup codegen includes
This is a (fixed) recommit of https://reviews.llvm.org/D121169
after: 1061034926 before: 1063332844
Discourse thread: https://discourse.llvm.org/t/include-what-you-use-in
Cleanup codegen includes
This is a (fixed) recommit of https://reviews.llvm.org/D121169
after: 1061034926 before: 1063332844
Discourse thread: https://discourse.llvm.org/t/include-what-you-use-include-cleanup Differential Revision: https://reviews.llvm.org/D121681
show more ...
|
Revision tags: llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3 |
|
#
a278250b |
| 10-Mar-2022 |
Nico Weber <thakis@chromium.org> |
Revert "Cleanup codegen includes"
This reverts commit 7f230feeeac8a67b335f52bd2e900a05c6098f20. Breaks CodeGenCUDA/link-device-bitcode.cu in check-clang, and many LLVM tests, see comments on https:/
Revert "Cleanup codegen includes"
This reverts commit 7f230feeeac8a67b335f52bd2e900a05c6098f20. Breaks CodeGenCUDA/link-device-bitcode.cu in check-clang, and many LLVM tests, see comments on https://reviews.llvm.org/D121169
show more ...
|
#
7f230fee |
| 07-Mar-2022 |
serge-sans-paille <sguelton@redhat.com> |
Cleanup codegen includes
after: 1061034926 before: 1063332844
Differential Revision: https://reviews.llvm.org/D121169
|
Revision tags: llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2 |
|
#
f44473ec |
| 08-Jan-2022 |
Kazu Hirata <kazu@google.com> |
[llvm] Remove redundant member initialization (NFC)
Identified with readability-redundant-member-init.
|
#
e5947760 |
| 03-Jan-2022 |
Kazu Hirata <kazu@google.com> |
Revert "[llvm] Remove redundant member initialization (NFC)"
This reverts commit fd4808887ee47f3ec8a030e9211169ef4fb094c3.
This patch causes gcc to issue a lot of warnings like:
warning: base cl
Revert "[llvm] Remove redundant member initialization (NFC)"
This reverts commit fd4808887ee47f3ec8a030e9211169ef4fb094c3.
This patch causes gcc to issue a lot of warnings like:
warning: base class ‘class llvm::MCParsedAsmOperand’ should be explicitly initialized in the copy constructor [-Wextra]
show more ...
|
#
fd480888 |
| 02-Jan-2022 |
Kazu Hirata <kazu@google.com> |
[llvm] Remove redundant member initialization (NFC)
Identified with readability-redundant-member-init.
|
Revision tags: llvmorg-13.0.1-rc1, llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1, llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1 |
|
#
34a8a437 |
| 03-May-2021 |
Arthur Eubanks <aeubanks@google.com> |
[NewPM] Hide pass manager debug logging behind -debug-pass-manager-verbose
Printing pass manager invocations is fairly verbose and not super useful.
This allows us to remove DebugLogging from pass
[NewPM] Hide pass manager debug logging behind -debug-pass-manager-verbose
Printing pass manager invocations is fairly verbose and not super useful.
This allows us to remove DebugLogging from pass managers and PassBuilder since all logging (aside from analysis managers) goes through instrumentation now.
This has the downside of never being able to print the top level pass manager via instrumentation, but that seems like a minor downside.
Reviewed By: ychen
Differential Revision: https://reviews.llvm.org/D101797
show more ...
|