History log of /llvm-project/llvm/include/llvm/CodeGen/MachinePassManager.h (Results 1 – 25 of 30)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
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 ...


12