diff options
author | Pierre van Houtryve <pierre.vanhoutryve@amd.com> | 2023-01-25 14:06:09 +0100 |
---|---|---|
committer | pvanhout <pierre.vanhoutryve@amd.com> | 2023-02-10 08:37:42 +0100 |
commit | 70924673af680303d64e540d7767c0eeda5217fc (patch) | |
tree | 2a62d3ea58c25914aa69e4666fabd0695eeabb83 /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | d9a6fc82f56f1e4ebb6ba053a57a5839c3907a7e (diff) | |
download | llvm-70924673af680303d64e540d7767c0eeda5217fc.zip llvm-70924673af680303d64e540d7767c0eeda5217fc.tar.gz llvm-70924673af680303d64e540d7767c0eeda5217fc.tar.bz2 |
[RFC][GISel] Add a way to ignore COPY instructions in InstructionSelector
RFC to add a way to ignore COPY instructions when pattern-matching MIR in GISel.
- Add a new "GISelFlags" class to TableGen. Both `Pattern` and `PatFrags` defs can use it to alter matching behaviour.
- Flags start at zero and are scoped: the setter returns a `SaveAndRestore` object so that when the current scope ends, the flags are restored to their previous values. This allows child patterns to modify the flags without affecting the parent pattern.
- Child patterns always reuse the parent's pattern, but they can override its values. For more examples, see `GlobalISelEmitterFlags.td` tests.
- [AMDGPU] Use the IgnoreCopies flag in BFI patterns, which are known to be bothered by cross-regbank copies.
Reviewed By: arsenm
Differential Revision: https://reviews.llvm.org/D136234
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions